Existe-t-il un moyen d'obtenir la vignette d'une liste de lecture youtube comme on peut obtenir la vignette d'une vidéo, expliqué ici : Comment obtenir une vignette d'une vidéo YouTube à partir de l'API YouTube ?
Réponses
Trop de publicités?Avec la v3 de l'API YouTube, vous pouvez obtenir la vignette de la liste de lecture en utilisant leur v3/playlists
et en descendant jusqu'à items.snippet.thumbnails.high.url
Pour la liste de lecture suivante :
https://www.youtube.com/playlist?list=PL50C17441DA8A565D
L'explorateur API de YouTube possède un point de terminaison pour les listes de lecture :
https://developers.google.com/youtube/v3/docs/playlists/list
C'est l'appel API :
GET https://www.googleapis.com/youtube/v3/playlists?part=snippet&id=PL50C17441DA8A565D&key={YOUR_API_KEY}
Et voici la réponse :
{
"kind": "youtube#playlistListResponse",
"items": [
{
"kind": "youtube#playlist",
"id": "PL50C17441DA8A565D",
"snippet": {
"title": "Jay Chou Playlist",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/kGbDymJ75PU/default.jpg",
"width": 120,
"height": 90
},
"medium": {
"url": "https://i.ytimg.com/vi/kGbDymJ75PU/mqdefault.jpg",
"width": 320,
"height": 180
},
"high": {
"url": "https://i.ytimg.com/vi/kGbDymJ75PU/hqdefault.jpg",
"width": 480,
"height": 360
}
},
"channelTitle": "it23"
}
}
]
}
C'est ce qui a marché pour moi. Similaire à l'autre message concernant les éléments de la liste de lecture, mais j'ai juste changé l'appel API. J'espère que cela vous aidera.
//get playlist itmes
$data = file_get_contents("https://www.googleapis.com/youtube/v3/playlistItems?key=< YOUR API KEY >&part=snippet&playlistId="<Put your playlist id here>");
//décoder la réponse de youtube
$json = json_decode($data);
//si vous voulez voir la réponse complète, utilisez print_r($json) ;
//Chaque élément de la réponse correspond à une vidéo dans la liste de lecture, alors récupérons la première vidéo (items[0]), son extrait et les vignettes correspondantes, et nous prendrons l'url pour la taille par défaut. Si vous voulez la deuxième vidéo, utilisez items[1] etc.
$video_thumbnail = $json->items[0]->snippet->thumbnails->default->url;
//set the videos alt tag as the snippet description
$video_alt = $json->items[0]->snippet->description;
//écho de l'url de l'image dans une balise d'image
echo '<img src="'. $video_thumbnail .'" alt="'. $video_alt .'" />';
Il n'existe pas d'API à cet effet. Voici une solution de contournement à laquelle je pense.
1) A quoi correspond la vignette d'une liste de lecture youtube ? J'ai joué avec mon compte et il semble que la règle soit la suivante :
if playlist has 5+ videos
thumbnail = first 5 video images
else if playlist has 1+ videos
thumbnail = all video images
else shows this list is empty
2) Vous pouvez ensuite utiliser la même méthode pour obtenir les vignettes des vidéos.
3) combiner les images soit du côté client (quelques CSS), soit du côté serveur.