Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Obtenez une liste de vidéos YouTube par mots-clés à l’aide de l’API de recherche YouTube

35

YouTube est le deuxième plus grand moteur de recherche au monde. En raison de leur popularité, de nombreux sites Web intègrent des fonctionnalités liées à YouTube à leur site Web. Cela inclut l’intégration de vidéos YouTube, le bouton d’abonnement YouTube, la galerie de vidéos YouTube, la recherche de vidéos, etc. Dans cet article, nous allons voir comment intégrer l’API de recherche YouTube au site Web.

Cet article explique comment mettre en œuvre la tâche de recherche de vidéos YouTube sur un site Web. Nous utiliserons l’API de recherche YouTube pour obtenir des vidéos basées sur des mots-clés, les filtrer par options disponibles (date, note, etc.) et afficher la liste des vidéos. Je vais imprimer le titre et l’identifiant de la vidéo. L’utilisateur peut également imprimer d’autres informations selon ses besoins.

Commencer

Pour commencer, vous devez d’abord créer une clé API sur votre compte Google Console. Cette clé est nécessaire lors de l’interaction avec les API YouTube. Sans cette clé, YouTube considère tous les appels API entrants comme non autorisés.

Vous trouverez ci-dessous les étapes pour récupérer la clé API.

  • Rendez-vous sur la console développeur de Google https://console.developers.google.com.
  • Créer un nouveau projet. En option, vous pouvez également sélectionner un projet existant.
  • Donnez un nom à votre projet. Google Console créera un ID de projet unique pour vous.
  • Votre projet nouvellement créé apparaîtra en haut de la barre latérale gauche.
  • Cliquez sur Bibliothèque dans le menu de gauche. Vous verrez une liste d’API Google. Activez l’API de données YouTube.
  • Ensuite, dans le menu de gauche, cliquez sur les informations d’identification. Sélectionnez la clé API sous Créer des informations d’identification.
  • Copiez cette clé API.

Obtenez une liste de vidéos YouTube par mots-clés à l'aide de l'API de recherche YouTube

Créer une interface utilisateur

Pour ce didacticiel, je vais créer un formulaire dans lequel un utilisateur peut saisir le mot-clé, choisir un nombre de vidéos à renvoyer et filtrer le type. L’API YouTube a une limite de 50 enregistrements à la fois, nous garderons donc une limite de 50 sur les champs numériques. Nous allons ajouter une pagination pour obtenir le jeu d’enregistrements suivant et précédent. Dans chaque réponse, YouTube fournit des valeurs pour nextPageToken et prevPageToken si disponibles. En utilisant ces valeurs en tant que paramètre comme ‘pageToken=PageToken_VALUE’ dans les requêtes HTTP GET, nous pouvons récupérer l’ensemble d’enregistrements suivant ou précédent.

Il y a plusieurs options disponibles pour les types de filtres qui sont ‘date’, ‘notation’, ‘pertinence’, ‘titre’, ‘viewCount’. L’utilisateur peut sélectionner l’un ou l’autre et le résultat final dépendra du filtre sélectionné.

<form method="get">
    <p><input type="text" name="q" placeholder="Enter keyword" value="<?php if(array_key_exists('q', $_GET)) echo $_GET['q']; ?>" required></p>
    <p><input type="number" name="max_result" placeholder="Max Results" min="1" max="50" value="<?php if(array_key_exists('max_result', $_GET)) echo $_GET['max_result']; ?>" required></p>
    <p>
        <?php $arr_orders = ['date', 'rating', 'relevance', 'title', 'viewCount']; ?>
        <select name="order" required>
            <option value="">--SELECT ORDER--</option>
            <?php foreach ($arr_orders as $order) { ?>
                <option value="<?php echo $order; ?>" <?php if(array_key_exists('order', $_GET) && ($order==$_GET['order'])) echo 'selected'; ?>><?php echo ucfirst($order); ?></option>
            <?php } ?>
        </select>
    </p>
    <p><input type="submit" value="Submit"></p>
</form>

Ici, nous avons créé un formulaire qui comporte 3 champs pour saisir un mot-clé, définir le nombre d’enregistrements à renvoyer et le type de filtre.

Intégrer l’API de recherche YouTube

À ce stade, nous sommes prêts avec notre clé API et notre formulaire HTML. Ensuite, nous devons obtenir les valeurs du formulaire et les transmettre au point de terminaison de l’API YouTube avec la clé API. Après cela, nous traiterons la réponse finale.

<?php
$api_key = 'YOUR_API_KEY';
  
$arr_list = array();
if (array_key_exists('q', $_GET) && array_key_exists('max_result', $_GET) && array_key_exists('order', $_GET)) {
    $formatted_keyword = implode("+", explode(" ", $_GET['q']));
    $url = "https://www.googleapis.com/youtube/v3/search?q=$formatted_keyword&order=". $_GET['order'] ."&part=snippet&type=video&maxResults=". $_GET['max_result'] ."&key=". $api_key;
  
    if (array_key_exists('pageToken', $_GET)) {
        $url .= "&pageToken=". $_GET['pageToken'];
    }
 
    $arr_list = getYTList($url);
}
  
function getYTList($api_url = '') {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $api_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    $arr_result = json_decode($response);
    if (isset($arr_result->items)) {
        return $arr_result;
    } elseif (isset($arr_result->error)) {
        //print error $arr_result->error
    }
}
?>

Le code ci-dessus vérifie les paramètres de requête d’un mot-clé, max_result et la valeur de commande pour le tri. Il prend ces valeurs et les transmet au point de terminaison de l’API. En retour, il ajoute la réponse à la variable $arr_list. Nous allons parcourir cette variable et imprimer les informations sur les vidéos.

<?php
if (!empty($arr_list)) {
    echo '<ul>';
    foreach ($arr_list->items as $item) {
        echo "<li>". $item->snippet->title ." (Video ID: ". $item->id->videoId .")</li>";
    }
    echo '</ul>';
  
    $url = "?q=". $_GET['q'] ."&max_result=". $_GET['max_result'] ."&order=". $_GET['order'];
    if (isset($arr_list->prevPageToken)) {
        echo '<a href="'.$url.'&pageToken='.$arr_list->prevPageToken.'">Previous</a>';
    }
  
    if (isset($arr_list->nextPageToken)) {
        echo '<a href="'.$url.'&pageToken='.$arr_list->nextPageToken.'">Next</a>';
    }
}
?>

Vous pouvez placer ce code après le code HTML du formulaire. Il vous donnera une liste des titres vidéo, des identifiants vidéo ainsi que des liens de pagination.

Notre code final est le suivant :

<?php
$api_key = 'YOUR_API_KEY';
  
$arr_list = array();
if (array_key_exists('q', $_GET) && array_key_exists('max_result', $_GET) && array_key_exists('order', $_GET)) {
    $formatted_keyword = implode("+", explode(" ", $_GET['q']));
    $url = "https://www.googleapis.com/youtube/v3/search?q=$formatted_keyword&order=". $_GET['order'] ."&part=snippet&type=video&maxResults=". $_GET['max_result'] ."&key=". $api_key;
  
    if (array_key_exists('pageToken', $_GET)) {
        $url .= "&pageToken=". $_GET['pageToken'];
    }
 
    $arr_list = getYTList($url);
}
  
function getYTList($api_url = '') {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $api_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    $arr_result = json_decode($response);
    if (isset($arr_result->items)) {
        return $arr_result;
    } elseif (isset($arr_result->error)) {
        //print error $arr_result->error
    }
}
?>
 
<form method="get">
    <p><input type="text" name="q" placeholder="Enter keyword" value="<?php if(array_key_exists('q', $_GET)) echo $_GET['q']; ?>" required></p>
    <p><input type="number" name="max_result" placeholder="Max Results" min="1" max="50" value="<?php if(array_key_exists('max_result', $_GET)) echo $_GET['max_result']; ?>" required></p>
    <p>
        <?php $arr_orders = ['date', 'rating', 'relevance', 'title', 'viewCount']; ?>
        <select name="order" required>
            <option value="">--SELECT ORDER--</option>
            <?php foreach ($arr_orders as $order) { ?>
                <option value="<?php echo $order; ?>" <?php if(array_key_exists('order', $_GET) && ($order==$_GET['order'])) echo 'selected'; ?>><?php echo ucfirst($order); ?></option>
            <?php } ?>
        </select>
    </p>
    <p><input type="submit" value="Submit"></p>
</form>
 
<?php
if (!empty($arr_list)) {
    echo '<ul>';
    foreach ($arr_list->items as $item) {
        echo "<li>". $item->snippet->title ." (Video ID: ". $item->id->videoId .")</li>";
    }
    echo '</ul>';
  
    $url = "?q=". $_GET['q'] ."&max_result=". $_GET['max_result'] ."&order=". $_GET['order'];
    if (isset($arr_list->prevPageToken)) {
        echo '<a href="'.$url.'&pageToken='.$arr_list->prevPageToken.'">Previous</a>';
    }
  
    if (isset($arr_list->nextPageToken)) {
        echo '<a href="'.$url.'&pageToken='.$arr_list->nextPageToken.'">Next</a>';
    }
}
?>

J’espère que vous comprenez l’intégration de l’API de recherche YouTube à votre site Web. S’il vous plaît partager vos pensées et suggestions dans la section commentaires ci-dessous.

Articles Liés

Source d’enregistrement: artisansweb.net

Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Plus de détails