Documentation Index
Fetch the complete documentation index at: https://mintlify.com/angular/components/llms.txt
Use this file to discover all available pages before exploring further.
YouTube Player API
Complete API reference for the Angular YouTube Player component.
Source: /home/daytona/workspace/source/src/youtube-player/youtube-player.ts
videoId
- Type:
string
- Required: Yes (unless using
playerVars.list)
- Description: The YouTube video ID to play
<youtube-player videoId="dQw4w9WgXcQ" />
- Type:
number
- Default:
640
- Description: Width of the player in pixels
<youtube-player videoId="..." [width]="800" />
- Type:
number
- Default:
390
- Description: Height of the player in pixels
<youtube-player videoId="..." [height]="450" />
startSeconds
- Type:
number
- Description: Start playback at a specific time (in seconds)
<youtube-player videoId="..." [startSeconds]="30" />
endSeconds
- Type:
number
- Description: End playback at a specific time (in seconds)
<youtube-player videoId="..." [endSeconds]="120" />
suggestedQuality
- Type:
YT.SuggestedVideoQuality
- Description: Suggested video quality
- Values:
'small', 'medium', 'large', 'hd720', 'hd1080', 'highres', 'default'
<youtube-player videoId="..." suggestedQuality="hd720" />
playerVars
- Type:
YT.PlayerVars
- Description: YouTube Player parameters
import {Component} from '@angular/core';
import {YouTubePlayer} from '@angular/youtube-player';
@Component({
selector: 'app-player',
imports: [YouTubePlayer],
template: `
<youtube-player
videoId="dQw4w9WgXcQ"
[playerVars]="playerVars" />
`
})
export class PlayerComponent {
playerVars: YT.PlayerVars = {
autoplay: 1,
controls: 1,
modestbranding: 1,
rel: 0,
showinfo: 0
};
}
loadApi
- Type:
boolean
- Default:
true
- Description: Whether to automatically load the YouTube iframe API
<youtube-player videoId="..." [loadApi]="false" />
disablePlaceholder
- Type:
boolean
- Default:
false
- Description: Whether to disable the placeholder and load the API immediately
<youtube-player videoId="..." disablePlaceholder />
placeholderImageQuality
- Type:
'low' | 'standard' | 'high'
- Default:
'standard'
- Description: Quality of the placeholder thumbnail image
<youtube-player videoId="..." placeholderImageQuality="high" />
- Type:
string
- Default:
'Play video'
- Description: Accessible label for the placeholder play button
<youtube-player videoId="..." placeholderButtonLabel="Reproducir vÃdeo" />
disableCookies
- Type:
boolean
- Default:
false
- Description: Whether to use youtube-nocookie.com instead of youtube.com
<youtube-player videoId="..." [disableCookies]="true" />
Component Outputs (Events)
- Type:
EventEmitter<YT.PlayerEvent>
- Description: Fires when the player is ready
onReady(event: YT.PlayerEvent) {
console.log('Player is ready');
}
stateChange
- Type:
EventEmitter<YT.OnStateChangeEvent>
- Description: Fires when the player state changes
onStateChange(event: YT.OnStateChangeEvent) {
console.log('Player state:', event.data);
// -1: unstarted
// 0: ended
// 1: playing
// 2: paused
// 3: buffering
// 5: video cued
}
playbackQualityChange
- Type:
EventEmitter<YT.OnPlaybackQualityChangeEvent>
- Description: Fires when playback quality changes
playbackRateChange
- Type:
EventEmitter<YT.OnPlaybackRateChangeEvent>
- Description: Fires when playback rate changes
- Type:
EventEmitter<YT.OnErrorEvent>
- Description: Fires when an error occurs
onError(event: YT.OnErrorEvent) {
console.error('Player error:', event.data);
// 2: Invalid video ID
// 5: HTML5 player error
// 100: Video not found
// 101/150: Video not embeddable
}
apiChange
- Type:
EventEmitter<YT.PlayerEvent>
- Description: Fires when the player’s API changes
Component Methods
Access these methods using ViewChild or viewChild:
import {Component, ViewChild, AfterViewInit} from '@angular/core';
import {YouTubePlayer} from '@angular/youtube-player';
@Component({
selector: 'app-player',
imports: [YouTubePlayer],
template: `<youtube-player #player videoId="dQw4w9WgXcQ" />`
})
export class PlayerComponent implements AfterViewInit {
@ViewChild('player') youtubePlayer!: YouTubePlayer;
ngAfterViewInit() {
// Now you can call methods on the player
}
playVideo() {
this.youtubePlayer.playVideo();
}
pauseVideo() {
this.youtubePlayer.pauseVideo();
}
}
Playback Controls
playVideo() - Play the video
pauseVideo() - Pause the video
stopVideo() - Stop the video
seekTo(seconds: number, allowSeekAhead: boolean) - Seek to a specific time
mute() - Mute the player
unMute() - Unmute the player
Player State
getPlayerState() - Get current player state
getCurrentTime() - Get current playback time in seconds
getDuration() - Get video duration in seconds
getVolume() - Get volume level (0-100)
getPlaybackRate() - Get playback speed
getAvailablePlaybackRates() - Get available playback speeds
Player Settings
setVolume(volume: number) - Set volume (0-100)
setPlaybackRate(rate: number) - Set playback speed
setSize(width: number, height: number) - Resize the player
Video Info
getVideoUrl() - Get video URL
getVideoEmbedCode() - Get embed code
getPlaylist() - Get playlist (if playing a playlist)
getPlaylistIndex() - Get current position in playlist
Common PlayerVars
Here are commonly used playerVars options:
playerVars: YT.PlayerVars = {
autoplay: 1, // Auto-play video (0 or 1)
controls: 1, // Show player controls (0, 1, or 2)
disablekb: 0, // Disable keyboard controls (0 or 1)
enablejsapi: 1, // Enable JS API (0 or 1)
fs: 1, // Show fullscreen button (0 or 1)
loop: 1, // Loop video (0 or 1)
modestbranding: 1, // Minimize YouTube branding (0 or 1)
playsinline: 1, // Play inline on iOS (0 or 1)
rel: 0, // Show related videos (0 or 1)
showinfo: 0, // Show video info (deprecated)
start: 30, // Start time in seconds
end: 120, // End time in seconds
iv_load_policy: 3, // Hide video annotations (1 or 3)
cc_load_policy: 1, // Show closed captions (0 or 1)
cc_lang_pref: 'en', // Caption language
color: 'white', // Progress bar color ('red' or 'white')
hl: 'en', // Interface language
list: 'PLxxxxxxxx', // Playlist ID
listType: 'playlist', // List type ('playlist', 'search', 'user_uploads')
}
Complete Example
import {Component, ViewChild, signal} from '@angular/core';
import {YouTubePlayer} from '@angular/youtube-player';
@Component({
selector: 'app-player',
imports: [YouTubePlayer],
template: `
<youtube-player
#player
[videoId]="videoId()"
[width]="800"
[height]="450"
[playerVars]="playerVars"
(ready)="onReady($event)"
(stateChange)="onStateChange($event)"
(error)="onError($event)" />
<div class="controls">
<button (click)="play()">Play</button>
<button (click)="pause()">Pause</button>
<button (click)="stop()">Stop</button>
</div>
`
})
export class PlayerComponent {
@ViewChild('player') youtubePlayer!: YouTubePlayer;
videoId = signal('dQw4w9WgXcQ');
playerVars: YT.PlayerVars = {
autoplay: 0,
controls: 1,
modestbranding: 1,
rel: 0
};
onReady(event: YT.PlayerEvent) {
console.log('Player ready');
}
onStateChange(event: YT.OnStateChangeEvent) {
console.log('State:', event.data);
}
onError(event: YT.OnErrorEvent) {
console.error('Error:', event.data);
}
play() {
this.youtubePlayer.playVideo();
}
pause() {
this.youtubePlayer.pauseVideo();
}
stop() {
this.youtubePlayer.stopVideo();
}
}
Source Code
View the youtube-player.ts source code on GitHub.