Cómo obtener etiquetas de video de YouTube usando la API de YouTube
Recientemente trabajé en un proyecto en el que nuestro cliente quiere obtener etiquetas de videos de YouTube. Están ejecutando su canal de YouTube y querían una utilidad simple para obtener etiquetas de cualquier video de YouTube usando la URL del video. En este artículo, le muestro cómo obtener etiquetas de video de YouTube usando la API de YouTube.
Con esta utilidad, se pueden obtener etiquetas de cualquier video de YouTube que proporcione la URL de video correcta. Esto puede ayudar a los usuarios de YouTube a ver las etiquetas utilizadas para sus propios videos o de la competencia. Agregará beneficios para descubrir las etiquetas relevantes para sus videos.
A continuación, se muestran los posibles formatos de URL de cualquier video de YouTube. Debe utilizar la URL que coincida con cualquiera de los formatos anteriores.
- https://youtu.be/VIDEO_ID
- https://www.youtube.com/embed/VIDEO_ID
- https://www.youtube.com/watch?v=VIDEO_ID
Empezando
Para comenzar, primero debe obtener una clave API de su cuenta de Google Console. Esta clave de API es necesaria al interactuar con las API de YouTube. Sin esta clave, YouTube considera que todas las llamadas API entrantes no están autorizadas.
A continuación se muestran los pasos para obtener la clave API.
- Dirígete a la Consola para desarrolladores de Google https://console.developers.google.com.
- Crea un nuevo proyecto. Opcionalmente, también puede seleccionar un proyecto existente.
- Dale un nombre a tu proyecto. Google Console creará un ID de proyecto único para usted.
- Su proyecto recién creado aparecerá en la parte superior de la barra lateral izquierda.
- Haga clic en Biblioteca en el menú de la izquierda. Verá una lista de API de Google. Habilite la API de datos de YouTube.
- A continuación, en el menú de la izquierda, haga clic en Credenciales. Seleccione la clave API en Crear credenciales.
- Copie esta clave de API.
Después de esto, cree un formulario simple donde puede agregar una URL de video de YouTube y enviarlo para su procesamiento posterior.
<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>
Obtenga etiquetas de video de YouTube usando la API de YouTube
Como se mencionó anteriormente, YouTube admite diferentes tipos de URL. Necesitamos mirar los diferentes formatos de URL y extraer la identificación de video de ellos.
Escribamos la función que extrae la identificación del video usando la expresión regular de un formato de URL de video de YouTube compatible.
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
A continuación, escriba un método que dé una llamada a la API y procese la respuesta. Esta respuesta contendría las etiquetas, así que devuélvala desde el mismo método.
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.");
}
}
Cuando un usuario ingresa una URL de video de YouTube válida, necesitamos llamar a la getYTTags
función y crear una variable que contenga una lista de etiquetas de video.
$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);
}
Asegúrese de reemplazar los marcadores de posición con su clave API real. Finalmente, muestre la lista de etiquetas en formato HTML.
if (!empty($arr_tags)) {
echo "<ul>";
foreach ($arr_tags as $tag) {
echo "<li>$tag</li>";
}
echo "</ul>";
}
Código final
Hemos escrito el código en pedazos. A continuación se muestra el código final que puede copiar y usar en su aplicación.
<?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>";
}
Se trata de obtener etiquetas de video de YouTube utilizando la API de YouTube y PHP. Comparta sus pensamientos y sugerencias en la sección de comentarios a continuación.
Artículos relacionados
- Cómo utilizar la API de YouTube para subir videos en el canal de YouTube
- API de YouTube: cómo obtener una lista de videos de YouTube de su canal
- Cómo obtener la lista de videos de YouTube por palabras clave usando la API de búsqueda de YouTube