SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 151 visiteurs en ce moment

Accueil > Squelettes > Tutoriels pour squelettes > Boucle (DATA) avec l’API Youtube

Boucle (DATA) avec l’API Youtube

25 août 2014 – par Mathieu – commentaires

3 votes

Les boucles (DATA) et les itérateurs sont bien pratiques. Ils vont permettre à Spip de boucler sur des sources externes à la base de données du site (fichiers externes, API, etc...).

Voila un exemple de boucle pour lister les dernières vidéos (ici les 2 dernières) d’une chaine Youtube, en utilisant l’api Google Youtube V3 et la boucle DATA.

Pré-requis :

Bon à savoir : L’API Youtube retourne des objets au format Json, on va donc utiliser l’itérateur du même nom.

La boucle « BOUCLE_youtube » va retourner les 2 dernières vidéos de la chaine Youtube. Dans la source, il faut remplacer CLE_API_GOOGLE par votre cle API Google et ID_CHAINE_YOUTUBE par l’identifiant de la chaine Youtube.

La boucle « BOUCLE_youtube_details » va retourner toutes les infos sur une vidéos (miniature, titre, durée...). Dans la source, il faut remplacer CLE_API_GOOGLE par votre cle API Google.

  1. <B_youtube>
  2. <ul>
  3. <BOUCLE_youtube(DATA)
  4. {source json,'https://www.googleapis.com/youtube/v3/search?key=CLE_API_GOOGLE&channelId=ID_CHAINE_YOUTUBE&part=id&order=date&maxResults=2'}
  5. {datapath /items}
  6. {0,2}
  7. >
  8. <li>
  9. <BOUCLE_youtube_details(DATA){source json,#VAL{'https://www.googleapis.com/youtube/v3/videos?key=CLE_API_GOOGLE&part=snippet,contentDetails&id='}|concat{#VALEUR{id}|get_object_vars|table_valeur{videoId}}}
  10. {datapath /items}
  11. {0,1}
  12. >
  13. <ul>
  14. [<li class="video_image"><a href="http://www.youtube.com/watch?v=#VALEUR{id}" rel="external"><img src="(#VALEUR{snippet}|get_object_vars|table_valeur{thumbnails}|get_object_vars|table_valeur{standard}|get_object_vars|table_valeur{url})" alt="" /></a></li>]
  15. [<li class="video_titre">(#VALEUR{snippet}|get_object_vars|table_valeur{title})</li>]
  16. <li class="video_duree">[(#VALEUR{contentDetails}|get_object_vars|table_valeur{duration}|match{(\d+)H}|replace{'H',''}):][(#VALEUR{contentDetails}|get_object_vars|table_valeur{duration}|match{(\d+)M}|replace{'M',''})][:(#VALEUR{contentDetails}|get_object_vars|table_valeur{duration}|match{(\d+)S}|replace{'S',''})]</li>
  17. </ul>
  18. </BOUCLE_youtube_details>
  19. </li>
  20. </BOUCLE_youtube>
  21. </ul>
  22. </B_youtube>
  23. <//B_youtube>

Télécharger

Comme l’API retourne des objets et non des tableaux, on est obligé de passer par la fonction php get_object_vars() pour récupérer les valeurs.

Les informations sur le format des données retournées est disponible ici : https://developers.google.com/youtube/v3/docs/videos

Attention : il faut avoir l’extension Php Openssl activé sur votre serveur.

Dernière modification de cette page le 26 août 2014

Retour en haut de la page

Vos commentaires

  • Le 15 juillet à 19:20, par xavier_bs En réponse à : Boucle (DATA) avec l’API Youtube

    Remarquable contribution pour comprendre l’utilisation concrète des boucles DATA, et très bonne remarque de eidôlon concernant les get_object_vars. Le code fonctionne nickel.

    Répondre à ce message

  • Le 1er juin 2015 à 12:06, par eidôlon En réponse à : Boucle (DATA) avec l’API Youtube

    Salut, merci pour l’exemple j’ai dû faire les modifications suivantes pour le faire fonctionner :

    -  suppression des get_object_vars()
    -  la ligne

    1. <img src="(#VALEUR{snippet}|get_object_vars|table_valeur{thumbnails}|get_object_vars|table_valeur{standard}|get_object_vars|table_valeur{url})" alt="" />

    devient

    1. [<img src="(#VALEUR{snippet}|table_valeur{thumbnails}|table_valeur{high}|table_valeur{url})" class="img-responsive" alt="" />]

    valeurs possibles pour thumbnails : object

    Valid key values are :
    default – The default thumbnail image for this resource. The default thumbnail for a video – or a resource that refers to a video, such as a playlist item or search result – is 120px wide and 90px tall. The default thumbnail for a channel is 88px wide and 88px tall.
    medium – A higher resolution version of the thumbnail image. For a video (or a resource that refers to a video), this image is 320px wide and 180px tall. For a channel, this image is 240px wide and 240px tall.
    high – A high resolution version of the thumbnail image. For a video (or a resource that refers to a video), this image is 480px wide and 360px tall. For a channel, this image is 800px wide and 800px tall.

    API YouTube

    Répondre à ce message

  • Le 24 septembre 2014 à 11:07, par freedfromparis En réponse à : Boucle (DATA) avec l’API Youtube

    Excellent article !!! Merci !

    Je chercher à faire un truc un peu plus sioux, je voudrais faire un peu comme le système de syndication c’est à dire proposer de créer des articles à chaque nouvelle vidéo postée sur une chaine Youtube

    Une idée de comment faire cela ?

    Merci d’avance.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Module de paiement Paypal Express Checkout

    12 juin 2015 – commentaires

    Ce mode de paiement par Paypal Express Checkout est sécurisé et peut-être utilisé en toute confiance. Il permet également, dans le cadre de certaines boutiques, d’optimiser le workflow de paiement en sautant l’étape de création de compte et en (...)

  • Le plugin ZotSpip

    28 mai 2012 – 138 commentaires

    Synchronise Spip avec une bibliothèque (personnelle ou partagée) de références bibliographiques Zotero. Utilisez Zotero pour gérer / importer / rédiger vos références bibliographiques, puis incorporez vos références bibliographiques dans votre Spip avec (...)

  • ScolaSPIP 4

    19 janvier 2016 – 213 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • MediaBox

    10 mai 2010 – 514 commentaires

    Avertissement Le présent plugin est installé et activé par défaut sur toute les version de SPIP > 3.0. Inutile donc de l’installer manuellement sauf si vous utilisez SPIP 2.1. Aperçu La MediaBox est une Boîte multimédia polyvalente et (...)

  • Sommaire automatique

    31 janvier 2013 – 14 commentaires

    Ce plugin repère les intertitres des textes de vos articles et s’en sert pour génèrer un sommaire. Ce dernier peut être inséré automatiquement au début de chaque article, ou utilisé dans les squelettes pour générer un sommaire sur n’importe quel autre (...)

Ça spipe par là