12 votes

Comment obtenir une vignette d'une liste de lecture youtube ?

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 ?

12voto

Robert Chen Points 3589

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"
       }
      }
     ]
    }

5voto

willeisbrenner Points 51

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 .'" />';

-2voto

wanghq Points 744

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X