Qué podemos esperar de XBMC Eden

  • Escrito el 17/9/2011 por Jesus

Aún faltan tres meses para que se publique la nueva versión de XBMC, pero teniendo en cuenta el periodo de estabilización, versiones alfa, beta, etc. nos encontramos con que la mayor parte de las funcionalidades previstas están ya implementadas.

http://trac.xbmc.org/milestone/11.0

La fecha prevista para publicar la nueva versión es el 29/12/2011, con el número de versión 11.0 y nombre en clave XBMC Eden como muchos ya sabréis. Si atendemos al estado del Trac está al 94% de finalización, con sólo 33 tickets abiertos de un total de 544 que había planificados.

Es duro esperar un año entero entre versiones, pero lo cierto es que cada nueva versión nos trae a la vez grandes saltos cualitativos y también pequeñas mejoras sutiles que hacen que nos olvidemos rápidamente de las versiones anteriores.

Menú principal en XBMC Eden

Lo que primero destaca nada mas iniciar XBMC es el cambio del menú principal en el skin Confluence, que ahora pasa a ser horizontal en lugar de vertical con un aspecto mucho más estilizado. Además se puede apreciar en la foto que ahora es muy sencillo y cómodo añadir enlaces directos a tus addons favoritos en el propio menú.

Otra mejora, que tengo que explorar aún, es la posibilidad de que los addons incorporen una interfaz web propia. Tengo la sensación de que puede ser algo completamente inútil, o una revolución en la forma de usar XBMC :)

Un cambio discreto, pero muy útil para los que acostumbramos a usar XBMC para ver vídeo online, es que en el reproductor se muestra tanto el progreso de la reproducción como el progreso del buffering al estilo de los reproductores de Flash en la web. Esto me ha encantado :)

Y la mejora menos espectacular, porque es algo normal en cada nueva versión de XBMC, pero a la vez más importante es la actualización de la librería de codecs FFMPEG. En este caso la actualización viene acompañada de la solución a grandes problemas tradicionales de XBMC, como la mayor estabilidad en la reproducción de formatos RTMP (Turbonick por ejemplo siempre ha tenido problemas) y también en MMS (Cadenas en live streaming, o el estupendo canal de la UPV en tvalacarta). Y aunque no se menciona expresamente, esperemos que por fin permita también reproducir los vídeos en formato HTTP Live Streaming (usado por dispositivos Apple).

El nuevo modo mixto ficheros / biblioteca

También me ha parecido muy destacable el nuevo modo mixto biblioteca / fichero: Ahora puedes navegar por tus ficheros con metadatos extendidos sacados de la biblioteca. Brillante.

Y por supuesto… iOS. Llevamos usando XBMC en iOS desde hace ya un tiempo, pero no olvidemos que aún no hemos tenido ninguna versión estable. XBMC ha sufrido mejoras importantes en el sistema de skins para posibilitar el control táctil, así como una remodelación interna para conquistar la plataforma ARM sobre la que se sustenta toda la gama de dispositivos de Apple. Apple TV 2G, iPhone, iPad, … los mejores dispositivos ahora ya disponen del mejor software.

Hay muchos más pequeños detalles, que podéis consultar en la página del Trac, aunque la verdad es que algunos de ellos me resultan prácticamente incomprensibles. Tras unas semanas de probarlo he querido destacar aquí lo que me ha parecido realmente interesante, y seguro que hay cosas por descubrir aún.

Ventajas e inconvenientes de hacer que tu Apple TV 2G arranque con XBMC

  • Escrito el 1/6/2011 por Jesus

El otro día seguí los pasos que encontré en el blog de @arormoser para hacer que mi ATV2 arrancara directamente con XBMC.

Me da mucha pereza conectarme por SSH así que me apunté el nombre del paquete y lo instalé siguiendo los pasos del tutorial que escribí el domingo. De hecho aproveché el proceso para capturar las pantallas y escribirlo.

org.tomcool.xbmc-booter

Reconozco que lo hice poco convencido, pero alguien me lo preguntó en el foro y pensé que merecía la pena probarlo para poder aconsejarle sobre si hacerlo o no. Pero es que la ventaja es evidente: no tienes que encender el aparato y luego ejecutar XBMC porque se carga automáticamente.

¿Y el inconveniente?

Pues que una vez que ejecuta el XBMC ya no puedes salir de él. Si le das a la opción de “Salir” simplemente… vuelve a cargarlo de nuevo. No puedes acceder a la configuración del dispositivo, no puedes instalar o eliminar paquetes.

Así que tomé las capturas de pantalla, me conecté por SSH (con la pereza que me da) y volví a dejar el cacharrito como estaba. En cualquier caso, gracias Andrés :)

Cómo instalar y desinstalar paquetes en el Apple TV 2G usando NitoTV

  • Escrito el 29/5/2011 por Jesus

Las instrucciones para instalar extensiones en tu Apple TV 2G muchas veces incluyen la ejecución de comandos apt-get en la consola, previa conexión mediante SSH.

apt-get install org.tomcool.xbmc-booter

Es cierto que la mayoría de las veces es más rápido, pero también es cierto que muchas veces tener que averiguar la IP del aparatito, ir al ordenador, abrir la sesión… es todo un poco rollo.

Hay una forma muy sencilla de instalar paquetes sin soltar el mando a distancia de tu Apple TV 2G, empleando NitoTV y el buscador:

Instalar paquetes

1) Ejecuta NitoTV

Ejecuta NitoTV

2) Elige el buscador de paquetes

3) Teclea el nombre del paquete que quieres instalar, en nuestro caso es “org.tomcool.xbmc-booter” así que vamos a escribir “xbmc”.

4) Vete a la derecha y elige el paquete en la lista de resultados de búsqueda que aparecerá.

5) Selecciónalo para ver el detalle y acceder a las opciones de instalación

6) Pulsa en “Install” para dar por finalizado el proceso y hacer la instalación.

Desde luego, si estás conectado por SSH es más fácil teclear el comando:

apt-get install XXXX

Pero si estás en casa de un familiar o amigo, no tienes el ordenador a mano o simplemente te da pereza es una opción. Y con esto puedes instalar cualquier cosa, incluído XBMC.

Desinstalar paquetes

Para desinstalar paquetes es todavía más sencillo. Simplemente ve a NitoTV, elige el paquete de la lista que aparece y dale a Uninstall para borrarlo.

No podría ser más fácil :)

Guía de desarrollo de pelisalacarta: Componentes internos del plugin

  • Escrito el 26/4/2011 por Jesus

Esta entrada forma parte de una serie.

Puedes leer la entrada anterior de la serie en “Cómo funciona la actualización automática”

Si te interesa no te pierdas la sección guías de desarrollo

Hacer un plugin de XBMC es muy sencillo, lo que queda patente si echamos un vistazo al escaso número de líneas de código de algunos de los plugins más populares. Otra cosa es que la documentación que hay es escasa, y no muy buena.

Para simplificar el desarrollo de canales en pelisalacarta añadí en las primeras versiones algunos módulos comunes, recogiendo operaciones básicas como la descarga de páginas o la actualización automática. De esta forma me evitaba tener que pensar en resolver problemas comunes, y de paso simplificaba la vida a los colaboradores en el desarrollo.

Ahora en la nueva rama 3.X para no liarse mucho con el funcionamiento en cada plataforma he agrupado un poco mejor los elementos.

El paquete “core”

En esta nueva versión los módulos independientes de la plataforma se han agrupado todos en un paquete “core”, para organizar el código fuente y simplificar las dependencias entre módulos.

Podemos encontrar módulos para resolver muchas de las necesidades básicas de pelisalacarta:

  • config: Permite leer parámetros de configuración de forma independiente de la plataforma donde se ejecuta el plugin. La magia consiste en identificar en qué plataforma está corriendo y abrir el módulo “config” apropiado en el paquete “platform”. No funciona mal, aunque a medida que se van añadiendo plataformas la cosa se complica.
  • logger: Un sistema sencillo para escribir información de depuración, pero que sorprendentemente también cambia mucho de una plataforma a otra.
  • downloadtools: Herramientas para descargar los ficheros, algo que en Python no está realmente bien resuelto. Este módulo tiene también funciones auxiliares interesantes para tratar el encoding.
  • library: La aportación de Jurrabi para añadir series a la biblioteca de XBMC.
  • samba: Un wrapper sobre smb/nmb, dos librerías de Python para tratar la conectividad con carpetas compartidas de Windows.
  • updater: Verifica cada vez que inicias el plugin si hay nuevas versiones, y en caso afirmativo las descarga. La descompresión del ZIP se hace con el módulo ziptools, cuyo códig saqué buscándolo en Google
  • xbmctools: Es donde está el menú que sale cuando eliges una película. Ha crecido tanto que hay que reescribirlo, no es un buen ejemplo de programación en Python :(
  • scrapertools: Básicamente está todo lo necesario para la descarga de las páginas, se encarga de cosas tan exóticas como cambiar las cabeceras, gestionar las cookies, envios POST/GET, etc. Todo lo necesario para hacer creer a los sitios que en realidad XBMC es un navegador estándar.

El paquete “pelisalacarta/channels”

Contiene un módulo Python (un fichero .py) para cada canal y un ficheros xml asociado a cada uno de ellos para la actualización automática individual. Se llama así en lugar de llamarse simplemente “channels” con la idea de que algún día pelisalacarta, tvalacarta y otros plugins podrían llegar a ocupar la misma base de código fuente.

El paquete “platform”

La capacidad multiplataforma de pelisalacarta se basa en dos aspectos:

  • Python: Es un lenguaje interpretado, que funciona en todas las plataformas gracias a que hay un intérprte para prácticamente cualquier sistema. Además es fácilmente empotrable dentro de otras aplicaciones, lo que lo convierte en una elección muy popular para hacer extensiones de sistemas existentes.
  • El paquete estándar “platform” que proporciona al plugin funciones comunes de forma que no es necesario conocer su implementación específica en cada plataforma.

Hay un directorio para cada plataforma, que es ejecutado de forma selectiva desde diferentes puntos del plugin, y que proporciona:

  • Programa principal: Es aquí donde se almacena el punto inicial de ejecución.
  • Configuración: Es donde de verdad se implementa el acceso a los parámetros de configuración, traducciones y a parámetros genéricos. Es importante especialmente la función “get_data_path” para obtener una ruta donde poder escribir ficheros, y la función “get_runtime_path” para saber cual es la ruta principal del plugin.
  • Logging: Desde un simple “print” en unas plataformas, hasta sistemas más exóticos como el de XBMC o Plex.

El paquete “server”

Este paquete ya estaba en versiones anteriores, y agrupa los conectores de los diferentes servidores. Es aquí donde está el importante módulo “servertools” que se encarga de la detección de vídeos en una página: Basta con que le des una cadena con una página HTML y te devuelve un listado de los vídeos que encuentra incluyendo además en qué servidor están alojados.

El directorio “resources”

Además de recoger las imágenes como en versiones anteriores, en este directorio se almacenan ahora los ficheros adicionales requeridos por las diferentes plataformas. Es como el cuarto trastero :)

El script build.xml

Un script de ANT se encarga de empaquetar pelisalacarta en cada una de sus versiones. Esto simplifica mucho el trabajo a la hora de preparar las distribuciones más habituales (xbmc), y hace posible el empaquetado de las versiones más exóticas como la de Plex Media Server, que tiene una estructura de directorios muy peculiar. Y aún queda trabajo para perfeccionarlo.

@