Warning
create-youtube-player
is deprecated and has been merged into thevLitejs
project. See vLitejs for its successor 🎉
Create Youtube Player is a lightweight Javascript library to instanciate Youtube players, without any dependencies.
The libraryis available as the create-youtube-player
package on npm.
npm install create-youtube-player --save
Online demo is available on the Create Youtube Player Github page.
The minimalist HTML structure below is enough to create the Youtube player.
Replace the {{idVideo}}
with the video id from the Youtube url.
For example, idVideo
is equal to uXLbQrK6cXw
in the address below: https://www.youtube.com/watch?v=uXLbQrK6cXw
<div class="player" data-youtube-id="{{idVideo}}"></div>
Every page that contains a player, has to instanciates them. The following example create one item.
import YoutubePlayer from 'create-youtube-player'
const youtubePlayer = new YoutubePlayer();
youtubePlayer.loadAPI(() => {
youtubePlayer.create({
element: document.querySelector('.player')
});
});
To customize the player with a poster, add a div tag inside the data-youtube-id
element.
<div class="player" data-youtube-id="{{idVideo}}">
<div class="player-poster">
<img src="" alt="" />
</div>
</div>
You can pass configuration options to the constructor. Example below show all default values. Allowed values are as follows:
{
multiplePlaying: true
}
multiplePlaying
- {Boolean} - Disable multiple player Youtube playing in the same time
Each player instanciations returns the instance of the class with somes available methods to easily manipulate the element.
The create()
function create the Youtube player. The function need before to use the Youtube API.
If the Youtube API is already available, you can call the function directly. Else, call the create()
function inside the loadAPI()
callback function.
youtubePlayer.create({
element: document.querySelector('.player')
});
You can pass configuration options to the create()
function.
Example below show all default values. Allowed values are as follows:
{
element: null,
width: '100%',
height: '100%',
playerVars: {
'showinfo': 0,
'modestbranding': 0,
'autohide': 0,
'rel': 0,
'wmode': 'transparent',
'controls': 1
},
selectors: {
posterWrapper: '.player-poster'
}
}
element
- {Object} - DOM element referencewidth
- {String} - Width of the player (with unity)height
- {String} - Height of the player (with unity)playerVars
- {Object} - Parameters of the Youtube playerselectors
- {Object} - Configuration of selectors used by the libraryposterWrapper
- {String} - Selector of the poster wrapper
More informations about player parameters in the Youtube API documentation.
The loadAPI()
function load the Youtube API.
youtubePlayer.loadAPI(() => {
// Youtube API is ready
});
There are callbacks function available with the library.
The onPlayerReady
function is called when the player is ready and instanciated.
youtubePlayer.create({
element: document.querySelector('.player'),
events: {
onPlayerReady: (player) => {
// Youtube player is ready
}
}
});
Parameters:
player
- {Object} - Youtube player instance
The onPlayerStateChange
function is called when the player status changed.
youtubePlayer.create({
element: document.querySelector('.player'),
events: {
onPlayerStateChange: (state) => {
// Youtube player state changed
}
}
});
Parameters:
state
- {Object} - Youtube player state
Possible values of the state
:
Value | Status |
---|---|
-1 | not started |
0 | stop |
1 | playing |
2 | paused |
3 | buffering |
5 | queued |
More informations in the Youtube API documentation.
The onPosterClick
function is called when the poster is clicked.
There is a default behavior to play the video and hide the poster.
Declaring this function will disable the default behavior.
youtubePlayer.create({
element: document.querySelector('.player'),
events: {
onPosterClick: (e, player) => {
// Poster is clicked
e.target.style.display = 'none';
player.playVideo();
}
}
});
Parameters:
e
- {Object} - Event listener datasplayer
- {Object} - Youtube player instance