Si tengo una URL de video de YouTube, ¿hay alguna forma de usar PHP y cURL para obtener la miniatura asociada de la API de YouTube?
2400
Si tengo una URL de video de YouTube, ¿hay alguna forma de usar PHP y cURL para obtener la miniatura asociada de la API de YouTube?
Respuestas:
Cada video de YouTube tiene cuatro imágenes generadas. Están predeciblemente formateados de la siguiente manera:
La primera en la lista es una imagen a tamaño completo y otras son imágenes en miniatura. La imagen miniatura predeterminada (es decir, uno de
1.jpg
,2.jpg
,3.jpg
) es:Para la versión de alta calidad de la miniatura, use una URL similar a esta:
También hay una versión de calidad miniatura de la miniatura, usando una URL similar a la HQ:
Para la versión de definición estándar de la miniatura, use una URL similar a esta:
Para la versión de resolución máxima de la miniatura, use una URL similar a esta:
Todas las URL anteriores también están disponibles a través de HTTP. Además, el nombre de host ligeramente más corto
i3.ytimg.com
funciona en lugar deimg.youtube.com
en las URL de ejemplo anteriores.Alternativamente, puede usar la API de datos de YouTube (v3) para obtener imágenes en miniatura.
fuente
http://www.img.youtube.com
solohttp://img.youtube.com
mqdefault
es 16: 9sddefault
ymaxresdefault
NO ESTÁN SIEMPRE DISPONIBLES, algunos videos los tienen ...Puede usar la API de datos de YouTube para recuperar miniaturas de video, subtítulos, descripción, calificación, estadísticas y más. La versión 3 de la API requiere una clave *. Obtenga la clave y cree una solicitud de videos: lista :
Ejemplo de código PHP
Salida
* No solo que necesita una clave, es posible que se le solicite información de facturación según la cantidad de solicitudes de API que planea hacer. Sin embargo, pocos millones de solicitudes por día son gratuitas.
Artículo original .
fuente
jsonc
en lugar dejson
para getJSON. Está fallando debido a su estructura JSON incorrecta.jsonc
. Los ejemplos de jQuery y PHP DEBEN usarsejson
. Y he actualizado el código para que se ajuste a la nueva estructura JSON. Estoy usando el código en este momento y funciona EN VIVO. así que no digas que no funciona sin leer los cambios. ¡Gracias!v=2
) se encarga de los cambios de API.Lo que Asaph dijo es correcto. Sin embargo, no todos los videos de YouTube contienen las nueve miniaturas. Además, el tamaño de las imágenes en miniatura depende del video (los números a continuación se basan en uno).
Hay siete miniaturas garantizadas para existir:
Además, las otras dos miniaturas pueden o no existir. Su presencia probablemente se base en si el video es de alta calidad.
Puede encontrar scripts JavaScript y PHP para recuperar miniaturas y otra información de YouTube en:
También puede usar la herramienta Generador de información de video de YouTube para obtener toda la información sobre un video de YouTube al enviar una URL o una identificación de video.
fuente
En YouTube API V3 también podemos usar estas URL para obtener miniaturas ... Se clasifican según su calidad.
Y para la máxima resolución ...
Una ventaja de estas URL sobre las URL en la primera respuesta es que estas no son bloqueadas por firewalls.
fuente
Si desea la imagen más grande de YouTube para una ID de video específica, la URL debería ser algo como esto:
Con la API, puede elegir una imagen en miniatura predeterminada. El código simple debería ser algo como esto:
fuente
Si desea deshacerse de las "barras negras" y hacerlo como lo hace YouTube, puede usar:
Y si no puede usar la
.webp
extensión de archivo, puede hacerlo así:Además, si necesita la versión sin escala, use en
maxresdefault
lugar demqdefault
.Nota: No estoy seguro acerca de la relación de aspecto si planea usarla
maxresdefault
.fuente
_webp
y cambia la extensión a.jpg
. Ejemplo de trabajo: i.ytimg.com/vi/mJ8tq8AnNis/mqdefault.jpg , no estoy seguro acerca de la relación de aspecto.Hice una función para recuperar solo las imágenes existentes de YouTube
fuente
En YouTube Data API v3 , puede obtener miniaturas de video con la función videos-> list . Desde snippet.thumbnails. (Clave) , puede elegir la miniatura predeterminada, de resolución media o alta, y obtener su ancho, alto y URL.
También puede actualizar las miniaturas con las miniaturas-> establecer funcionalidad.
Para ver ejemplos, puede consultar el proyecto de ejemplos de API de YouTube . ( PHP ).
fuente
Puede obtener la entrada de video que contiene la URL a la miniatura del video. Hay un código de ejemplo en el enlace. O, si desea analizar XML, hay información aquí . El XML devuelto tiene un
media:thumbnail
elemento que contiene la URL de la miniatura.fuente
fuente
YouTube es propiedad de Google y a Google le gusta tener un número razonable de imágenes para diferentes tamaños de pantalla, por lo tanto, sus imágenes se almacenan en diferentes tamaños. Aquí hay un ejemplo de cómo será tu miniatura:
Miniatura de baja calidad:
Miniatura de calidad media:
Miniatura de alta calidad:
Miniatura de máxima calidad:
fuente
YouTube API versión 3 en funcionamiento en 2 minutos
Si todo lo que quieres hacer es buscar en YouTube y obtener propiedades asociadas:
Obtener una API pública : este enlace proporciona una buena dirección
Use la siguiente cadena de consulta. La consulta de búsqueda (indicada por q = ) en la cadena URL es stackoverflow para fines de ejemplo. YouTube luego le enviará una respuesta JSON donde podrá analizar Miniaturas, Fragmentos, Autor, etc.
https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&maxResults=50&q=stackoverflow&key=YOUR_API_KEY_HERE
fuente
Otra buena alternativa sería usar el oEmbed API que es compatible con YouTube.
Simplemente agregue su URL de YouTube a la URL de oEmbed y recibirá un JSON que incluye una miniatura y el código HTML para incrustar.
Ejemplo:
Te daría:
Lea la documentación para más información .
fuente
Utilizar:
Arriba está el enlace. Con eso, puedes encontrar las características de YouTube de los videos. Después de encontrar características, puede obtener videos de la categoría seleccionada. Después de eso, puede encontrar imágenes de video seleccionadas usando la respuesta de Asaph .
Pruebe el enfoque anterior y puede analizar todo desde la API de YouTube .
fuente
He usado las miniaturas de YouTube de esta manera:
Recuerde que YouTube evita incluir imágenes directamente desde su servidor.
fuente
Encontré esta ingeniosa herramienta que te permite crear la imagen con el botón de reproducción de YouTube colocado sobre la imagen:
fuente
Solo para agregar / expandir las soluciones dadas, creo que es necesario tener en cuenta que, como tuve este problema yo mismo, uno puede tomar múltiples contenidos de videos de YouTube, en este caso, miniaturas, con una solicitud HTTP:
Usando un Rest Client, en este caso, HTTPFUL, puede hacer algo como esto:
fuente
API de datos de YouTube
YouTube nos proporciona las cuatro imágenes generadas para cada video a través de la API de datos (v3), por ejemplo,
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
Obtener acceso a las imágenes a través de la API
Según esto, debe expresar su URL de esta manera:
Ahora cambie su ID de video y su clave API a su ID de video y clave de API respectivas y su respuesta será una salida JSON que le proporcionará los cuatro enlaces en las miniaturas de la variable de fragmento (si están disponibles).
fuente
Puede obtener la ID de video de la url de video de YouTube usando parse_url , parse_str y luego insertarlo en las urls predictivas para imágenes. Gracias a YouTube por las URL predictivas
Puedes usar esta herramienta para generar miniaturas de YouTube
https://tools.tutsplanet.com/index.php/get-youtube-video-thumbnails
fuente
Una función PHP simple que creé para la miniatura de YouTube y los tipos son
fuente
Si está utilizando la API pública, la mejor manera de hacerlo es usar
if
declaraciones.Si el video es público o no aparece en la lista, configura la miniatura usando el método URL. Si el video es privado, usa la API para obtener la miniatura.
fuente
Creo que son muchas respuestas para las miniaturas, pero quiero agregar algunas otras URL para obtener miniaturas de YouTube muy fácilmente. Solo estoy tomando un texto de la respuesta de Asaph. Aquí hay algunas URL para obtener miniaturas de YouTube:
Para la versión de alta calidad de la miniatura, use una URL similar a esta:
También hay una versión de calidad miniatura de la miniatura, usando una URL similar a la de alta calidad:
Para la versión de definición estándar de la miniatura, use una URL similar a esta:
Para la versión de resolución máxima de la miniatura, use una URL similar a esta:
fuente
fuente
Aquí está la respuesta superior optimizada para uso manual. El token de ID de video sin separadores permite seleccionar con un doble clic.
Cada video de YouTube tiene cuatro imágenes generadas. Están predeciblemente formateados de la siguiente manera:
La primera en la lista es una imagen a tamaño completo y otras son imágenes en miniatura. (. Es decir, uno de la imagen miniatura predeterminada
1.jpg
,2.jpg
,3.jpg
) es:Para la versión de alta calidad de la miniatura, use una URL similar a esta:
También hay una versión de calidad miniatura de la miniatura, usando una URL similar a la HQ:
Para la versión de definición estándar de la miniatura, use una URL similar a esta:
Para la versión de resolución máxima de la miniatura, use una URL similar a esta:
Todas las URL anteriores también están disponibles a través de HTTP. Además, el nombre de host ligeramente más corto
i3.ytimg.com
funciona en lugar deimg.youtube.com
en las URL de ejemplo anteriores.Alternativamente, puede usar la API de datos de YouTube (v3) para obtener imágenes en miniatura.
fuente
Método 1:
Puede encontrar toda la información para un video de YouTube con una página JSON que incluso tiene "thumbnail_url", http://www.youtube.com/oembed?format=json&url= {la URL de su video va aquí}
Me gusta URL final look + código de prueba PHP
Salida
Para obtener más información, también puede ver Cómo obtener una miniatura de video de YouTube con id o https://www.youtube.com/watch?v=mXde7q59BI8 video tutorial 1
Método 2:
Usando el enlace de imagen de YouTube, https://img.youtube.com/vi/ "insert-youtube-video-id-here" /default.jpg
Método 3:
Usando el código fuente del navegador para obtener una miniatura usando el enlace URL del video - vaya al código fuente del video y busque thumbnailurl. Ahora puede usar esta URL en su código fuente:
Para obtener más información, también puede ver Cómo obtener una miniatura de video de YouTube con id o https://www.youtube.com/watch?v=9f6E8MeM6PI video tutorial 2
fuente
https://www.youtube.com/watch?v=mXde7q59BI8
yhttps://www.youtube.com/watch?v=9f6E8MeM6PI
están (efectivamente) rotos.Utilizar
img.youtube.com/vi/YouTubeID/ImageFormat.jpg
Aquí los formatos de imagen son diferentes como default, hqdefault, maxresdefault.
fuente
Esta es mi solución que no requiere clave de API solo del lado del cliente.
El código:
Utilidad
image.js
:Utilidad
url.js
:fuente
Aquí hay una función simple que creé para obtener las miniaturas. Es fácil de entender y usar.
$ link es el enlace de YouTube copiado exactamente como está en el navegador, por ejemplo, https://www.youtube.com/watch?v=BQ0mxQXmLsk
fuente
&t=227s
?Guarde este código en un archivo .php vacío y pruébelo.
Gracias.
fuente
fuente