Découverte Youtube iframe API

Intro

La méthode classique pour ajouter une vidéo Youtube dans une page web est l’Iframe via le bouton partager .

Cette méthode a l’avantage d’être facile et rapide à mettre en oeuvre : un bon copier / coller

Intégrer une vidéo Youtube l’API Javascript

Par contre, si l’on souhaite réaliser des personnalisations dans le comportement et / ou la mise en forme du player, il existe des possibilités de personnalisation en ajoutant des GET dans l’url de l’iframe comme autoplay pour jouer une vidéo dès que celle ci est chargée ou loop pour lire en boucle la vidéo

Il peut arriver que l’on souhaite réaliser des customisations avancées comme par exemple mettre une vidéo dans une diapositive d’un slider et bloquer le déroulement du slider tant que la vidéo n’est pas finie : harisprivatetours.com. Dans ce cas, il faut se pencher sur l’API Youtube

Script de base

Dans la documentation officielle, le premier exemple donne la syntaxe pour mettre en place un player vidéo via l’API. Voici ma version du script de base :

Fichier youtube.js

var tag = document.createElement('script');

tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

var ik_player;

//this function is called by the API
// il faut respecter ce nom pour la fonction
function onYouTubeIframeAPIReady() {

  //creates the player object
  ik_player = new YT.Player('player', {
  	  height: '440',
      width: '555',
      videoId: 'ID video',
      playerVars :{
      	rel:0, // pas de liens vidéo similaire à la fin
      	controls:0, // enlever les boutons de controle du player Play, Stop, volume sonore ...
      },
      events: {
        'onReady': onPlayerReady, // à exécuter lors du lancement de la video
        'onStateChange': onPlayerStateChange // à exécuter lors des changements de status
      }
    });
}

function onPlayerReady(event) {
	// Play
	ik_player.playVideo();
}

function onPlayerStateChange(event) {
	// ecouter les événements réalisées sur le player
	if(event.data == YT.PlayerState.ENDED){
	}
}

Documentation officielle