Nubeox en Linux

En este post explico cómo he conseguido reproducir contenidos de Nubeox Premium protegidos con DRM en Linux.
El mismo método debería servir para otros servicios problemáticos basados en Flash, como Wuaki o TotalChannel aunque no lo he probado.

Como tantas otras veces, el Wiki de Arch Linux ha sido de lo más útil. El problema parece ser que el DRM en Flash requiere HAL. Pero HAL hace años que está en desuso y desaparecido o reducido a la mínima expresión en la mayoría de distribuciones.
La solución pasa por instalar una versión especial de libhal, que internamente usa el sistema más moderno udisks, pero que proporciona los elementos necesarios para que el DRM de Flash funcione.
Se puede encontrar en https://github.com/cshorler/hal-flash, y una vez descargada habrá que compilarla y reemplazar el libhal del sistema si es que aún sigue ahí. Ojo, otros programas que aún dependan de HAL podrían tener problemas. Por suerte en mi caso (Debian Sid) libhal ya no era necesario.

En sistemas basados en Debian (Ubuntu, Mint…) se puede crear el paquete deb fácilmente:

$ sudo apt-get install devscripts build-essential
$ unzip hal-flash-master.zip
$ cd hal-flash-master
$ debuild -us -uc -b
$ sudo apt-get remove libhal1
$ dpkg -i ../libhal1-flash_*.deb

Además hay que eliminar la caché del plugin Flash:

$ cd ~/.adobe/Flash_Player
$ rm -rf NativeCache AssetCache APSPrivateData2

Tras seguir estos pasos, la reproducción de contenidos de Nubeox empezó a funcionar, tanto los canales en directo como las películas y episodios de series. No he probado los alquileres aunque imagino que funcionarán.

Referencias:

Pipelight: Silverlight en Linux

¡Por fin! Una solución para poder usar sitios que requieren Silverlight en Linux sin problema (en la mayoría de casos, al menos).

Hace tiempo que Moonlight está abandonado, muerto y enterrado. Moonlight era el engendro de Novell y Microsoft que implementaba Silverlight (pero no todo) en Linux, y que nunca fué una solución demasiado buena. Microsoft como casi siempre no tiene ningún interés en soportar Linux (aún gracias que soportan Mac OS X, aunque sea por poder decir que .NET y Silverlight son multiplataforma).

Reproductor de video sobre Pipelight

Pipelight en acción

Parece que desde hace algunos meses tenemos otra solución viable: Pipelight. No es una solución bonita, pero permite tener un "plugin Silverlight" oficial en el navegador estándar que queramos usar y funciona, que no es poco.
Tras el telón usa Wine y unos cuantos hacks para poder correr el plugin para Windows. Funciona tanto en x86 como en amd64 y dentro de lo que cabe no es demasiado difícil de instalar, hasta proporcionan paquetes binarios para multitud de distribuciones.

Como comparación, la versión "usable" de Moonlight que tenía instalada corría el test Balls Animation entre 30 y 60 fps mientras que pipelight me lo mueve a 200.
La reproducción de video en Yomvi, cuyo cambio de Flash a Silverlight me había desesperado, es bastante fluída.

Las instrucciones de instalación están en inglés, aunque son bastante fáciles y casi todo consiste en ejecutar los comandos que muestran.

Valor de retorno en el prompt

Este código sirve para indicar si el último comando ha tenido éxito o no, de manera que siempre esté visible en el propio prompt, es ideal para depurar código entre otras cosas.

Versión rápida (aunque no muy legible :P):
export PS1='$( [ "$?" -eq 0 ] && M=")" || M="("; echo -n :$M ) '$PS1

Incluyendo este fragmento en ~/.bashrc siempre estará activo:

# Indicacion de si el ultimo comando ha tenido exito
#    inspirada por http://mendel.livejournal.com/128965.html
#export PS1='`test "$?" -eq 0 && echo -n ":)" || echo -n ":(" ` '$PS1
# Version con funcion sacada de http://linuxgazette.net/122/lg_tips.html
#Alternativamente: "More-or-less undocumented Bash-ism - a C-style trinary operator":
#smiley () { echo -e ":\$(($??50:51))"; }
_smiley() {
   if [ $? -eq 0 ]; then echo ':)'
      else echo ':('
   fi
}
#...
export PS1='$(_smiley) '$PS1

Ejemplo:

:) toni@host:~$ false
:( toni@host:~$ true
:) toni@host:~$ 

Revisado y corregido por última vez el 2013-10-22

Desactivación del altavoz (kernel 2.6)

Nota: usar hotplug y su lista de modulos prohibidos (/etc/hotplug/blacklist)
puede parecer más elegante pero en realidad no funciona, al menos que yo sepa.

  • En sistemas actuales:

    Crear un archivo en /etc/modprobe.d, en mi caso lo llamaré local-pcspkr

    (lo de local lo uso para diferenciar los que he ido añadiendo yo
    de los que instala el sistema), y añadirle una de estas líneas:

      alias pcspkr off
    o
      install pcpskr /bin/true
    por ejemplo:
    # echo alias pcspkr off >> /etc/modprobe.d/local-pcspkr

  • En sistemas más antiguos:

    Añadir una de las lineas a /etc/modprobe.conf, por ejemplo:
    # echo alias pcspkr off >> /etc/modprobe.conf

Fuente: http://www.debianforum.de/forum/viewtopic.php?p=158760