Informações do YouTube - Como capturar usando PHP

Informações do YouTube - Como capturar usando PHP

Hoje em dia temos um sério problema com limite de tráfego de servidores, o que acaba forçando os programadores utilizarem serviços de terceiros para inserir nos sites conteúdo de vídeos. Uma das opções é o serviço do Google: O YouTube. O problema que surgia logo após a migração de vídeos para o YouTube, é que todas informações cadastradas no YouTube eram um pouco difíceis de ser recuperar. Em um dilema como este, resolvi criar uma classe (Um script) que faça todo trabalho pesado para recuperar as Informações do YouTube. Vou mostrar para vocês como funciona:

Neste tutorial estarei utilizando uma classe chama youtubeDetails, que disponibilizei no github (caso achem bugs ou queira melhorar, fiquem a vontade). Esta classe consegue atualmente recuperar:

  • Imagens.
  • URL para embed.
  • Data da publicação.
  • Data da ultima atualização.
  • Título.
  • Descrição.
  • Autor.

Existem dois métodos públicos para consulta rápida e com maior performasse, que é o getImages() para recuperar as imagens e o getEmbed() para recuperar a URL de embed.

Existe outro método mais completo chamdo getInfor() que este conecta no feed do Google e busca todas as outras informações, alem de chamar os métodos de imagem e de embed. (Evite usar esse método se você quiser apenas buscar a imagem ou pegar a URL de embed.

Para a classe funcionar, é necessário informar uma URL (válida) do vídeo do YouTube, essa URL pode ser informada no construtor, ou em qualquer método publico da classe.

Uma coisa importante de saber: Todas as informações do YouTube são retornadas como array.

Usando a classe para receber as informações do YouTube

Primeiro passo, baixe a classe no github https://github.com/Sena/youtubeDetails

Incluiremos a classe em nosso código usando a função require do PHP

1
require 'class/youtubeDetails.php'

Criando uma instancia do objeto youtubeDetails() informando a URL do nosso vídeo e guardando a instancia em uma variável

1
$youtubeDetails = new youtubeDetails('https://www.youtube.com/watch?v=0rFE8FZNZ3o');

Recuperando apenas as imagens e guardando em uma variável.

1
2
3
4
5
6
7
8
$imagens = $youtubeDetails->getImages();

//Imagem grande
echo $imagens['big'];
echo '<br>';

//Imagem pequena
echo $imagens['small'];

Recuperando apenas a URL para embed e guardando em uma variável.

1
2
3
4
$embed = $youtubeDetails->getEmbed();

//Link para embed do vídeo
echo $embed;

Recuperando todas informações do youtube e guardando em uma variável (Ao chamar esse método, não é necessário chamar os outros, pelo fato deste trazer todas informações disponíveis na classe)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$infor = $youtubeDetails->getInfor();

//Imagem grande
echo $infor['image']['big'];
echo '<br>';

//Imagem pequena
echo $infor['image']['small'];
echo '<br>';

//Link para embed
echo $infor['embed'];
echo '<br>';

//Data da publicação
echo $infor['published'];
echo '<br>';

//Última atualização
echo $infor['updated'];
echo '<br>';

//Título
echo $infor['title'];
echo '<br>';

//Descrição
echo $infor['description'];
echo '<br>';

//Autor
echo $infor['author'];

Este post, foi inicialmente inspirado no Obter miniaturas de imagem de um vídeo do YouTube usando PHP