Como obter tags de vídeo do YouTube usando a API do YouTube
Recentemente, trabalhei em um projeto em que nosso cliente deseja obter tags de vídeos do YouTube. Eles estão executando seu canal no YouTube e queriam um utilitário simples para obter tags de qualquer vídeo do YouTube usando o URL do vídeo. Neste artigo, mostro como obter tags de vídeo do YouTube usando a API do YouTube.
Usando este utilitário, pode-se obter tags de qualquer vídeo do YouTube fornecendo o URL correto do vídeo. Isso pode ajudar os YouTubers a visualizar as tags usadas em seus próprios vídeos / concorrentes. Isso irá adicionar benefícios para descobrir as tags relevantes para seus vídeos.
Abaixo estão os possíveis formatos de URL de qualquer vídeo do YouTube. Você deve usar a correspondência de URL com qualquer um dos formatos acima.
- https://youtu.be/VIDEO_ID
- https://www.youtube.com/embed/VIDEO_ID
- https://www.youtube.com/watch?v=VIDEO_ID
Começando
Para começar, primeiro você precisa obter uma chave de API de sua conta do Console do Google. Esta chave de API é necessária ao interagir com as APIs do YouTube. Sem essa chave, o YouTube considera todas as chamadas de API recebidas como não autorizadas.
Abaixo estão as etapas para obter a chave API.
- Acesse o Google Developer Console https://console.developers.google.com.
- Crie um novo projeto. Opcionalmente, você também pode selecionar um projeto existente.
- Dê um nome ao seu projeto. O console do Google criará um ID de projeto exclusivo para você.
- Seu projeto recém-criado aparecerá no topo da barra lateral esquerda.
- Clique em Biblioteca no menu esquerdo. Você verá uma lista de APIs do Google. Ative a API de dados do YouTube.
- A seguir, no menu esquerdo, clique em Credenciais. Selecione a chave API em Criar credenciais.
- Copie esta chave de API.
Depois disso, crie um formulário simples onde você pode adicionar um URL de vídeo do YouTube e enviá-lo para processamento 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>
Conforme mencionado antes, o YouTube oferece suporte a diferentes tipos de URLs. Precisamos examinar os diferentes formatos de URL e extrair a identificação do vídeo deles.
Vamos escrever a função que extrai o id do vídeo usando a expressão regular de um formato de URL de vídeo do YouTube compatível.
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
Em seguida, escreva um método que fornecerá uma chamada de API e processará a resposta. Essa resposta conteria as tags, portanto, retorne-a do mesmo 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.");
}
}
Quando um usuário insere um URL de vídeo válido do YouTube, precisamos chamar a getYTTags
função e construir uma variável que contém uma lista de tags de vídeo.
$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);
}
Certifique-se de substituir os marcadores de posição pela sua chave de API real. Finalmente, exiba a lista de tags no formato HTML.
if (!empty($arr_tags)) {
echo "<ul>";
foreach ($arr_tags as $tag) {
echo "<li>$tag</li>";
}
echo "</ul>";
}
Código Final
Escrevemos o código em partes. Abaixo está o código final que você pode copiar e usar em seu aplicativo.
<?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>";
}
É tudo sobre como obter tags de vídeo do YouTube usando a API do YouTube e PHP. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.
Artigos relacionados
- Como usar a API do YouTube para carregar vídeos no canal do YouTube
- API do YouTube – Como obter uma lista de vídeos do YouTube do seu canal
- Como obter a lista de vídeos do YouTube por palavras-chave usando a API de pesquisa do YouTube