Publicar Videos de Youtube en Flash

Compartir vídeos de Youtube es una tarea común y sencilla en HTML con el código que ofrece Youtube el cual se coloca en el código html. Veamos como publicar vídeos de Youtube en páginas hechas en Flash, para ello utilizaremos el API YouTube ActionScript 2.0 Player API Reference el cual brinda métodos para embeber los vídeos en Flash.

Cargando Flash

Cargando Videos de Youtube
Para cargar un vídeo de Youtube se debe cargar como si fuera un MovieClip normal, para ello se puede utilizar los métodos de la clase MovieClipLoader. Para la ruta de los vídeos se puede utilizar el URL: http://www.youtube.com/v/ID Donde ID es el identificador del vídeo que se desea visualizar. Entonces si tenemos un MovieClip llamado clip donde deseamos mostrar el vídeo tendríamos el siguiente código:

  1. var tload:MovieClipLoader = new MovieClipLoader();
  2. tload.loadClip("http://www.youtube.com/v/Jmhpy8c8hbw", clip);

El vídeo se carga correctamente pero con dimensiones de 480 x 385 pixels. Si deseamos cargar los vídeos con un tamaño especifico sin deformar el vídeo es necesario crear un detector de eventos para ejecutarlo cuando el player del video se ha cargado completamente.

  1. var tinte:Number;
  2. var tlist:Object = new Object();
  3. tlist.onLoadInit = function() {
  4.     tinte = setInterval(checkVideo, 250);
  5. }
  6. var tload:MovieClipLoader = new MovieClipLoader();
  7. tload.addListener(tlist);
  8. tload.loadClip("http://www.youtube.com/v/Jmhpy8c8hbw", clip);

Una vez que se ha cargado player de Youtube, utilizamos la función checkVideo que se encarga de verificar que el player, una ver cargado el player asignamos las dimensiones con el método setSize. Notar que al inicio hemos ocultado el player asignándole transparencia 0, al final después de haber redimensionado el player volvemos a mostrar el video cambiando la transparencia a 100.

  1. clip._alpha = 0;
  2.  
  3. var tinte:Number;
  4. var tlist:Object = new Object();
  5. tlist.onLoadInit = function() {
  6.     tinte = setInterval(checkVideo, 250);
  7. }
  8. var tload:MovieClipLoader = new MovieClipLoader();
  9. tload.addListener(tlist);
  10. tload.loadClip("http://www.youtube.com/v/Jmhpy8c8hbw", clip);
  11.  
  12. function checkVideo() {
  13.     if (clip.isPlayerLoaded()) {
  14.         clip.setSize(348, 278);
  15.         clip._alpha = 100;
  16.         clearInterval(tinte);
  17.     }
  18. }

Listo, tenemos nuestro vídeo cargado y con las dimensiones deseadas en Flash. Les dejo los archivos fuentes para que lo descarguen y hagan sus pruebas.

Comentarios Total 50 comentarios



[…] Excerpt from:  Publicar Videos de Youtube en Flash | unijimpe […]

Savio
Publicado: 04/12/2009 11:33 am

Se podra cargar un video de Youtube a una web con un player personalizdo en Flash? … ejemplo… llamo los videos desde un xml hosteados en mi web, pero me gustaria q fuesen los q tengo en youtube…
http://mdsavio.com/video.html … a ver si se puede hacer… Gracias!!!

CRISTIAN
Publicado: 05/12/2009 12:38 pm

hola soy cristian y tengo un video de dragon ball af

Lex
Publicado: 24/12/2009 1:40 am

Hola, este es uno delos blog que acostumbro visitar -aun cuando no este actualizado-

Quería saludar a traves de esta postal que hice en Flash: http://vimeo.com/8355453

espero sea del agrado, saludos y Feliz Navidad

jim
Publicado: 28/12/2009 1:14 am

ya acualizale men!

david
Publicado: 31/12/2009 11:35 am

me funciono muy bien pero cuando voy a otra seccion del la pagina, o sea abro otro swf sigue funcionando en audion y se me cuelga todo, probe con un stopallsound () pero no funciona, hay alguna posiblilidad de eliminarlo de alguna forma,alguien podo hacerlo?

tomii
Publicado: 07/01/2010 4:30 am

utilice el codigo funciona bien en local, pero quiero poner videos en mi web directamente y me sale el video perfecto pero como a los 25 segundos o menos se baja el volumen y luego despues de unos 15 segundos aproximados vuelve a reproducir el sonido….a alguien le ha hecho pruebass…

les agradeceria si tuvieran respuesta

Carlos
Publicado: 20/01/2010 1:07 pm

Buenas, estoy intentando poner un menu de videos para cuando pinche sobre cualquiera de ellos salga reproduciendose, el problema es que cuando se carga el nuevo se sigue escuchando el antiguo y el tiempo del video coje el del antiguo, lo que hecho es eliminar tanto el clip cargado como el evento que se invoca pero nada, haber si me podrias echar una manilla. Gracias

Aqui puedes ver lo que te comento.

http://www.siprocor.com/web/youtube/youtube.html

Alejandro
Publicado: 24/01/2010 2:20 pm

Buenas tardes, saludos a todos
ya pude insertar el video de you tube en flash con AS2
gracias por el aporte.
Pero estoy desarrollando una pagina que esta en AS3… ¿Cual seria el codigo
para poder insertar el video de youtube.?

les agradesco su ayuda
muchas gracias

Alejandro

jorge e navarrete
Publicado: 17/02/2010 5:09 am

como seria esto en AS3, oye y exixte algo parecido al toobplayer pero para AS·


*** Violación de la seguridad Sandbox ***
El dominio de seguridad ‘http://s.ytimg.com/yt/swf/cps-vfl146282.swf’ ha intentado acceder al contexto incompatible ‘http://www.youtube.com/v/a39COPbYjB0’
*** Violación de la seguridad Sandbox ***
El dominio de seguridad ‘http://s.ytimg.com/yt/swf/cps-vfl146282.swf’ ha intentado acceder al contexto incompatible ‘file:///E|/Documents%20and%20Settings/Administrador/Escritorio/ANGEL%20DISEÑO%202010/YOSOYTUANGEL%20WEB/yosoytuangel%20web6.swf’
*** Violación de la seguridad Sandbox ***
El dominio de seguridad ‘http://www.youtube.com/v/a39COPbYjB0’ ha intentado acceder al contexto incompatible ‘file:///E|/Documents%20and%20Settings/Administrador/Escritorio/ANGEL%20DISEÑO%202010/YOSOYTUANGEL%20WEB/yosoytuangel%20web6.swf’
Error al abrir la URL ‘http://www.youtube.com/get_video?video_id=a39COPbYjB0&t=vjVQa1PpcFPJIyRwbUbRYKP36gynrU2xKdQP1EDcf-w=&eurl=file%3A%2F%2F%2FE%7C%2FDocuments%2520and%2520Settings%2FAdministrador%2FEscritorio%2FANGEL%2520DISE%C3%91O%25202010%2FYOSOYTUANGEL%2520WEB%2Fyosoytuangel%2520web6%2Eswf&el=embedded&ps=default&fmt=5&asv=2&noflv=1’
Error al abrir la URL ‘http://video-stats.video.google.com/s?ns=yt&docid=a39COPbYjB0&el=embedded&ps=default&vid=qBZdAQ5Hhg6APRG4X4andj5SF6KDZoP7C&eurl=file%3A%2F%2F%2FE%7C%2FDocuments%2520and%2520Settings%2FAdministrador%2FEscritorio%2FANGEL%2520DISE%C3%91O%25202010%2FYOSOYTUANGEL%2520WEB%2Fyosoytuangel%2520web6%2Eswf&hl=en_US&cr=US&hbd=4222038&hbt=16.079&rt=0.695&plid=AAR_zZddyPId__9z&fmt=5&md=1&sd=B4A7D0243HH&vw=320&vh=240&w=348&h=253&bc=52164&len=216.984&st=0.033&et=0.033&fv=WIN%209%2C0%2C45%2C0’
*** Violación de la seguridad Sandbox ***
Se ha detenido la conexión con file:///E|/Documents%20and%20Settings/Administrador/Escritorio/ANGEL%20DISEÑO%202010/YOSOYTUANGEL%20WEB/ – no se permite desde http://i2.ytimg.com/vi/a39COPbYjB0/hqdefault.jpg
— Los SWF remotos no pueden acceder a archivos locales.

pablo
Publicado: 17/02/2010 9:53 pm

se puede insertar un video de VIMEO EN FLASH O UN SWF????????????????
NECESITO SABER ESO YA QUE MI WEB ESTA HECHA COMPLETAMENTE EN FLASH, Y QUIERO COLOCAR UN VIDEO DE VIMEO.. PERO NO SE COMO…

AYUDENME!!!!!!!!!!!!

Marcelo
Publicado: 23/04/2010 10:15 am

Ante todo te agradezco de corazón por publicar este tutorial, es realmente genial lo que has logrado.

Me funciona a la perfección, lo cargo en un nivel mediante loadMovie y se ve perfecto, pero lamentablemente al descargarlo utilizando unloadMovie el sonido continúa reproduciéndose sin poder pararlo, la única solución que encontré es reiniciar la web pero claro, no es realmente una “solución”.

Agradecería tu ayuda. Abrazo!!!

Alberto Melón
Publicado: 11/06/2010 6:23 am

Pon en el botón correspondiente un ‘stop.all.sounds’ y listo

alan
Publicado: 22/06/2010 1:12 am

que buen script, me funciono muy rápido y me saco de dudas, muy bien armando y eficiente, felicidades es en absoluto lo que buscaba

sunix
Publicado: 22/06/2010 5:41 pm

Hola, muy buen ejemplo, es el unico que me a funcionado… e podido editarlo y hacer muchas mas cosas… ya logre solucionar el problema de que cuando cargo otro video no continue el anterior… pero aun asi tengo otro problema…

Cuando navego hacia otro menu de mi web no puedo detener la reproduccion del video.. ya que las funciones stopallsound() y las otras funciones para detener y eliminar el video no funcionan cuando las ejecuto desde otro flash dentro de mi web… ejecutandolas con _root tampoco funciona xD..

Alguien sabe algo?

gracias

angel
Publicado: 27/07/2010 5:43 am

Yo estoy en la misma situacion. No consigo hacer que detras del video haya otro video reproduciendose. La unica posibilidad es recargar la pagina, pero no es muy funcional si tienes varios videos que tienen que ir cargando a modo de galeria.

Alguien ha podido solucionar el problema?

deibitrc
Publicado: 13/08/2010 5:22 am

tengo el mismo problema que los últimos que han posteado :(. No se como cerrar el video youtube a través de algun botón para reproducir otro video youtube sin que se oiga el primero.

unijimpe
Publicado: 15/08/2010 2:10 pm

Para los que han tenido problemas al insertar el player y les devuelve el mensaje:

*** Violación de la seguridad Sandbox ***
El dominio de seguridad 'http://s.ytimg.com/yt/swf/cps-vfl146282.swf' ha intentado acceder al contexto incompatible 'http://www.youtube.com/v/a39COPbYjB0'

Esto sucede por que el player no puede acceder a archivos remotos sobre los que no se tenga permisos. Para resolver esto puede agregar el permiso para acceder al dominio youtube.com así como al dominio donde se encuentran las imágenes de los vídeos ytimg.com

System.security.allowDomain("youtube.com");
System.security.allowDomain("ytimg.com");

Tambien pueden permitir el acceso a cualquier dominio utilizando:

System.security.allowDomain("*");

unijimpe
Publicado: 15/08/2010 2:17 pm

Para los que desean cancelar la reproducción actual e insertar otro vídeo, pueden utilizar el método destroy() el cual encargará de cerrar la conexión NetStream deteniendo la descarga y reproducción del vídeo. Esto elimina cualquier referencia al player actual dando la posibilidad de insertar un nuevo player.

En nuestro caso, la instancia del vídeo cargado se ha guardado en la variable clip por lo que para detener el vídeo y eliminar el reproductor actual podemos utilizar.

clip.destroy();

Para mas información pueden leer la documentación oficial en YouTube ActionScript 2.0 Player API Reference

Nota
No olvidar colocar los permisos de acceso a archivo remotos para no tener problemas al momento de eliminar las referencias del player, esto lo hacemos colocando la siguiente línea al inicio de nuestro código:

System.security.allowDomain("*");

deibitrc
Publicado: 16/08/2010 3:47 am

Genial! muchísimas gracias unijimpe! :D

saul
Publicado: 16/10/2010 1:48 am

Hola en que part del script coloco

clip.destroy();

manuel
Publicado: 18/10/2010 2:52 pm

El código con los video youtube está genial me funciona perfecto… pero estoy necesitando subir un video vimeo.. y no me funciona con la misma programación por favor si me pueden ayudar con un ejemplo fla as2 mi correo es m_ariaseijas@gmail.com muchas gracias

manuel
Publicado: 18/10/2010 3:02 pm

rectifico el correo ariaseijas@gmail.com

maer
Publicado: 24/11/2010 5:31 pm

gracias master!
recomiendo mirar la API de google para profundizar el codigo

Jorge Cubas
Publicado: 01/02/2011 12:10 am

se puede hacer esto con los vídeos de facebook ?

Fredy Aevalo
Publicado: 18/02/2011 4:51 pm

Funciona perfecto pero estoy vinculando por fotogramas y si cambio de fotograma el audio del video sigue y tambien se pone lento donde coloco la funcion

clip.destroy();

Gracias

Fredy Aevalo
Publicado: 18/02/2011 4:55 pm

disculpen otra pregunta estoy intentando con quitar sonido pero tampoco funciona ademas necesito que cuando de click en el boton me lleve a otro swf y un fotograma especifico se que no es del tutorial pero si tienen alguna respuesta o donde lo puedo encontrar que me puedan colaborar

muchas gracias

este es el codigo:

on (release) {
loadMovieNum(“temp.swf”, 15);
stopAllSounds();
}

Taty
Publicado: 20/02/2011 6:48 pm

Hola use el codigo y me ha funcionado muy bien. Pero quiero lograr que una vez que termina la reproducción me gustaría controlar que el video no te de la opción de ver otros videos sino que solo te ponga el replay predeterminado de Youtube. Se puede hacer eso?
Saludos

Patrick Hofmann
Publicado: 29/04/2011 9:05 am

Muchas Gracias Unjimpe, excelente tutorial y siempre podemos contar con buenos tips y tutoriales de ustedes.

Marcelo Vivanco
Publicado: 03/05/2011 3:07 pm

muy buen el scrip en realidad buscaba embeber una direccion ip en flash como seria el metodo, desde ya gracias. los salud a todo el foro desde lima peru.

ricky
Publicado: 21/06/2011 3:53 pm

hola buena tarde el destroy(); no me funciona para detener el sonido del video de youtube, tengo el video en un swf con profundidad 2 y el menu a profundida 1 , caundo ledoy otra opcion en el menu. el video sigue sonando algguien tiene alguna solucion para ello. muchas gracais.

unijimpe
Publicado: 21/06/2011 4:36 pm

Rocky, el método destroy sirve para eliminar cualquier video que este corriendo. Verifica que estas llamando correctamente al nombre del clip que contiene el player

Manhy
Publicado: 06/07/2011 6:31 pm

Hola Unijimpe, muy bueno tu tutorial !! .. la craga funciona correctamente pero no puedo detener el audio del video .. o mejor dicho el video .. e utilizado la opcion destroy pero no pasa nada !! .. otra alternativa para detener el audio !!

Salvador
Publicado: 15/08/2011 4:57 pm

Hola, me funciono muy bien la carga de video, lo malo es que el video es mío y me marca lo siguiente al momento de reproducir:

“Este video tiene contenido publicitario de Sony ATV. Está restringida
su publicación en ciertos sitios”

eh, cambiado de vídeos ajenos y si los reproduce, que puedo hacer ?
y otra cosa el codigo

System.security.allowDomain(“*”);

donde lo debo poner para que funcione o como le hago.

jorge rivera
Publicado: 27/10/2011 2:28 am

muchas gracias por su aporte muy bueno lo mejor fue su aporte de los archivos para una gui mejor ante cualquier error muchas gracias

gerson
Publicado: 21/11/2011 4:21 pm

unijimpe no me funciona el destroy como puedo aplicarlo

unijimpe
Publicado: 21/11/2011 4:38 pm

Gerson, para detener l reproducción del video, es necesario llamar al método destroy, esto aplicandolo al moviclip donde se ha cargado el player.

clip.destroy();

gerson velasquez
Publicado: 23/11/2011 12:06 pm

gracias unjipe por contestar mi pregunta, tengo un problema si tuvieras tiempo de ver el sitio http://www.unomasuno.com.gt el boton de deomo te lleva hacia lo que son lo videos de youtube. el problema que tengo es que mi swf funciona con la opcion que me diste de clic destroy, pero ya en la internet no lo hace si le das play a reproducir y luego te pasas a cualquier otro boton el audio se sigue reproduciendo, si me pudieras yudar a resolverlo te lo voy agradcer. gracias por tu tiempo

Rodrigo
Publicado: 27/12/2011 2:32 pm

no me funciona el clip.destroy();, no se ni donde colocarlo, ni en que frame usarlo ni nada!

Gerson Velasquez
Publicado: 20/03/2012 12:12 pm

Buenos dias unijimpe solo una consulta se puede cargar un listado realizado en xml, si fuera asi como deberia enfocar el script

Ricardo
Publicado: 30/04/2012 2:56 pm

Ya ingrese el siguiente codigo al inicio del fotogrma

System.security.allowDomain(“youtube.com”);
System.security.allowDomain(“ytimg.com”);

y me sigue arrojando el mismo mensaje de error de sandbox!!!

ANGEL
Publicado: 25/07/2012 7:00 pm

NO ME FUSIONA EL clip.destroy(); NO PUEDO DETENER EL SONIDO DELOS VIDEOS CUANDO PASO A OTRA PARTE DE MI SWF

JulianaGarcia
Publicado: 26/07/2012 3:04 am

Hola, mil gracias por la ayuda!

Igualmente pude incluir mi video pero a pesar que agregue el codigo de seguridad al inicio, me sigue arrojando el mensaje de error de sandbox!

Trate también con este, pero nada!

System.security.allowDomain(“http://www.youtube.com”);
System.security.loadPolicyFile(“http://www.youtube.com/crossdomain.xml”);

var tload:MovieClipLoader = new MovieClipLoader();
tload.loadClip(“http://www.youtube.com/v/fGQsy6CWwYc”, clip);

Daniel
Publicado: 19/08/2012 12:45 pm

El swf funciona bien. Si le hago una redirección exacta desde mi site funciona con total normalidad. Pero si inserto este swf en un html… ya no funciona. ¿A qué se debe esto? :S

uri
Publicado: 09/09/2012 11:42 pm

Hace tiempo que uso este código en varias páginas con un óptimo resultado, pero desde hace unas semanas un cliente me indicó que el player del youtube incrustado no aparecía navegando desde chrome. Efectivamente, por lo menos en la última versión de chrome, no carga el embedded (lo pueden comprobar en el ejemplo de esta misma página), no es el caso de firefox y explorer, que siguen funcionando sin problemas. Alguna idea/solución?

uri
Publicado: 01/10/2012 3:06 pm

unijimpe, no sé si viste mi mensaje anterior. Ninguna solución para la no-carga del embedded en chrome? Buff, tengo los clientes locos con eso… Graaacias.

franck
Publicado: 09/11/2012 12:33 pm

donde y como se aplica el (destroy) por favor algo mas detallado.

william
Publicado: 02/05/2014 8:58 am

amigo trato de visualizar el ejemplo que das y no carga nada, YouTube ActionScript 2.0 Player API Reference esta incluido en tu ejemplo o como es la idea con esa utilidad gracias

william
Publicado: 02/05/2014 9:00 am

a mi desde mozilla tampoco me esta cargando nada

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)