Saltar al contenido

¿Cómo puedo recuperar los detalles de un video de YouTube desde la URL del video usando PHP?

Solución:

Puede obtener datos de la interfaz oembed de youtube en dos formatos: XML y JSON

Dirección de interfaz: http://www.youtube.com/oembed?url=youtubeurl&format=json

Utilice esta función de PHP para obtener datos

 function get_youtube($url){

 $youtube = "http://www.youtube.com/oembed?url=". $url ."&format=json";

 $curl = curl_init($youtube);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 $return = curl_exec($curl);
 curl_close($curl);
 return json_decode($return, true);

 }

$url = // youtube video url 

// Display Data 
print_r(get_youtube($url));

No olvide habilitar extension=php_curl.dll en tus php.ini

Esto devuelve metadatos sobre un video:

http://www.youtube.com/oembed?url={videoUrlHere}&format=json

Usando su ejemplo, una llamada a:

http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v=B4CRkpBGQzU&format=json

Devuelve lo siguiente, que puede digerir y analizar con PHP:

{
    "provider_url": "http://www.youtube.com/",
    "thumbnail_url": "http://i3.ytimg.com/vi/B4CRkpBGQzU/hqdefault.jpg",
    "title": "Joan Osborne - One Of Us",
    "html": "u003ciframe width="459" height="344" src="http://www.youtube.com/embed/B4CRkpBGQzU?fs=1u0026feature=oembed" frameborder="0" allowfullscreenu003eu003c/iframeu003e",
    "author_name": "jzsdhk",
    "height": 344,
    "thumbnail_width": 480,
    "width": 459,
    "version": "1.0",
    "author_url": "http://www.youtube.com/user/jzsdhk",
    "provider_name": "YouTube",
    "type": "video",
    "thumbnail_height": 360
}

Otra API de URL que puede ser útil es: https://www.youtube.com/get_video_info?video_id=B4CRkpBGQzU

video_id es el argumento “v” de YouTube. El resultado es un diccionario en formato codificado en URL (clave1 = valor1 y clave2 = valor2 y …)

Esta es una API no documentada que existe desde hace mucho tiempo, por lo que explorarla depende del desarrollador. Soy consciente del “estado” (correcto / incorrecto), “código de error” (100 y 150 en mi práctica), “motivo” (descripción de cadena del error). Obtengo la duración (“length_seconds”) de esta manera porque oEmbed no proporciona esta información (extraño, pero cierto) y no puedo motivar a todos los empleadores para que obtengan claves de YouTube para usar la API oficial.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *