57 votos

Cómo insertar videos de YouTube en PHP?

Puede alguien darme una idea de cómo podemos mostrar o incrustar un vídeo de YouTube, si sólo tenemos la URL o el código Embed?

86voto

Alec Smart Puntos 14075

Usted tiene que pedir a los usuarios almacenar el 11 código de caracteres en el video de youtube.

Por ejemplo, http://www.youtube.com/watch?v=Ahg6qcgoay4

El once de código de caracteres es : Ahg6qcgoay4

A continuación, tomar este código y colocarlo en su base de datos. A continuación, dondequiera que usted quiere poner el vídeo de youtube en su página, cargar el carácter de la base de datos y poner el siguiente código:

por ejemplo, para Ahg6qcgoay4 será :

<object width="425" height="350" data="http://www.youtube.com/v/Ahg6qcgoay4" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/Ahg6qcgoay4" /></object>

51voto

Salman A Puntos 60620

No guarde el código de inserción en la base de datos -- YouTube puede cambiar el código de inserción y los parámetros de la URL de vez en cuando. Por ejemplo, el <object> código de inserción ha sido retirado en favor de la <iframe> el código de inserción. Usted debe analizar el id de vídeo de la dirección URL o el código de inserción (usando expresiones regulares, el análisis de la URL funciones o analizador de HTML) y guárdelo. A continuación, la muestra mediante cualquier mecanismo que ofrece la API de YouTube.

Yo sugiero que busque en estos artículos de averiguar qué hacer con estos identificadores:

Un ingenuo PHP ejemplo para extraer el id del vídeo es el siguiente:

<?php
    preg_match(
        '/[\\?\\&]v=([^\\?\\&]+)/',
        'http://www.youtube.com/watch?v=OzHvVoUGTOM&feature=channel',
        $matches
    );
    // $matches[1] should contain the youtube id
?>

Para crear su propio reproductor de video de YouTube:

16voto

fanky Puntos 91

De largo y corto plazo de youtube url que usted puede conseguir la inserción de esta manera:

$ytarray=explode("/", $videolink);
$ytendstring=end($ytarray);
$ytendarray=explode("?v=", $ytendstring);
$ytendstring=end($ytendarray);
$ytendarray=explode("&", $ytendstring);
$ytcode=$ytendarray[0];
echo "<iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/$ytcode\" frameborder=\"0\" allowfullscreen></iframe>";

Espero que ayude a alguien

7voto

hasenj Puntos 36139

El uso de una expresión regular para extraer el vídeo de la "id" después de la watch?v=

Almacenar el id de vídeo en una variable, vamos a llamar a esta variable vid

Obtener el código de inserción de un azar de vídeo, quitar el id de vídeo desde el código de inserción y reemplazarlo con el vid lo que tienes.

No sé cómo lidiar con expresiones regulares en php, pero no debería ser demasiado difícil

Aquí el ejemplo de código en python:

>>> ytlink = 'http://www.youtube.com/watch?v=7-dXUEbBz70'
>>> import re
>>> vid = re.findall( r'v\=([\-\w]+)', ytlink )[0]
>>> vid
'7-dXUEbBz70'
>>> print '''<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/%s&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/%s&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>''' % (vid,vid)
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
>>>

La expresión regular v\=([\-\w]+) captura de un (sub)cadena de caracteres y guiones que viene después de la v=

3voto

CMS Puntos 315406

Si quieres subir videos a través de programación, verificación de la API de Datos de YouTube para PHP

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X