Página 2 de 3

Re: Videos de youtube.

Publicado: 25 Mar 2010, 22:03
por jesus
El problema es que probablemente no será posible averiguar la lista de resoluciones disponibles.

@bandavi, ¿has probado a buscar en google? O en el API de YouTube... igual hay una solución.

Re: Videos de youtube.

Publicado: 26 Mar 2010, 16:44
por bandavi
@jesus diste en el clavo, ese era el problema en principio para hacer el menu como queria Jurrabi.
Lo de elegir mediante la configuracion del plugin ya lo tengo hecho y funciona bien pero ya encontré una forma de ver la lista de formatos con que vienen los videos y como la configuracion del plugin ya lo tengo hecho, voy a añadir otra opcion mas que dirá "Menú" quedará asi mas o menos :

Código: Seleccionar todo

 
<setting id="quality_youtube" type="enum" values="Low|Medium (3gp)|High (FLV)|360P|480p|1227KBS (FLV)|720p|1080p|Menú" label="30205" default="3" />
Asi de esa manera el que quiera elegir mediante un menu los formatos disponibles, pondrá la opcion de "menú" en configuraciones y si no quiere que salga el menu, elige la calidad que quiere y si existe lo repoducirá directamente, si no existe buscará la siguiente resolucion mas baja.
apenas lo termine lo subo al svn.

Re: Videos de youtube.

Publicado: 26 Mar 2010, 18:43
por jesus
Genial!

Lo chulo ahí será que en el menú de "Ver / Descargar / Añadir a favoritos / ..." aparezca como opción "Ver 360p / Ver 480p / Ver 720p / Descargar / ..."

Pero no te metas con eso de momento, que ahora mismo el xbmctools.py ya nos está dando bastantes problemas con el último cambio que hicimos :)

Re: Videos de youtube.

Publicado: 27 Mar 2010, 03:57
por bandavi
jejeje va a salir asi como dices pero no en ese menu, si antes de ese menu, tu sabes que no soy mucho de tocar el xbmctools para no tener problemas como los de ahora.
Si quieres hago que salga un solo menu parecido como el que dices sin tocar el xbmctools ;) no hay problema.

Re: Videos de youtube.

Publicado: 27 Mar 2010, 12:00
por jurrabi
Ojalá que saquen la beta pronto. Tal y como estoy ahora se me plantea un infierno de merges (con más de 50 archivos modificados por mi respecto al branch) cada vez que hago update :(

Re: Videos de youtube.

Publicado: 31 Mar 2010, 00:52
por jurrabi
Antes de nada comentar que he estado de viaje y aún no he visto los cambios en youtube, pero lo miraré pronto y te comento bandavi.

mientras llega eso le he estado dando vueltas a la cabeza y me preocupa que si empezamos a meter servidores la pantalla de configuración se llene de opciones adecuadas para cada servidor.

Estuve pensando y creo que habría que cambiar la forma de trabajar de playvideo ligeramente para hacerlo más "multi-server" en el siguiente sentido:

-Ahora mismo xbmctools, y más concretamente playvideo, es muy consciente de lo que es megaupload/megavideo y de como funciona. Hasta el punto de si el servidor es uno de estos añade opciones a su menú de selección para elegir una u otra calidad y llamar a la función adecuada de megavideo para que le de la url correcta.

Al añadir otros servers con selección de calidad si siguieramos el patrón de megavideo tendríamos que modificar playvideo y hacer algo equivalente... pero esto no me parece una abstracción adecuada.

Creo que una abstracción que podría quedar elegante sería añadir unas funciones a todos los módulos de servers para que los use playvideo... algo como esto:

1. playvideo comprueba el servidor y llama a una función "dameopciones" del módulo de ese servidor para que le devuelva la lista de opcones que debe añadir a la pantalla de selección. Para Megavideo devolvería una lista de 2 opciones: Alta y Baja; para youtube devolvería una lista con todas las calidades disponibles).
2. Si el usuario selecciona una de esas opciones (el resto las gestiona él como siempre) llama a DameURL otra vez en el módulo del servidor para obtener la URL final (pasándole la opción que se seleccionó y que el módulo sepa así la calidad seleccionada). Será esta función la que vea si tiene que crear cookies o lo que haga falta para obtener la URL final a reproducir.
3. La url devuelta se reproduce..

En el caso de seleccionar calidad por defecto. En lugar de tener una opción para cada servidor sugiero definir a nivel del plugin las calidades que queremos manejar (por ejemplo SD, HD y XHD; o baja, alta y muy alta ;o 360p 480p 720p 1080p (depende del detalle que queramos y las opciones de los servidores)) y llamar al módulo del servidor en lugar de para que nos dé la lista de opciones directamente para que nos dé una URL que se acerque a la calidad que queremos. Si, por ejemplo, nos inclinamos por mantener el baja alta (y añadimos muy alta para poder coger HD) el módulo de megavideo devolvería la urlbaja para la opción baja y la urlalta para las opciones alta y muy alta, mientras que youtube devolvería 360p para la baja, 480p para la alta y 720p o 1080p (que elija el programador) para muy alta, y el resto de módulos actuales que no tienen elección de calidad pues devolverán el único que tienen...


No sé si me he explicado, pero creo que un cambio en esta línea se hace muy necesario.


Siendo totalmente honesto estas ideas me vienen por las vueltas que les estoy dando a la versión 3.0 de pelisalacarta en modo script en lugar de plugin (que pesado soy, verdad). En ese sueño necesito que tódos los módulos estén muy estructurados y devuelvan la información de cierta manera estandarizada para que el script general la maneje con soltura dando opciones de ordenación, filtrado, etc... a ver si me pongo a tirar líneas y os puedo enseñar algo más concreto...

Re: Videos de youtube.

Publicado: 31 Mar 2010, 07:55
por jesus
A mí me parece bien la idea, es lo mismo que se me había ocurrido.

En cuanto a la forma de hacer lo de los canales no tengo claro que sea esa, pero es cierto que hay que hacer que los canales tengan "servicios" estructurados.

Un buen ejemplo de la idea es la función "performSearch" que explota el buscador. Cada canal tiene que tener una función "performSearch" que devuelve un array de vídeos, de forma que el buscador lo único que hace es invocar una por una todas las funciones de ese tipo que encuentra y luego montar el listado. El resultado es sencillo y elegante como a mí me gusta :)

A mi me parece que es más lógico que cada canal acabe llamando a un "playvideo" con una o varias direcciones de vídeos... así playvideo sigue igual pero es más genérica y permite cosas como lo de youtube.

De todas formas queda el problema de la opción de "Descargar". Si hay varias calidades a elegir ¿cuál se descarga? En Megvideo es fácil... se descarga siempre la de más calidad.

Re: Videos de youtube.

Publicado: 31 Mar 2010, 09:08
por jurrabi
jesus escribió: A mi me parece que es más lógico que cada canal acabe llamando a un "playvideo" con una o varias direcciones de vídeos... así playvideo sigue igual pero es más genérica y permite cosas como lo de youtube.
El canal pueda que sepa de cuantos videos tiene el episodio cuando se permite el almacén de varios en su web (tvshack y seriesyonkis como ejemplo). Pero no sabe nada sobre las calidades disponibles en cada server. Ahí debe ser el server el que eche un cable.
jesus escribió:De todas formas queda el problema de la opción de "Descargar". Si hay varias calidades a elegir ¿cuál se descarga? En Megvideo es fácil... se descarga siempre la de más calidad.
Esto no será dificil ya que como playvideo ha pedido antes la lista de calidades al server puede volver a mostrar otra selección para que seleccione la calidad a descargar.


En mi idea de script esta ventana muestra una lista seleccionable de calidades y luego hay botones para reproducir, descargar o añadir a favoritos/biblioteca la calidad seleccionada.

Re: Videos de youtube.

Publicado: 02 Abr 2010, 11:25
por jesus
Si hay varias opciones de descargar y varias de ver, será un diálogo de selección de demasiadas entradas.

Igual es mejor idea plantear un nuevo diálogo con dos cuadros, usando windowXML, y plantear la selección en dos pasos:

1) Elegir entre "Ver / Descargar / ..."
2) Elegir entre los mirrors de la página, y la calidad del servidor

De todas formas, creo que no hay que dedicarle mucho esfuerzo a esto. Pocos canales lo aprovechan...

Re: Videos de youtube.

Publicado: 02 Abr 2010, 17:43
por bandavi
Jajaja menudo conflicto verdad, no crean que no me lo he planteado yo tambien.

El problema de las calidades o resoluciones que ofrece youtube no siempre es la misma para todos los videos que hay en esa pagina.
Y hay dos formas de buscarlas, una es buscar los formatos y sus link reales del video dentro de los datos descargados de la pagina aunque no lo crean youtube si los da aunque estan encodificados pero con un urllib.unquote_plus() se resuelve, comunmente solo vienen dos formatos (360p y High flv) rara vez viene con otro formato mas pero he descubierto una forma de forzar que me envie por lo menos con tres formatos (480p) y es incluyendo "&fmt=18" en la url del video con esto ya tengo tres para elegir y puedo hacer el menú.

La otra forma es buscar el token (codigo de parametros) en los datos de la pagina y con este enviar un pedido de video con un formato especifico si no se especifica te envia el mas bajo, si existe el formato te envia la url real del video, sino existe te envia "None", asi que imaginense hacer eso para todos los formatos y crear un menú lo que tardaria, por eso fue mi planteamiento de poner en el menu de configuraciones,para elegir un formato mas alto que se quiera y si existe ese formato cuando hagas click sobre el video te saldrá el menu de ver| Agregar a favoritos | descargar... no tendras ningun conflicto sobre eso y si no existe el formato solicitado, solicitará el sigte. mas bajo, asi hasta que pille uno que exista.

La forma de utilizar el conector es asi:
1.- Si el canal obtiene solo la id de la url.
id = "tmFbteHdiSw"
video_url = geturl(id)

2.- Si el canal obtiene la url completa del video
a) url = "http://www.youtube.com/v/RogMwT3YYHY&re ... owsearch=0"
b) url = "http://www.youtube.com/watch?v=jqxENMKaeCU"

video_url = geturl(Extract_id(url))

Supongo que ya lo sabran pero de todas formas lo pongo como orientacion para poder usarlo.

Me olvidaba, la pagina de youtube ha hecho cambios que afectan al conector pero ya estoy en ello. ;)