Så här får du YouTube-videotaggar med YouTube API
Nyligen arbetade jag med ett projekt där vår klient vill få taggar med YouTube-videor. De kör sin YouTube-kanal och ville ha ett enkelt verktyg för att få taggar av vilken YouTube-video som helst med hjälp av videon URL. I den här artikeln visar jag dig hur du får YouTube-videotaggar med hjälp av YouTube API.
Med hjälp av det här verktyget kan man få taggar av vilken YouTube-video som helst som ger rätt video-URL. Detta kan hjälpa YouTubers att se taggarna som används för sina egna / konkurrerande videor. Det kommer att ge fördelar för att ta reda på relevanta taggar för deras videor.
Nedan finns möjliga URL-format för alla YouTube-videor. Du måste använda webbadressen som matchar något av ovanstående format.
- https://youtu.be/VIDEO_ID
- https://www.youtube.com/embed/VIDEO_ID
- https://www.youtube.com/watch?v=VIDEO_ID
Komma igång
För att komma igång måste du först hämta en API-nyckel från ditt Google Console-konto. Denna API-nyckel är nödvändig när du interagerar med YouTube-API: erna. Utan denna nyckel betraktar YouTube alla inkommande API-samtal som obehöriga.
Nedan följer stegen för att ta tag i API-nyckeln.
- Gå över till Googles utvecklarkonsol https://console.developers.google.com.
- Skapa ett nytt projekt. Alternativt kan du också välja ett befintligt projekt.
- Ge ditt projekt ett namn. Google Console skapar ett unikt projekt-ID för dig.
- Ditt nyskapade projekt visas längst upp till vänster i sidofältet.
- Klicka på Bibliotek från den vänstra menyn. Du kommer att se en lista över Googles API: er. Aktivera YouTube Data API.
- Klicka sedan på referenser från vänster meny. Välj API-nyckel under Skapa referenser.
- Kopiera den här API-nyckeln.
Skapa sedan ett enkelt formulär där du kan lägga till en YouTube-video-URL och skicka den för vidare bearbetning.
<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>
Skaffa YouTube-videotaggar med hjälp av YouTube API
Som nämnts tidigare stöder YouTube olika typer av webbadresser. Vi måste titta på de olika webbformaten och extrahera video-id från dem.
Låt oss skriva funktionen som extraherar video-id med hjälp av det reguljära uttrycket från ett stöd för YouTube-video-URL-format.
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
Skriv sedan en metod som ger ett API-samtal och bearbetar svaret. Detta svar skulle innehålla taggarna så returnera det från samma metod.
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.");
}
}
När en användare anger en giltig webbadress för YouTube-video måste vi ringa getYTTags
funktionen och skapa en variabel som innehåller en lista med videotaggar.
$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);
}
Se till att ersätta platshållarna med din faktiska API-nyckel. Slutligen, visa listan med taggar i HTML-format.
if (!empty($arr_tags)) {
echo "<ul>";
foreach ($arr_tags as $tag) {
echo "<li>$tag</li>";
}
echo "</ul>";
}
Slutlig kod
Vi har skrivit koden i bitar. Nedan visas den slutliga koden som du kan kopiera och använda i din applikation.
<?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>";
}
Det handlar om att få YouTube-videotaggar med hjälp av YouTube API och PHP. Dela dina tankar och förslag i kommentarsektionen nedan.
relaterade artiklar
- Hur man använder YouTube API för att ladda upp video på YouTube-kanal
- YouTube API – Hur får jag en lista över YouTube-videor från din kanal
- Så här får du YouTube-videolista efter nyckelord med hjälp av YouTube Search API