sábado, 19 de julio de 2014

Simple programa para ver videos de youtube con Flash sin HTML5 y que no se corten al minimizar


Buenas noches.
Este mini post tiene el objetivo de solucionar un drama enorme que se viene sucediendo en los últimos tiempos con Youtube y HTML5. Conozco muchos casos, muchísimos, en los que antes podían escuchar música desde Youtube, minimizando la ventana del navegador y haciendo otra cosa en la computadora. Hoy en día, culpa de la actualización de Flash a HTML5 de los vídeos, esto se ha vuelto un poco tedioso, muchos vídeos entrecortan la música al querer hacer lo mismo que antes con Flash y en algunos casos hasta se tilda el navegador, lo que conlleva a emitir cientos de insultos a la computadora.
Todos culpan entonces que su computadora está lenta, pero no es tan así, en gran parte tiene que ver HTML5, Youtube por defecto usa el reproductor que viene incorporado en el nuevo estándar de este lenguaje y las etiquetas <video></video> sin, me parece, importarles que anda como el culo (Perdón la expresión, igualmente me importa poco si les molesta).
Bien, para resolver esto, decidí hacer un programita que reproduzca vídeos de Youtube pegando el link del mismo en un TextBox y usando Flash, como en viejas épocas.
Probando esto, vi que Flash descarga y reproduce los vídeos con mayor velocidad y ocupando muchos menos recursos, una joyita.
En Windows, ya vienen por defecto las librerías de Flash para reproducir vídeos, por si de casualidad no las tiene el ".rar" que acompaña este post la posee. Esta librería se llama AxInterop.ShockwaveFlashObjects.dll. La pueden agregar como referencia desde las COM no desde las NET cuando coloquen en Agregar Referencia.
Una vez agregada esta librería, deben agregar el control a las herramientas, porque casi seguro que no les va a aparecer. El control que les debe aparecer es como un panel, ese panel es donde se va a reproducir el vídeo. Si no les aparece en las herramientas coloquen en elegir elemento apretando botón derecho del Mouse sobre las herramientas y ahí elijan la misma dll que referenciaron.
Bien, entonces creamos un proyecto de Windows Form (me olvidaba decirles que iba a ser Windows Form). Luego referencien como les indiqué más arriba. Una vez obtenido el control, lo arrastran al Formulario, además arrastran un botón y un TextBox.
En el TextBox vamos a crear un evento KeyPress que va a tener la función de que cuando se presione enter se va a ir al vídeo que se indique, el botón va a tener el evento click que también va a realizar la misma función:

Los eventos mencionados son los siguientes:

private void ClickGo(object sender, EventArgs e)
{
vPlay();
}

private void PressEnter(object sender, KeyPressEventArgs e)
{
if(e.KeyChar==(Char)Keys.Enter)
{
vPlay();
}
}

Bien, como verán, ambos eventos ejecutan el método Play(), el método Play es el siguiente y más abajo explico cada cosa:

void vPlay()
{
smovie=TextBoxYoutube.Text;
vConvert();
FlashYoutubePlayer.Movie=smovie;
}

- smovie es un string que declaré globalmente (En el código que adjunto está).
- FlashYoutubePlayer es el nombre que le dí al control Flash agregado.
- vConvert() es una función que realiza una conversión del link de Youtube, veámosla:

void vConvert()
{
if(smovie.Contains("watch?v="))
{smovie= smovie.Replace("watch?v=", "v/"); }
}

Esta función quita del link "watch?v=" y lo reemplaza por "v/", esto hace que se eliminen las restricciones por país y se pueda reproducir cualquier vídeo. Se pueden hacer muchísimas cosas más, como agregar una base de datos que guarde los vídeos reproducidos, que los descargue y que guarde los links, además de otras cosas sobre el mismo control Flash, etc... Pero dejaremos esto para una futura versión... que quizás nunca llegue.

Va a tener muchas restricciones este mini programa, no les va a mostrar por ejemplo los vídeos recomendados de los costados, ni se va a poder presionar el "volver a la página anterior", sí les va a mostrar los vídeos recomendados al final del vídeo, pero el beneficio es que no se les va a cortar, va a andar rápido y ademas no te vas a tener que comer las propagandas malditas que te ponen estos desgraciados, es ideal para trabajar mientras se coloca una lista de reproducción de Youtube.

Yo lo compilé utilizando el Net Framework 2.0 para que ande en la mayoría de las computadoras, si quieren en las opciones pueden cambiarlo al .Net 4.0 que va a andar sin dramas. No incluyo el Net Framework en el instalador porque va a ser muy pesado. El instalador está hecho con ClickOnce, aunque prefiero mi querido Inno Setup con ISTool.

Bien, acá les dejo el código y el Instalador del mismo. Este lo hice en Visual Studio 2010.

Los que no son programadores, descarguen el instalador solamente.

Espero les sirva. Un saludo.

Código de YoutubePlayer

Instalador


1 comentario:

  1. ya no va!! :(

    Watch on youtube

    Flash-embedded videos are no longer supported,
    but you can can still watch this video on YouTube.

    encontre este enlace pero tampoco va.....
    https://www.codeproject.com/Articles/844451/Audio-and-Video-Player-Csharp-Winform?msg=5475503#xx5475503xx

    ResponderEliminar

Escriba su comentario...