YouTube: Capturando os dados de um vídeo
Olá pessoal! Entrando com mais um post.
Já escrevi 2 posts dando dicas de como obter o Título e o ID de um vídeo do YouTube.
Agora, mostro de uma forma mais completa, incluindo a possibilidade de pegar a descrição do vídeo e o número de visualizações.
O código é baseado na versão 2 da API do YouTube. Mais informações clique aqui.
Nota: a API de dados do YouTube (v2) foi suspensa oficialmente em 4 de março de 2014.
Script atualizado para YouTube Data API (v3)
Importante: na versão 3 é necessário uma Conta do Google e uma chave API.
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 33 34 35 36 37 38 39 40 41 42 | <?php function getDadosYoutube($url){ $parse = parse_url( $url, PHP_URL_QUERY ); // v=yTmIkOwA98o parse_str($parse, $youtubeID); // Array ( [v] => yTmIkOwA98o ) // informa a sua chave API $key = "INFORME_SUA_CHAVE_API"; // montando a url $url = "https://www.googleapis.com/youtube/v3/videos?id=" . $youtubeID['v'] . "&key=" . $key . "&part=snippet,contentDetails,statistics"; // exemplo de como pegar uma minatura do vídeo //$url = "https://www.googleapis.com/youtube/v3/videos?id=" . $youtubeID['v'] . "&key=" . $key . "&part=snippet&fields=items(snippet(thumbnails(high(url))))"; // obtendo os dados de retorno (json) $json_output = file_get_contents($url); $json = json_decode($json_output, true); // atribuindo os valores $videoTitulo = $json['items'][0]['snippet']['title']; $videoDescricao = $json['items'][0]['snippet']['description']; $videoViews = $json['items'][0]['statistics']['viewCount']; // formatando o resultado $resultado = "<h3>Título:</h3>"; $resultado .= "<p>". $videoTitulo ."</p>"; $resultado .= "<h3>Descrição:</h3>"; $resultado .= "<p>". nl2br($videoDescricao) ."</p>"; $resultado .= "<h3>Nr. de visualizações:</h3>"; $resultado .= "<p>". $videoViews ."</p>"; // imprime o resultado echo $resultado; // permite visualizar todos os dados disponíveis de um vídeo //print_r($json); } // URL do vídeo $urlYoutube = "https://www.youtube.com/watch?v=XjWF6QjAS-A"; // chamada da função getDadosYoutube($urlYoutube); ?> |
Desatualizado: YouTube Data API (v2)
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 | <?php function getDadosYoutube($url){ $parse = parse_url( $url, PHP_URL_QUERY ); // v=yTmIkOwA98o parse_str($parse, $youtubeID); // Array ( [v] => yTmIkOwA98o ) $url = "http://gdata.youtube.com/feeds/api/videos/". $youtubeID['v']."?v=2&alt=json"; $json_output = file_get_contents($url); $json = json_decode($json_output, true); $videoTitulo = $json['entry']['title']['$t']; $videoDescricao = $json['entry']['media$group']['media$description']['$t']; $videoViews = $json['entry']['yt$statistics']['viewCount']; $resultado = "<h3>Título:</h3>"; $resultado .= "<p>". $videoTitulo."</p>"; $resultado .= "<h3>Descrição:</h3>"; $resultado .= "<p>". nl2br($videoDescricao)."</p>"; $resultado .= "<h3>Nr. de visualizações:</h3>"; $resultado .= "<p>". $videoViews."</p>"; echo $resultado; //print_r($json); -- permite visualizar todos os dados disponíveis de um vídeo } $urlYoutube = "https://www.youtube.com/watch?v=XjWF6QjAS-A"; getDadosYoutube($urlYoutube); ?> |
Não deixe de curtir a nossa página e qualquer dúvida, use os comentários.
Até a próxima!
YouTube não usa mais gdata.
Olá eu copiei esse código mas não exibiu nada em meu site… como eu faço pra exibir dados de um video especifico?
Olá Pierre.
O script foi atualizado.
Funcionou perfeitamente, muito obrigado
Parabém por essa postagem.
Amiga, o youtube não usa mas gdata. Eu uso Modern ACC e infelizmente não tem como mais add video. Como faço agora, poderia me dizer?