Se eu tiver um URL de vídeo do YouTube, existe alguma maneira de usar PHP e cURL para obter a miniatura associada da API do YouTube?
2400
Se eu tiver um URL de vídeo do YouTube, existe alguma maneira de usar PHP e cURL para obter a miniatura associada da API do YouTube?
Respostas:
Cada vídeo do YouTube tem quatro imagens geradas. Eles estão previsivelmente formatados da seguinte maneira:
O primeiro da lista é uma imagem em tamanho real e outras são miniaturas. A imagem em miniatura padrão (ou seja, um dos
1.jpg
,2.jpg
,3.jpg
) é:Para a versão de alta qualidade da miniatura, use um URL semelhante a este:
Há também uma versão de miniatura de qualidade média, usando um URL semelhante ao HQ:
Para a versão de definição padrão da miniatura, use um URL semelhante a este:
Para a versão de resolução máxima da miniatura, use um URL semelhante a este:
Todos os URLs acima também estão disponíveis via HTTP. Além disso, o nome do host um pouco menor
i3.ytimg.com
funciona no lugar deimg.youtube.com
URLs de exemplo acima.Como alternativa, você pode usar a API de dados do YouTube (v3) para obter imagens em miniatura.
fonte
http://www.img.youtube.com
, únicahttp://img.youtube.com
mqdefault
é 16: 9sddefault
emaxresdefault
NÃO SÃO SEMPRE DISPONÍVEIS alguns vídeos os têm ...Você pode usar a API de dados do YouTube para recuperar miniaturas de vídeos, legendas, descrição, classificação, estatísticas e muito mais. A API versão 3 requer uma chave *. Obtenha a chave e crie um vídeo: pedido de lista :
Exemplo de código PHP
Resultado
* Além de precisar de uma chave, você pode ser solicitado a fornecer informações de cobrança, dependendo do número de solicitações de API que planeja fazer. No entanto, poucos milhões de solicitações por dia são gratuitas.
Artigo de origem .
fonte
jsonc
vez dejson
para getJSON. Está falhando devido à sua estrutura JSON incorreta.jsonc
. Os exemplos jQuery e PHP DEVEM usarjson
. E eu atualizei o código para estar em conformidade com a nova estrutura JSON. Estou usando o código agora e ele está funcionando LIVE. então não diga que não está funcionando sem ler as alterações. Obrigado!v=2
) cuida das alterações da API.O que Asaph disse está certo. No entanto, nem todos os vídeos do YouTube contêm todas as nove miniaturas. Além disso, o tamanho da imagem das miniaturas depende do vídeo (os números abaixo são baseados em um).
Existem sete miniaturas garantidas:
Além disso, as outras duas miniaturas podem ou não existir. A presença deles provavelmente se baseia na qualidade do vídeo.
Você pode encontrar scripts JavaScript e PHP para recuperar miniaturas e outras informações do YouTube em:
Você também pode usar a ferramenta Gerador de informações de vídeo do YouTube para obter todas as informações sobre um vídeo do YouTube enviando um URL ou ID de vídeo.
fonte
Na API V3 do YouTube, também podemos usar esses URLs para obter miniaturas ... Eles são classificados com base em sua qualidade.
E para a resolução máxima ..
Uma vantagem desses URLs sobre os URLs na primeira resposta é que esses URLs não são bloqueados por firewalls.
fonte
Se você deseja a maior imagem do YouTube para um ID de vídeo específico, o URL deve ser algo como isto:
Usando a API, você pode pegar a imagem em miniatura padrão. Código simples deve ser algo como isto:
fonte
Se você quiser se livrar das "barras pretas" e fazê-lo como o YouTube, você pode usar:
E se você não pode usar a
.webp
extensão do arquivo, pode fazê-lo assim:Além disso, se você precisar da versão sem escala, use em
maxresdefault
vez demqdefault
.Nota: não tenho certeza sobre a proporção, se você planeja usar
maxresdefault
.fonte
_webp
e alterar a extensão para.jpg
. Exemplo de trabalho: i.ytimg.com/vi/mJ8tq8AnNis/mqdefault.jpg , não tenho certeza sobre a proporção.Eu criei uma função para buscar apenas imagens existentes do YouTube
fonte
Na API de dados do YouTube v3 , você pode obter as miniaturas de vídeos com a função videos-> list . No snippet.thumbnails. (Chave) , você pode escolher a miniatura padrão, média ou alta resolução, e obter sua largura, altura e URL.
Você também pode atualizar as miniaturas com as miniaturas-> definir a funcionalidade.
Por exemplo, você pode conferir o projeto Amostras da API do YouTube . ( PHP ).
fonte
Você pode obter a entrada de vídeo que contém o URL para a miniatura do vídeo. Há um código de exemplo no link. Ou, se você deseja analisar o XML, há informações aqui . O XML retornado possui um
media:thumbnail
elemento que contém o URL da miniatura.fonte
fonte
O YouTube é de propriedade do Google e o Google gosta de ter um número razoável de imagens para diferentes tamanhos de tela, portanto, suas imagens são armazenadas em tamanhos diferentes. Aqui está um exemplo de como será sua miniatura:
Miniatura de baixa qualidade:
Miniatura de qualidade média:
Miniatura de alta qualidade:
Miniatura de qualidade máxima:
fonte
API 3 do YouTube, versão 3, em funcionamento em 2 minutos
Se tudo o que você deseja fazer é pesquisar no YouTube e obter propriedades associadas:
Obter uma API pública - Este link fornece uma boa direção
Use a string de consulta abaixo. A consulta de pesquisa (indicada por q = ) na cadeia de URL é stackoverflow para fins de exemplo. O YouTube enviará de volta uma resposta JSON, onde você poderá analisar Miniatura, Snippet, Autor, etc.
https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&maxResults=50&q=stackoverflow&key=YOUR_API_KEY_HERE
fonte
Outra boa alternativa seria usar o oEmbed API que é suportada pelo YouTube.
Você simplesmente adiciona seu URL do YouTube ao URL incorporado e receberá um JSON incluindo uma miniatura e o código HTML para incorporação.
Exemplo:
Daria a você:
Leia a documentação para obter mais informações .
fonte
Usar:
Acima está o link. Com isso, você pode encontrar as características dos vídeos do YouTube. Depois de encontrar as características, você pode obter vídeos da categoria selecionada. Depois disso, você poderá encontrar imagens de vídeo selecionadas usando a resposta do Asaph .
Experimente a abordagem acima e você pode analisar tudo da API do YouTube .
fonte
Eu usei as miniaturas do YouTube desta maneira:
Lembre-se de que o YouTube impede a inclusão de imagens diretamente do servidor.
fonte
Encontrei esta ferramenta bacana que permite criar a imagem com o botão de reprodução do YouTube colocado sobre a imagem:
fonte
Apenas para adicionar / expandir as soluções fornecidas, sinto que é necessário observar que, como eu também tive esse problema, é possível capturar vários conteúdos de vídeos do YouTube, neste caso, miniaturas, com uma solicitação HTTP:
Usando um Rest Client, neste caso, HTTPFUL, você pode fazer algo assim:
fonte
API de dados do YouTube
O YouTube fornece as quatro imagens geradas para cada vídeo por meio da API de dados (v3), por exemplo,
https://i.ytimg.com/vi/V_zwalcR8DU/maxresdefault.jpg
https://i.ytimg.com/vi/V_zwalcR8DU/sddefault.jpg
https://i.ytimg.com/vi/V_zwalcR8DU/hqdefault.jpg
https://i.ytimg.com/vi/V_zwalcR8DU/mqdefault.jpg
Obtendo acesso às imagens por meio da API
De acordo com isso, você precisa colocar seu URL da seguinte maneira:
Agora altere seu ID de vídeo e sua chave de API para o respectivo ID de vídeo e chave de API e sua resposta será uma saída JSON, fornecendo os quatro links nas miniaturas da variável de snippet (se todos estiverem disponíveis).
fonte
Você pode obter o ID do vídeo a partir do URL do vídeo do YouTube usando parse_url , parse_str e depois inserir os URLs preditivos das imagens. Graças ao YouTube pelos URLs preditivos
Você pode usar esta ferramenta para gerar miniaturas do YouTube
https://tools.tutsplanet.com/index.php/get-youtube-video-thumbnails
fonte
Uma função PHP simples que criei para a miniatura do YouTube e os tipos são
fonte
Se você estiver usando a API pública, a melhor maneira de fazer isso é usando
if
instruções.Se o vídeo for público ou não listado, defina a miniatura usando o método URL. Se o vídeo for privado, você usará a API para obter a miniatura.
fonte
Acho que são muitas as respostas para miniaturas, mas quero adicionar outros URLs para obter as miniaturas do YouTube com muita facilidade. Estou apenas pegando um texto da resposta de Asaph. Aqui estão alguns URLs para obter miniaturas do YouTube:
Para a versão de alta qualidade da miniatura, use um URL semelhante a este:
Há também uma versão de miniatura de qualidade média, usando um URL semelhante à alta qualidade:
Para a versão de definição padrão da miniatura, use um URL semelhante a este:
Para a versão de resolução máxima da miniatura, use um URL semelhante a este:
fonte
fonte
Aqui está a melhor resposta otimizada para uso manual. O token de ID do vídeo sem separadores permite a seleção com um clique duplo.
Cada vídeo do YouTube tem quatro imagens geradas. Eles estão previsivelmente formatados da seguinte maneira:
O primeiro da lista é uma imagem em tamanho real e outras são miniaturas. (. Ie um dos imagem em miniatura padrão
1.jpg
,2.jpg
,3.jpg
) é:Para a versão de alta qualidade da miniatura, use um URL semelhante a este:
Há também uma versão de miniatura de qualidade média, usando um URL semelhante ao HQ:
Para a versão de definição padrão da miniatura, use um URL semelhante a este:
Para a versão de resolução máxima da miniatura, use um URL semelhante a este:
Todos os URLs acima também estão disponíveis via HTTP. Além disso, o nome do host um pouco menor
i3.ytimg.com
funciona no lugar dosimg.youtube.com
URLs de exemplo acima.Como alternativa, você pode usar a API de dados do YouTube (v3) para obter imagens em miniatura.
fonte
Método 1:
Você pode encontrar todas as informações de um vídeo do YouTube com uma página JSON que possui até "thumbnail_url", http://www.youtube.com/oembed?format=json&url= {o URL do seu vídeo está aqui}
Como aparência final do URL + código de teste PHP
Resultado
Para obter detalhes, você também pode ver Como obter uma miniatura de vídeo do YouTube usando id ou https://www.youtube.com/watch?v=mXde7q59BI8 tutorial em vídeo 1
Método 2:
Usando o link da imagem do YouTube, https://img.youtube.com/vi/ "insert-youtube-video-id-here" /default.jpg
Método 3:
Usando o código-fonte do navegador para obter miniaturas usando o link do URL do vídeo - vá para o código-fonte do vídeo e pesquise miniaturl. Agora você pode usar este URL no seu código-fonte:
Para obter detalhes, você também pode ver Como obter uma miniatura de vídeo do YouTube usando id ou https://www.youtube.com/watch?v=9f6E8MeM6PI tutorial em vídeo 2
fonte
https://www.youtube.com/watch?v=mXde7q59BI8
ehttps://www.youtube.com/watch?v=9f6E8MeM6PI
estão (efetivamente) quebrados.Usar
img.youtube.com/vi/YouTubeID/ImageFormat.jpg
Aqui, os formatos de imagem são diferentes, como padrão, hqdefault, maxresdefault.
fonte
Esta é a minha solução necessária sem chave de API do lado do cliente.
O código:
Utilitário
image.js
:Utilitário
url.js
:fonte
Aqui está uma função simples que eu criei para obter as miniaturas. É fácil de entender e usar.
$ link é o link do YouTube copiado exatamente como no navegador, por exemplo, https://www.youtube.com/watch?v=BQ0mxQXmLsk
fonte
&t=227s
?Salve esse código no arquivo .php vazio e teste-o.
Obrigado.
fonte
fonte