Comment obtenir des balises vidéo YouTube à l’aide de l’API YouTube
Récemment, j’ai travaillé sur un projet où notre client souhaite obtenir des balises de vidéos YouTube. Ils exploitent leur chaîne YouTube et voulaient un utilitaire simple pour obtenir les balises de toute vidéo YouTube à l’aide de l’URL de la vidéo. Dans cet article, je vous montre comment obtenir des balises vidéo YouTube à l’aide de l’API YouTube.
En utilisant cet utilitaire, on peut obtenir des balises de n’importe quelle vidéo YouTube fournissant l’URL de la vidéo correcte. Cela peut aider les YouTubers à afficher les balises utilisées pour leurs propres vidéos / celles de leurs concurrents. Cela ajoutera des avantages pour découvrir les balises pertinentes pour leurs vidéos.
Vous trouverez ci-dessous les formats d’URL possibles de n’importe quelle vidéo YouTube. Vous devez utiliser l’URL correspondant à l’un des formats ci-dessus.
- https://youtu.be/VIDEO_ID
- https://www.youtube.com/embed/VIDEO_ID
- https://www.youtube.com/watch?v=VIDEO_ID
Commencer
Pour commencer, vous devez d’abord obtenir une clé API à partir de votre compte Google Console. Cette clé API 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.
Après cela, créez un formulaire simple dans lequel vous pouvez ajouter une URL de vidéo YouTube et l’envoyer pour un traitement ultérieur.
<form method="get">
<p>
<input type="text" name="ytvideo" placeholder="Enter YouTube Video URL" value="<?php if (array_key_exists('ytvideo', $_GET)) echo $_GET['ytvideo']; ?>" required />
</p>
<p>
<input type="submit" name="submit" value="Submit">
</p>
</form>
Obtenez des balises vidéo YouTube à l’aide de l’API YouTube
Comme mentionné précédemment, YouTube prend en charge différents types d’URL. Nous devons examiner les différents formats d’URL et en extraire l’identifiant vidéo.
Écrivons la fonction qui extrait l’identifiant de la vidéo à l’aide de l’expression régulière à partir d’un format d’URL vidéo YouTube pris en charge.
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
Ensuite, écrivez une méthode qui donnera un appel API et traitera la réponse. Cette réponse contiendrait les balises, alors renvoyez-la à partir de la même méthode.
function getYTTags($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) && isset($arr_result->items[0]->snippet->tags)) {
return $arr_result->items[0]->snippet->tags;
} elseif (isset($arr_result->error)) {
die("No video tags found.");
}
}
Lorsqu’un utilisateur entre une URL de vidéo YouTube valide, nous devons appeler la getYTTags
fonction et créer une variable qui contient une liste de balises vidéo.
$api_key = 'YOUR_API_KEY';
$arr_tags = array();
if (array_key_exists('ytvideo', $_GET)) {
extract($_GET);
$video_id = extractVideoID($ytvideo);
$api_url = "https://www.googleapis.com/youtube/v3/videos?part=snippet&id=$video_id&type=video&key=$api_key";
$arr_tags = getYTTags($api_url);
}
Assurez-vous de remplacer les espaces réservés par votre clé API réelle. Enfin, affichez la liste des balises au format HTML.
if (!empty($arr_tags)) {
echo "<ul>";
foreach ($arr_tags as $tag) {
echo "<li>$tag</li>";
}
echo "</ul>";
}
Code final
Nous avons écrit le code en morceaux. Vous trouverez ci-dessous le code final que vous pouvez copier et utiliser dans votre application.
<?php
$api_key = 'YOUR_API_KEY';
function getYTTags($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) && isset($arr_result->items[0]->snippet->tags)) {
return $arr_result->items[0]->snippet->tags;
} elseif (isset($arr_result->error)) {
die("No video tags found.");
}
}
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
$arr_tags = array();
if (array_key_exists('ytvideo', $_GET)) {
extract($_GET);
$video_id = extractVideoID($ytvideo);
$api_url = "https://www.googleapis.com/youtube/v3/videos?part=snippet&id=$video_id&type=video&key=$api_key";
$arr_tags = getYTTags($api_url);
}
?>
<form method="get">
<p>
<input type="text" name="ytvideo" placeholder="Enter YouTube Video URL" value="<?php if (array_key_exists('ytvideo', $_GET)) echo $_GET['ytvideo']; ?>" required />
</p>
<p>
<input type="submit" name="submit" value="Submit">
</p>
</form>
<?php
if (!empty($arr_tags)) {
echo "<ul>";
foreach ($arr_tags as $tag) {
echo "<li>$tag</li>";
}
echo "</ul>";
}
Il s’agit d’obtenir des balises vidéo YouTube à l’aide de l’API YouTube et de PHP. S’il vous plaît partager vos pensées et suggestions dans la section commentaires ci-dessous.
Articles Liés
- Comment utiliser l’API YouTube pour télécharger une vidéo sur la chaîne YouTube
- API YouTube – Comment obtenir la liste des vidéos YouTube de votre chaîne
- Comment obtenir une liste de vidéos YouTube par mots-clés à l’aide de l’API de recherche YouTube