IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requête php api youtube


Sujet :

PHP & Base de données

  1. #21
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Bonsoir,

    Apparemment il n'est pas possible d'exclure les vidéos "short" directement avec la requête curl, mais il y a mieux, on peut récupérer la vidéo directement avec son ID.

    Si je prends la première vidéo ayant le titre "SLASH ROYALE Is Back! Get Ready for Evolution! (New Season!)" comme exemple, lancez la vidéo dans le navigateur, puis faites un clic droit au milieu, puis cliquez sur "Stats pour les nerds".

    La fenêtre modal qui s'affiche montre le ID de la vidéo qui est 1GBn20wVdcc, il est donc possible d'utiliser cet ID dans l'url de curl :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $activitiesUrl="https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails&id=1GBn20wVdcc&key=$apiKey";

    Et la partie PHP qui traite la demande devient
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $activitiesData =json_decode($response);
    //echo "<pre>".var_dump($activitiesData->items)."</pre>";
    $html="";
    if(!empty($activitiesData->items[0])){
    	$item=$activitiesData->items[0];
    	$videoId=$item->id;
    	$videoTitle = $item->snippet->title;
    	$videoDescription = $item->snippet->description;
    	$videoThumbnail = $item->snippet->thumbnails->default->url;
    	$html .= '<div class="video-responsive">';
    	$html .= '<iframe width="560" height="315" src="https://www.youtube.com/embed/' . $videoId . '" title="'.$videoTitle.'" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>';
    	$html .= '</div>';
    	echo $html;
    }

    Voir la documentation et le filtre id de la commande /v3/videos.

  2. #22
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2022
    Messages : 42
    Par défaut
    J'ai réussi comme cela à récupérer la dernière vidéo dans la rubrique "vidéos" de la page youtube, mais comme il s'agit de la dernière vidéo publiée, si une vidéo est publiée dans une autre rubrique tel que "shorts" ou "playlist", ma vidéo sera remplacé. Je ne pense pas qu'on puisse restreindre la récupération à la rubrique vidéo de la page youtube.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
     
    $channelId = 'UC_F8DoJf9MZogEOU51TpTbQ'; // Identifiant de la chaîne Clash Royale
     
    $feedUrl = 'https://www.youtube.com/feeds/videos.xml?channel_id='.$channelId;
     
    // Récupération du contenu XML
     
    $xml = file_get_contents($feedUrl);
     
    // Conversion en objet SimpleXML
     
    $feed = simplexml_load_string($xml);
     
    if ($feed !== false && isset($feed->entry[0])) {
     
    $latestVideo = $feed->entry[0];
     
    $videoId = substr((string)$latestVideo->id, 9); // Extraction de l'identifiant de la vidéo
     
    $videoUrl = 'https://www.youtube.com/embed/'.$videoId; // URL de l'intégration de la vidéo
     
    // Affichage de la vidéo sur le site web
     
    echo'<div class="video-responsive paddingtab blue-stylized-border" data-aos="fade-in" data-aos-offset="-5">';
     
    echo'<iframe width="560" height="315" src="'.$videoUrl.'" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>';
     
    echo'</div>';
     
    } else {
     
    echo'Aucune vidéo trouvée.';
     
    }
     
    ?>

Discussions similaires

  1. Requête HTTP en PHP - API Ebay
    Par denimb dans le forum Langage
    Réponses: 4
    Dernier message: 13/02/2018, 17h37
  2. [Conception] Résultat d'une requête PHP dans un tableau avec lien ?
    Par DjMaC dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/04/2006, 20h37
  3. Aide php api
    Par pascal57 dans le forum Langage
    Réponses: 2
    Dernier message: 12/03/2006, 01h34
  4. [MySQL] Ma requête php n'effectue pas la modification
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 01/03/2006, 17h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo