Forzar video de youtube HTML5

119

Con respecto al Blog de API de Youtube , están experimentando con su nuevo reproductor de video HTML5 .

Aparentemente, para reproducir un video en html5, debe usar el código de incrustación iframe:

<iframe class="youtube-player" type="text/html" width="640" height="385"
  src="http://www.youtube.com/embed/VIDEO_ID" frameborder="0">
</iframe>

Pero si el cliente no se ha unido a la prueba HTML5 , el reproductor volverá automáticamente al reproductor flash incluso si el navegador del cliente es compatible con video HTML5.

¿Cómo forzar la reproducción de video HTML5 si el navegador lo admite, incluso si los usuarios aún no están involucrados en la prueba HTML5?

De lo contrario, ¿cómo deshabilitar el respaldo de flash?

EDITAR:

Es posible forzar el reproductor HTML a través de enlaces a videos de Youtube , pero necesito este tipo de función para videos incrustados.

Kami
fuente
¿Qué pasaría si detectaras la capacidad HTML5 con js e implementaras el código de la API de YouTube en consecuencia? O debería decir, si HTML5 Video no es compatible, no implemente la API de YouTube, ya que recurriría a Flash.
David Hobs

Respuestas:

179

He encontrado la solución:

Tienes que agregar el html5=1atributo src del iframe:

<iframe src="http://www.youtube.com/embed/dP15zlyra3c?html5=1"></iframe>

El video se mostrará como HTML5 si está disponible, o como respaldo en Flash Player.

Kami
fuente
1
hmm, ahora no funciona (los mismos videos), extraño. Me pregunto si solo funciona en ciertos servidores de YouTube.
UpTheCreek
1
No funciona cuando se agrega &html5=1al final de un video no insertado: /
Moshe Revah
1
Agregar &html5=1(o &html5=truealgo por el estilo) al final de un hipervínculo (no un video incrustado en iframe) no parece funcionar en IE sin Flash.
Ryan
1
Los videos de YouTube con anuncios usarán automáticamente el reproductor Flash
turnt
8
Creo que todos los informes están sesgados. Nadie dijo si está en "html5 beta de youtube" y este es probablemente un factor clave. Cuando salgo de la beta de html5, parece que? Html5 = 1 no hace nada. Todos los videos van con flash.
Paul Brewczynski
20

La reproducción o no de los videos de YouTube en formato HTML5 depende de la configuración en https://www.youtube.com/html5 , por navegador. Chrome prefiere la reproducción de HTML5 automáticamente, pero incluso los últimos Firefox e Internet Explorer siguen usando Flash si está instalado en la máquina.

El parámetro html5 = 1 ya no hace nada (ya). (Tenga en cuenta que ni siquiera aparece en https://developers.google.com/youtube/player_parameters ).

Vacilando
fuente
Recién comprobado, he elegido el reproductor HTML5 en youtube.com/html5 , pero si & html5 = 1 no se especifica como parámetro para el reproductor de inserción, se carga flash, cuando especifico que se carga el reproductor HTML5 param. Sistema operativo: Linux, Firefox 33 de 64 bits.
Zar
Acabo de probar html5=1en Firefox 33.0.2 y funciona bien (y no requiere que los usuarios habiliten la configuración HTML5 en YouTube). Sin él, YouTube envía la versión Flash por defecto.
Simon East
El parámetro aún funciona, pero habilitarlo en la página html5 hace que youtube sea predeterminado en html5, que es mejor.
Alanh
4

Intenté usar el código de inserción de iframe y apareció el reproductor HTML5, sin embargo, por alguna razón, el iframe estaba rompiendo completamente mi sitio.

Jugué con el código de incrustación del objeto antiguo y funciona perfectamente bien. Entonces, si tiene problemas con el iframe, aquí está el código que usé:

<object width="640" height="360">
<param name="movie" value="http://www.youtube.com/embed/VIDEO_ID?html5=1&amp;rel=0&amp;hl=en_US&amp;version=3"/>
<param name="allowFullScreen" value="true"/>
<param name="allowscriptaccess" value="always"/>
<embed width="640" height="360" src="http://www.youtube.com/embed/VIDEO_ID?html5=1&amp;rel=0&amp;hl=en_US&amp;version=3" class="youtube-player" type="text/html" allowscriptaccess="always" allowfullscreen="true"/>
</object>

espero que esto sea útil para alguien

alejandro
fuente
YouTube <object>está obsoleto a finales de enero. Úselo en su <iframe>lugar.
Samuel Elh
<object>todavía funciona, de hecho, el iframe solo lo contiene.
RozzA
2

Si está utilizando la API de incrustación de iframe, puede poner html5:1como uno de los playerVarsargumentos, así:

player = new YT.Player('player', {
    height: '390',
    width: '640',
    videoId: '<VIDEO ID>',
    playerVars: {
        html5: 1
    },
});

Funciona totalmente.

Sansón
fuente
0

La etiqueta en línea se usa para agregar otro src de documento al elemento html actual.

En su caso un video de un youtube y necesitamos especificar el tipo html (4 o 5) al navegador externamente al enlace

así que agregue? html = 5 al final del enlace .. :)

ashwinrishipj
fuente