Se eu tiver uma URL de vídeo do YouTube, há alguma forma de usar PHP e cURL para obter a miniatura associada da API do YouTube?
Cada vídeo do YouTube tem quatro imagens geradas. Elas são previsivelmente formatadas da seguinte forma:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/0.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/1.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/2.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/3.jpg
A primeira da lista é uma imagem em tamanho real e as outras são imagens em miniatura. A imagem em miniatura padrão (ou seja, uma de 1.jpg
, 2.jpg
, 3.jpg
) é:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/default.jpg
Para a versão de alta qualidade da miniatura utilize uma URL semelhante a esta:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg
Existe também uma versão de qualidade média da miniatura, usando uma URL semelhante à da sede:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg
Para a versão de definição padrão da miniatura, use uma URL semelhante a esta:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/sddefault.jpg
Para a versão de resolução máxima da miniatura utilize uma URL semelhante a esta:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg
Todas as URLs acima também estão disponíveis através de HTTP. Adicionalmente, o hostname ligeiramente mais curto i3.ytimg.com
funciona no lugar de img.youtube.com
no exemplo de URLs acima.
Alternativamente, você pode usar a YouTube Data API (v3) para obter imagens em miniatura.
Você pode usar **YouTube Data API*** para recuperar miniaturas de vídeo, legenda, descrição, classificação, estatísticas e muito mais. A API versão 3 requer uma chave. Obtenha a chave e crie uma solicitação [videos: lista]2:
https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=VIDEO_ID
**Exemplo do Código PHP***
$data = file_get_contents("https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=T0Jqdjbed40");
$json = json_decode($data);
var_dump($json->items[0]->snippet->thumbnails);
**Saída***
object(stdClass)#5 (5) {
["default"]=>
object(stdClass)#6 (3) {
["url"]=>
string(46) "https://i.ytimg.com/vi/T0Jqdjbed40/default.jpg"
["width"]=>
int(120)
["height"]=>
int(90)
}
["medium"]=>
object(stdClass)#7 (3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/mqdefault.jpg"
["width"]=>
int(320)
["height"]=>
int(180)
}
["high"]=>
object(stdClass)#8 (3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/hqdefault.jpg"
["width"]=>
int(480)
["height"]=>
int(360)
}
["standard"]=>
object(stdClass)#9 (3) {
["url"]=>
string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/sddefault.jpg"
["width"]=>
int(640)
["height"]=>
int(480)
}
["maxres"]=>
object(stdClass)#10 (3) {
["url"]=>
string(52) "https://i.ytimg.com/vi/T0Jqdjbed40/maxresdefault.jpg"
["width"]=>
int(1280)
["height"]=>
int(720)
}
}
* Não apenas que você precisa de uma chave, você pode ser solicitado por informações de faturamento dependendo do número de solicitações de API que você planeja fazer. Entretanto, poucos milhões de solicitações por dia são gratuitas.
Você pode obter a Entrada de Vídeo que contém a URL para a miniatura do vídeo. Há um código de exemplo no link. Ou, se você quiser analisar XML, há informações aqui. O XML retornado tem um elemento media:thumbnail
, que contém a URL da miniatura.