Youtube Playlist PHP : Nouvelle version API V3

En mars 2014 Google annonçait le retrait de l'API Youtube V2 serait retiré le 20 avril 2015. La date approchant, je vous propose une nouvelle version du script de playlist vidéo Youtube automatique basée sur l'API V3 de Youtube.

Youtube Playlist PHP : Nouvelle version API V3

J'espère que cela vous aidera dans la migration de ce script Xtendo qui connait jusqu'à aujourd'hui un certain succès de téléchargement. 

Une refonte complète de ce script de playlist vidéo

Comme vous le lirez plus bas, il aurait été frustrant de rester sur la même base que la précédente version et si les fonctionnalités restent sensiblement les mêmes (voir plus...) ce script est une version totalement remanié, tant dans la partie php et xslt que pour le design et l'ergonomie. Voir la démo en action "Playlist vidéo de Sting"

Youtube API V3 : Fini le XML !

Et oui, le format phare d'aujourd'hui pour l'échange des données est le JSON et Google grand promoteur de ce format ne propose donc plus le format XML sur cette API hormis le flux "Vidéos populaires" restera actif à cette adresse : "https://gdata.youtube.com/feeds/api/standardfeeds/most_popular".

Souhaitant garder le parsing et le rendu par XSLT qui gardent un certain nombre d'avantages (performance et templating), cette nouvelle version comporte un fichier supplémentaire pour la conversion JSON vers XML (youtube-v3-direct-xml.php).

A ce titre j'ai précédemment utilisé le Kit Google pour l'utilisation de cette API mais devant la taille et le nombre de fichiers, j'ai préféré au final développer cette simple fonction de conversion JSON 2 XML beaucoup plus légère et adaptable.

Côté design et ergonomie : 

Là encore que du neuf, finit les petites vignettes pour sélectionner la vidéo à regarder, la librairie Jquery "lightGallery" (incluse dans le ZIP et disponible ici : http://sachinchoolur.github.io/lightGallery/) est utilisée offrant une très bonne expérience utilisateur tant sur desktop que sur mobile.

Pour la partie liste, comme sur la démo, j'ai choisi un design HTML5 minimal basé en partie sur CSS Flexbox avec du SVG en background (que vous pouvez bien sur personnaliser à votre goût)

Petit plus +

Si le coeur vous en dit, vous pourrez comme sur la démo, intégrer un script de téléchargement des vidéos Youtube tel que celui proposé par John Eckman "YouTube Downloader", un service qui peut être utile pour visionner offline ou archiver.

Installation et configuration de ce script de playlist vidéo : 

Très simple, vous avez juste à télécharger le ZIP ci-dessous et à modifier 2 fichiers, ensuite vous pouvez à votre guise pousser plus loin la personnalisation, le code est commenté pour vous faciliter la tâche.

  • 1) Télécharger le ZIP
  • 2) Décompresser l'archive
  • 3) Envoyer le contenu dans un dossier (où à la racine) de votre serveur
  • 4) Créer dans ce dossier les dossiers "/tmp/youtube-cache" pour le cache et autoriser en écriture (permissions). Vous pouvez modifier le temps de mise en cache ligne 23.
  • 5) Obtenir une clé API "Clé pour les applications de serveur" sur "https://console.developers.google.com/"
  • 6) Editer le fichier "youtube-v3-direct-xml.php" à la ligne 35 et renseigner votre clé à la place de "Votre-Clé-Api-Ici".
  • 7) Editer le fichier "top-video.php" à la ligne 5 et remplacer "http://www.votre-site.fr/youtube-playlist/" par le chemin d'installation de votre script ("/" final requis!)
  • 8) Editer le fichier "top-video.xsl" à la ligne 17 et remplacer "http://www.votre-site.fr/youtube-playlist/" par le chemin d'installation de votre script ("/" final requis!)
  • 9) Voilà, c'est fini pour l'installation.

Vous souhaiterez certainement personnaliser à votre guise ce script, libre à vous, toutes les indications sont en commentaires dans les fichiers, et je laisse à votre imagination féconde les possibilités de modifications et d'utilisation de ce script. 

Comme vous pouvez le voir dans la démo, j'ai associé le script "YouTube Downloader" de John Eckman, vous trouverez en ligne 176 de "top-video.xsl" le code à décommenter pour faire de même le lien pour télécharger cette librairie "https://github.com/jeckman/YouTube-Downloader".

Pour conclure : 

N'hésitez pas à me poser vos questions en commentaires ci-dessous ou à me faire part de vos créations réalisées à partir de ce script. 


Télécharger

Pour continuer votre lecture sur la thématique Scripts gratuits

Partager l'article sur :

Lien permanent :

Tags : Scripts gratuits, Développement, Outils et services web,

Commenter et noter cet article

Les commentaires pour cet article

-
Note pour l'article : 3 sur 5

Hello, Merci pour le script. Est ce que ca fonctionne toujours? Car chez moi non :( http://test.ebouilleursurf.com/top-video.php?q=sémantique+seo&maxResults=12&order=relevance&rlang=fr Merci pour ton aide.

Ecrit le : 19/09/2016 à 16h28


- Site - Poitiers France
Note pour l'article : 5 sur 5

Bonjour Yves, Oui je te confirme ce script marche toujours, je remarque que tu utilise la requêre de la V2, la version en cours est "http://www.xtendo.fr/article.php?article=youtube-playlist-php-nouvelle-version-api-v3". Pour la suite passe par email, ce sera plus simple. bien à toi

Ecrit le : 22/09/2016 à 14h16


- Site - Poitiers France
Note pour l'article : 5 sur 5

Bonjour Mat, Non cela n'est pas possible, Google via son API limite le nombre maximal de résultats renvoyés à 50. Il est cependant possible d'utiliser le paramêtre "PageToken" (nextPageToken, prevPageToken) pour créer une pagination vers les résultats suivants (non implémenté dans le script) . Voir ici : https://developers.google.com/youtube/v3/docs/search/list

Ecrit le : 07/01/2016 à 19h46


- Toulon
Note pour l'article : 5 sur 5

Bonjour, Est-il possible de faire défiler les recherches, et ainsi ne pas donner un nombre maximum de résultats ?

Ecrit le : 07/01/2016 à 11h49


- Poitiers
Note pour l'article : 5 sur 5

Bonjour Armand, Avez-vous modifié le fichier xslt ? Si oui, veillez à respecter la norme XHTML Strict dans votre code. Avez-vous ajouté votre clé API Youtube ? Sans elle vous n'obtiendrez pas de données de Youtube. Si vous souhaitez une réponse plus précise envoyez moi l'adresse de votre galerie vidéo. Bien à vous

Ecrit le : 16/07/2015 à 11h20


- Abidjan Côte d'ivoire
Note pour l'article : 3 sur 5

Salut, j'essai d'utiliser votre script pour une galerie video. Mais j'ai l'erreur : Warning: DOMDocument::load() [domdocument.load]: Extra content at the end of the document in..... youtube-v3-direct-xml.php?q=SEO&maxResults=10, line: 2 in ....youtube-playlist/top-video.php on line 26

Ecrit le : 10/07/2015 à 19h17


- Poitiers
Note pour l'article : 5 sur 5

Ah, je t'ai mal lu, la requête que tu passe au script n"est pas complète, le paramétre "order" est requis, tu peux le mettre en dur dans le script si tu veux une url plus courte. Voici un exemple d'url complète : "http://www.xtendo.fr/gratuit/youtube-playlist/playlist-video-search-apiv3.php?q=sémantique+seo&maxResults=12&order=relevance&rlang=fr#" si cela ne marche pas adapté à ton cas, tu peux m'envoyer ton URL par email. Bonne nuit

Ecrit le : 28/05/2015 à 00h13


- trets
Note pour l'article : 3 sur 5

Merci pour la réponse, oui je suis au courant pour la V2, et justement mon soucis se trouve sur la V3 ! :)

Ecrit le : 27/05/2015 à 22h22


- Poitiers
Note pour l'article : 5 sur 5

Réponse à Jeredoc. Bonjour et merci ! Pour la 1ère version en Youtube API V2 c'est terminé, plus de point d'accès... D'ou la nouvelle version en API V3 qui je l'espère marche chez toi. Après en modifiant le code de la V2 et avec les flux RSS (voir ici l'astuce : http://lehollandaisvolant.net/?mode=links&id=20150515120010) il y a moyen de la "réssuciter" si le coeur t'en dit. A bientôt :-)

Ecrit le : 27/05/2015 à 22h04


- Site - trets france
Note pour l'article : 4 sur 5

bonjour, votre script est bien sympa, sur votre site en tout cas, je m'explique j'ai tenté de l'installer et en lançant top-video.php?q=stevie+wonder&maxResults=18 je vois une erreur 500 dans la console, en revanche avec youtube-v3-direct-xml.php?q=stevie+wonder&maxResults=30 ma page xml se charge bien, est-ce un htaccess en cause? (j'en ai pas) ou mon serveur ? (j'ai bien la clef api) merci d'avance

Ecrit le : 27/05/2015 à 19h02