Как получить теги видео YouTube с помощью API YouTube
Недавно я работал над проектом, в котором наш клиент хочет получить теги видео с YouTube. Они запустили свой канал на YouTube и хотели получить простую утилиту для получения тегов любого видео YouTube с помощью URL-адреса видео. В этой статье я покажу вам, как получить теги видео YouTube с помощью API YouTube.
С помощью этой утилиты можно получить теги любого видео YouTube, содержащие правильный URL-адрес видео. Это может помочь пользователям YouTube просматривать теги, используемые для их собственных / видео конкурентов. Это добавит преимуществ, чтобы узнать соответствующие теги для своих видео.
Ниже приведены возможные форматы URL-адресов любого видео YouTube. Вы должны использовать сопоставление URL-адресов с любым из вышеуказанных форматов.
- https://youtu.be/VIDEO_ID
- https://www.youtube.com/embed/VIDEO_ID
- https://www.youtube.com/watch?v=VIDEO_ID
Начиная
Для начала вам необходимо получить ключ API из вашей учетной записи Google Console. Этот ключ API необходим при взаимодействии с API YouTube. Без этого ключа YouTube считает все входящие вызовы API несанкционированными.
Ниже приведены шаги по получению ключа API.
- Перейдите в консоль разработчика Google https://console.developers.google.com.
- Создайте новый проект. При желании вы также можете выбрать существующий проект.
- Дайте название вашему проекту. Консоль Google создаст для вас уникальный идентификатор проекта.
- Ваш недавно созданный проект появится в верхней части левой боковой панели.
- Нажмите «Библиотека» в левом меню. Вы увидите список API Google. Включите API данных YouTube.
- Затем в левом меню нажмите Учетные данные. Выберите ключ API в разделе «Создать учетные данные».
- Скопируйте этот ключ API.
После этого создайте простую форму, в которой вы можете добавить URL-адрес видео YouTube и отправить его для дальнейшей обработки.
<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>
Получите YouTube видео теги с помощью YouTube API
Как упоминалось ранее, YouTube поддерживает разные типы URL-адресов. Нам нужно изучить различные форматы URL-адресов и извлечь из них идентификатор видео.
Напишем функцию, которая извлекает идентификатор видео, используя регулярное выражение из поддерживаемого формата URL-адреса видео YouTube.
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
Затем напишите метод, который будет вызывать API и обрабатывать ответ. Этот ответ будет содержать теги, поэтому верните его тем же методом.
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.");
}
}
Когда пользователь вводит действительный URL-адрес видео YouTube, нам нужно вызвать getYTTags
функцию и создать переменную, содержащую список тегов видео.
$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);
}
Обязательно замените заполнители вашим фактическим ключом API. Наконец, отобразите список тегов в формате HTML.
if (!empty($arr_tags)) {
echo "<ul>";
foreach ($arr_tags as $tag) {
echo "<li>$tag</li>";
}
echo "</ul>";
}
Окончательный код
Мы написали код по частям. Ниже приведен окончательный код, который вы можете скопировать и использовать в своем приложении.
<?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>";
}
Все дело в получении тегов видео YouTube с помощью API YouTube и PHP. Пожалуйста, поделитесь своими мыслями и предложениями в разделе комментариев ниже.
Статьи по Теме
- Как использовать YouTube API для загрузки видео на канал YouTube
- YouTube API – как получить список YouTube-видео вашего канала
- Как получить список видео YouTube по ключевым словам с помощью API поиска YouTube