Jak uzyskać tagi wideo YouTube za pomocą interfejsu API YouTube
Ostatnio pracowałem nad projektem, w którym nasz klient chce zdobyć tagi filmów z YouTube. Prowadzą swój kanał YouTube i chcieli prostego narzędzia do pobierania tagów dowolnego filmu z YouTube za pomocą adresu URL filmu. W tym artykule pokażę, jak uzyskać tagi wideo YouTube za pomocą interfejsu API YouTube.
Korzystając z tego narzędzia, można uzyskać tagi dowolnego filmu z YouTube, podając poprawny adres URL filmu. Może to pomóc YouTuberom przeglądać tagi używane do ich własnych/konkurujących filmów. Doda korzyści, aby znaleźć odpowiednie tagi dla ich filmów.
Poniżej znajdują się możliwe formaty adresów URL dowolnego filmu na YouTube. Musisz użyć adresu URL pasującego do dowolnego z powyższych formatów.
- https://youtu.be/VIDEO_ID
- https://www.youtube.com/embed/VIDEO_ID
- https://www.youtube.com/watch?v=VIDEO_ID
Pierwsze kroki
Aby rozpocząć, musisz najpierw uzyskać klucz API z konta Konsoli Google. Ten klucz API jest niezbędny podczas interakcji z interfejsami API YouTube. Bez tego klucza YouTube traktuje wszystkie przychodzące wywołania API jako nieautoryzowane.
Poniżej znajdują się kroki, aby pobrać klucz API.
- Przejdź do Konsoli programisty Google https://console.developers.google.com.
- Utwórz nowy projekt. Opcjonalnie możesz również wybrać istniejący projekt.
- Nadaj nazwę swojemu projektowi. Konsola Google utworzy dla Ciebie unikalny identyfikator projektu.
- Twój nowo utworzony projekt pojawi się na górze lewego paska bocznego.
- Kliknij Biblioteka z lewego menu. Zobaczysz listę interfejsów Google API. Włącz interfejs API danych YouTube.
- Następnie z lewego menu kliknij Poświadczenia. Wybierz klucz API w obszarze Utwórz poświadczenia.
- Skopiuj ten klucz API.
Następnie utwórz prosty formularz, w którym możesz dodać adres URL wideo YouTube i wysłać go do dalszego przetwarzania.
<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>
Pobierz tagi wideo YouTube za pomocą interfejsu API YouTube
Jak wspomniano wcześniej, YouTube obsługuje różne typy adresów URL. Musimy przyjrzeć się różnym formatom adresów URL i wyodrębnić z nich identyfikator wideo.
Napiszmy funkcję, która wyodrębnia identyfikator wideo za pomocą wyrażenia regularnego z obsługiwanego formatu adresu URL wideo YouTube.
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
Następnie napisz metodę, która wywoła wywołanie API i przetworzy odpowiedź. Ta odpowiedź zawierałaby tagi, więc zwróć ją tą samą 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.");
}
}
Gdy użytkownik wprowadzi prawidłowy adres URL wideo YouTube, musimy wywołać getYTTags
funkcję i zbudować zmienną zawierającą listę tagów wideo.
$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);
}
Pamiętaj, aby zastąpić symbole zastępcze rzeczywistym kluczem API. Na koniec wyświetl listę tagów w formacie HTML.
if (!empty($arr_tags)) {
echo "<ul>";
foreach ($arr_tags as $tag) {
echo "<li>$tag</li>";
}
echo "</ul>";
}
Kod końcowy
Napisaliśmy kod w kawałkach. Poniżej znajduje się ostateczny kod, który możesz skopiować i wykorzystać w swojej aplikacji.
<?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>";
}
Wszystko sprowadza się do uzyskiwania tagów wideo YouTube za pomocą interfejsu API YouTube i PHP. Podziel się swoimi przemyśleniami i sugestiami w sekcji komentarzy poniżej.
Powiązane artykuły
- Jak korzystać z interfejsu API YouTube do przesyłania wideo na kanał YouTube?
- YouTube API – jak uzyskać listę filmów z YouTube na swoim kanale
- Jak uzyskać listę filmów YouTube według słów kluczowych za pomocą interfejsu API wyszukiwania YouTube YouTube