Instalación de FlexGet y configuración (I): series

En la entrada de hoy voy a tratar uno de los temas principales por los que adquirí mi Raspberry, que no es más que la búsqueda automática y descarga de series y películas. Esto lo consigo mediante el programa FlexGet (disponible para todas las plataformas). A lo largo de una serie de artículos iré tratando diversos temas de configuración para conseguir diferentes objetivos, viendo en este primero la instalación y configuración para descargar las series que sigo en versión original.

Instalación de FlexGet

La instalación de FlexGet en XBian no es diferente a la instalación de cualquier otro software en Linux que se encuentre en el repositorio. Para ello, después de conectarnos a nuestra Raspberry mediante ssh al igual que las demás ocasiones, ejecutamos la instrucción que instalará python en caso de no tenerlo: sudo apt-get install python python-setuptools

Instalacion de Python

Ahora instalamos FlexGet y unos componentes extras mediante easy_install: sudo easy_install flexget mechanize transmissionrpc

Instalación de flexget

Tardará un rato, pero con ello ya lo tenemos instalado y lo podemos comprobar ejecutando el comando flexget -V:

Comprobacion de la instalacion

Pero si no lo configuramos adecuadamente no haremos nada, y es en la configuración donde FlexGet se hace fuerte, ya que su configuración es muy amplia y nos permite hacer muchas cosas. El precio que tenemos que pagar es que llegar a entender esa configuración puede llegar a ser complicado.

Primero tenemos que crear el directorio donde irá la configuración y la base de datos mediante mkdir /home/xbian/.flexget y luego para entrar en la configuración de FlexGet lo hacemos mediante el comando nano /home/.flexget/config.yml

Creación del directorio
Configuración inicial de flexget

Como ya os he comentado FlexGet tiene muchas opciones. Yo lo que voy a hacer es dejaros a continuación lo que yo tengo en mi fichero de configuración y sobre él os comento:

tasks:

  tv-shows:
    series_premiere: yes

    transmission:
      path: /mnt/disco1gb/tvshows
      host: localhost
      port: 9091
      username: transmission
      password: ********
      addpaused: no

    rss: http://rss.thepiratebay.se/208

    thetvdb_lookup: yes

    quality: 720p HDTV h264

    regexp:
      reject:
        - SUB
        - DUAL
        - WEB
        - CENSORED
        - SCREENER
        - LATINO

    content_filter:
      reject:
        - '*.avi'
        - '*.mpg'
        - '*.mpeg'

    series:
      - 12 Monkeys:
        path: /mnt/disco1gb/tvshows/12_Monkeys
      - Game of Thrones:
        path: /mnt/disco1gb/tvshows/Game_of_Thrones
        set:
          tvdb_id: 121361
  • tasks aquí indicamos las tareas.
    • tvshows inicio de la configuración de la tarea de series
      • series_premiere poniendo este valor a YES le decimos a FlexGet que se descargue todos los capítulos de series no conocidas y cuyo nombre contenga S01E01. Esto sirve para descubrir nuevas series y programas. OJO, solamente bajará el capítulo 1, si al final la queremos seguir habrá que añadirla en la sección de más abajo.
      • transmission aquí le indicamos configuración de tranmission específica para esta tarea, en este caso de series.
        • path este será el directorio por defecto de todas las series. Sobreescribe el directorio indicado en presets / global
        • host por si conectamos a un transmission remoto. En mi caso es localhost porque están en la misma máquina.
        • port puerto de conexión. Por defecto es el 9091.
        • username usuario para conectarse. Si no lo cambiaste al instalarlo, por defecto es transmission.
        • password contraseña para conectarse. Por defecto sería también transmission.
        • addpaused poniendo esto a NO permite que las descargas se inicien automáticamente al ser añadidas. Si ponemos YES entonces se añaden pausadas y tenemos que arrancarlas manualmente.
      • rss este será el RSS donde FlexGet buscará los torrent. El que yo tengo indicado corresponde a la sección HD de series en TPB, pero podéis indicar cualquier otro.
      • thetvdb_lookup esto sirve para que FlexGet busque los ficheros en la web thetvdb.com para poder identificar mejor las series en caso de series con nombres parecidos.
      • quality indicamos la calidad mínima a la que queremos nuestros capítulos. Yo lo tengo a 720p, lo que quiere decir que si encuentra alguno a 1080p también lo bajará.
      • regexp para definir términos de aceptación y/o rechazo.
        • reject para rechazar torrents. En mi caso lo uso para no descargar capítulos ya subtitulados (SUB), con doble audio (DUAL), con calidad web que suele ser mala (WEB), etc etc.
      • content_filter sirve para filtrar por tipo de archivo.
        • reject para rechazar, igual que en el apartado anterior.
          • ‘*.avi’ rechaza todos los archivos .avi
    • – Nombre_de_la_serie bastante auto-explicativo.
      • path si tenemos definido un directorio específico para esa serie lo indicamos aquí.
      • set aquí podemos indicar configuración adicional solo para esa serie.
        • tvdb_id si la serie tiene entrada en la página de thetvdb aquí podemos indicar su ID para evitar problemas con series con nombre muy parecidos.

Es MUY importante respetar la indexación, esto es, el número de espacios que hay al comienzo de cada linea. Es así porque el fichero de configuración es un YML y FlexGet espera esa estructura. Si en lugar de por ejemplo 4 espacio ponemos 3 o 5, el fichero de configuración podría no funcionar o funcionar incorrectamente.

Ahora que ya lo tenemos todo salimos del editor con CTRL+X, confirmamos que queremos escribir con Y y presionamos ENTER para no cambiarle el nombre.

¿Cómo podemos saber que lo hemos hecho bien? lo primero sería comprobar que la estructura del fichero config.yml es correcta. Esto es un proceso más o menos rápido que se consigue con el comando flexget check

Check pasado satisfactoriamente

Como podéis ver en la imagen el resultado de la tarea es passed, lo que quiere decir que está bien. Si hubiéramos tenido algún error en el fichero nos habría dado error e indicado la sección donde se encuentra.

Ahora podemos hacer una segunda comprobación que consiste en que FlexGet se conecte al RSS que le hemos indicado en la configuración y “descargue” los capítulos correspondiente (en caso de que los haya). Lo entrecomillo porque realmente utiliza una base de datos temporal que es eliminada después de la ejecución, por lo que realmente no descarga nada. Esta comprobación la hacemos con el comando flexget ––test execute (dos guiones)

Check funcionando sin problema

Aquí ya la salida ofrecida es más larga, pero sería conveniente revisar las lineas para ver que está rechazando entradas correctamente según lo definido.

Y ya estaría listo, cada vez que ejecutemos el comando flexget lanzaríamos la comprobación para ver si hay capítulos nuevos a descargar y los incorporaría directamente a transmission. El próximo día os enseñaré cómo hacer para que se ejecute cada cierto tiempo para automatizarlo aún más.

Anuncios

Instalación de Transmission

Bueno, tal como comenté en la última entrada, ahora que hemos terminado de configurar nuestra Raspberry como mediacenter y le hemos enlazado toda nuestra librería, es hora de hacer que también funcione como gestor de descargas.

Para ello yo voy a utilizar Transmission, que es un cliente bastante ligero y que funciona muy bien. Además, existe posibilidad de ir añadiendo ficheros desde cualquier otro equipo mediante su interfaz web. Yo esto lo he utilizado incluso para añadir descargas desde fuera de mi red local, lo cual es muy útil en algunos casos.

Creo que XBMC da la posibilidad de instalar Transmission como un programa dentro del propio mediacenter, pero esto es algo que no he probado y no sé muy bien cómo funciona, quizás lo investigue en profundidad en el futuro.

Antes de instalar nada nuevo siempre me gusta cerciorarme de que el sistema está totalmente actualizado. Esto nos ayudará a que no haya problemas de compatibilidad de paquetes a la hora de instalar algo nuevo.

Usando XBian, la forma de hacerlo será yendo a Sistema > Ajustes > XBian > Update

20131228-203802.jpg

20131228-203826.jpg

20131228-203840.jpg

Aquí podemos ver tanto si el kernel de nuestro sistema está actualizado como si lo están los paquetes adicionales.

20131228-204429.jpg

En mi caso tengo pendientes de instalar algunos paquetes. Podríamos ir uno a uno diciéndole que los instale, pero la forma más rápida de instarlos todos es bajando hasta el final de la lista, donde nos da una opción para actualizarlos todos.

20131228-204453.jpg

20131228-204531.jpg

Después de instalar las actualizaciones, salimos del menú. XBian hará una comprobación para ver si alguna de las actualizaciones hace necesario un reinicio del sistema. En caso de ser necesario, nos presentaría una ventana preguntando si queremos reiniciar ahora.

Una vez reiniciado (en caso de haberlo hecho), nos conectamos mediante terminal usando el comando ssh xbian@[dirección IP]

Captura de pantalla 2013-12-29 a la(s) 11.14.46

Ahora procedemos con la instalación de nuestro cliente. En nuestro caso se llama transmission-daemon, y lo instalamos con el comando sudo apt-get install transmission-daemon

Captura de pantalla 2013-12-29 a la(s) 11.15.19

El sistema comenzará con la instalación de Transmission, y una vez acabada arrancará el servicio que irá corriendo en background, llamado transmission-daemon.

Captura de pantalla 2013-12-29 a la(s) 11.15.42

Captura de pantalla 2013-12-29 a la(s) 11.16.39

En este punto tenemos nuestro gestor de descargas funcionando, pero tenemos que hacer cambios referentes a los directorios de descarga, acceso web y otros. Lo primero que haremos para realizar estos cambios será parar el servicio mediante el comando sudo /etc/init.d/transmission-daemon stop

Captura de pantalla 2013-12-29 a la(s) 11.17.07

Ahora ya podemos proceder con los cambios en la configuración, la cual se encuentra en un archivo llamado settings.json. Para editarlo ejecutamos el comento sudo nano /var/lib/transmission-daemon/info/settings.json

Captura de pantalla 2013-12-29 a la(s) 11.17.45

A continuación os pongo los cambios que he llevado yo a cabo, así como el significado de cada uno. Podéis ver que hay muchísimas más cosas a configurar, por lo que si tenéis interés podéis buscar sus significado en la página de Transmission aquí.

  1. “download-dir”: “/media/drive/torrent/finish”  <-este es el directorio por defecto de las descargas si no se indica lo contrario
  2. “download-queue-size”: 20 <-número de elementos simultáneos que se pueden descargar
  3. “incomplete-dir-enabled”: true <-esto sirve para que los archivos que aun se están descargando vayan a un directorio distinto de los ya descargados.
  4. “incomplete-dir”: “media/drive/torrent/temp” <-aquí es donde se almacenan los archivos incompletos
  5. “rpc-enabled”: true <-esto habilita la interfaz web para poder manejarlo desde un navegador
  6. “rpc-username”: “transmission” <-el nombre de usuario que usaremos para logarnos en la web
  7. “rpc-password”: “password” <-la contraseña para la interfaz web
  8. “rpc-whitelist-enabled”: false <-esto lo pondremos a true si queremos una whitelist, que sirve para que solamente ciertas direcciones IP puedan conectarse a la web de Transmission. Yo lo deshabilito porque como accedo desde el móvil y la IP cambia, entonces no podría hacerlo.
  9. “rpc-port”: 9091 <-el puerto para acceder a la web
  10. “script-torrent-done-enabled”: true <-esto es por si queremos que ejecute un script cada vez que termine una descarga.
  11. “script-torrent-done-filename”: “/home/xbian/scripts/download_complete.sh” <-este es el script. Lo explicaré más adelante en otra entrada
  12. “watch-dir”: “/var/flexshare/shares/watch-torrent” <-este es el directorio donde, si copiamos un archivo .torrent, Transmission lo añadirá automáticamente a la cola de descargas.
  13. “watch-dir-enabled”: true <-esta es la opción para habilitar la monitorización automática de un directorio en busca de archivos .torrent.

Captura de pantalla 2013-12-29 a la(s) 11.24.56

Salimos del editor mediante CTRL + C , le damos a Y cuando nos pregunte si queremos guardar y presionamos ENTER para confirmar que el nombre será el mismo.

Ahora que ya hemos hecho los cambios arrancamos de nuevo el cliente mediante el comando sudo /etc/init.d/transmission-daemon start

Captura de pantalla 2013-12-29 a la(s) 11.26.06

Si todo ha ido bien deberíamos poder acceder a la interfaz de Transmission entrando la dirección de la Raspberry en el navegador de cualquier otro equipo (ordenador, tablet o Smartphone) indicando el puerto 9091 (o el que pusierais en la configuración). Si accedeis desde el navegador de la propia Raspberry, entonces la dirección sería la localhost o 127.0.0.1 Si no lo habéis cambiado durante la configuración, el usuario por defecto es transmission y el password también es transmission

Captura de pantalla 2013-12-29 a la(s) 12.07.08Captura de pantalla 2013-12-29 a la(s) 12.07.17

Podéis hacer la prueba de añadir un archivo torrent y ver cómo empieza a bajar al directorio que habéis indicado por defecto. Lo bueno es que también admite magnet links.

Captura de pantalla 2013-12-29 a la(s) 12.08.40

Captura de pantalla 2013-12-29 a la(s) 12.10.21

Lo voy a dejar aquí de momento aunque seguro que hay una pregunta en vuestras cabezas: ¿cómo accedo al directorio donde se bajan los archivos? Esto lo veremos en la próxima entrada, aunque os adelanto la respuesta: SAMBA.

Primer arranque de XBian y configuración básica

Hoy por fin he encontrado un poco de tiempo para continuar donde lo dejamos, con nuestra tarjeta SD recién copiada y lista para ser insertada en la Raspberry Pi, así que a ello vamos.

Raspberry junto a la tarjeta SD y el dongle WiFiAquí podéis ver prácticamente lo único que necesitaremos para hacer funcionar nuestra Raspi como el gran gestor multimedia que esperamos que sea. El pequeño cacharrito que hay a a la izquierda es un adaptador WiFi N de la marca TP-Link que compré en Amazon por poco más de 8 € (enlace). Elegí este modelo porque en los foros de Raspberry estaba sobradamente comprobado que funcionaba correctamente sin utilizar un hub autoalimentado. Si estáis pensando en compraros un adaptador WiFi, os recomendaría que primero pasarais por allí para comprobar que es compatible, no sea que luego os llevéis un chasco.

Adaptador de corriente de una blackberryEste es (aparte del cable HDMI) el otro componente que necesitareis para darle vida a nuestra Raspi: un adaptador de corriente con toma micro usb. Esta toma es la que llevan por ejemplo las Blackberries (de donde proviene este en particular) y los Kindle de Amazon, amén de muchos otros dispositivos. Lo único que tenéis que tener en cuenta es que la potencia de salida sea de al menos 700mA, aunque se recomienda que tenga 1A. Este mío es de 700mA y de momento no me ha dado errores. Pues nada, no me enrollo, le voy vida y arrancamos.

XBian está terminando de isntalarEsta es la pantalla que veréis durante el primer arranque de XBian, mientras termina de configurar algunas cosas. Al menos la barra de progreso nos va indicando cuanto falta.

Welcome to XBianDespués de unos momentos nos aparecerá la siguiente ventana que nos indica que el sistema ha sido correctamente instalado. Además nos dice dónde debemos ir para hacer la configuración inicial de nuestra instalación.

Controlando XBMC con el mando de la teleUna de las cosas que me gusta de utilizar XBMC en la Raspberry, es que hace uso de las posibilidades bidireccionales del cable HDMI, por lo que puedo manejarlo directamente con el mando de mi televisor.

Pantalla de inicioY aquí está, la pantalla de inicio de XBMC listo para usar. Bueno… casi. Aún faltan algunos pequeños ajustes iniciales, así que a ello vamos.

System - SettingsMe voy a System – Settings para acceder a la configuración.

Configuración regionalEn la sección de Apariencia, Ajustes podemos cambiar el idioma a Español, la región a España y 12h o 24h, y el país y la zona para que coja la hora correcta. Además se puede modificar el idioma por defecto para el audio y los subtítulos, aunque esto no lo voy a cambiar (al menos de momento).

No ignorar los artículosA mi no me gusta que a la hora de ordenar las películas ignore los artículos. Es decir, me gusta que “El Hobbit” aparezca en la letra E y no en la letra H. Por suerte eso se puede cambiar fácilmente con esta opción.

Actualizar la colección en el arranqueTambién quiero que la biblioteca se actualice automáticamente en el arranque, por lo que marco también esa opción.

Control de XBMC por HTTPSi más adelante querréis manejar XBMC desde vuestro navegador o desde una aplicación para smartphone, esta es la opción que tenéis que habilitar para tal fin.

Habilitar AirplayTambién quiero que XBMC sea capaz de recibir cualquier cosa que los iPhone le manden por Airplay, así que habilito la opción pertinente.

Permitir log mediante SSHMe gusta manejar mi Raspi mediante la consola del iMac (y del iPhone) utilizando SSH, así que también habilito esta opción. Más adelante os enseñaré cómo hacer para que al hacer loggeo por SSH desde un dispositivo conocido no nos pida contraseña.

Conexion a la redUna cosa espectacular que tiene XBian es la facilidad para la conexión WiFi. Como ya tengo el dongle enchufado, aquí le dicho que la interfaz de red es la wlan0, le pongo el modo de opción de IP en DHCP (importante) y luego busco el nombre del SSID de mi router. No os podéis imaginar cómo simplifica esto el proceso de conectarse a una WiFi (gracias XBian).

El tiempo en AlcobendasPara probar que la conexión a internet está funcionando correctamente, nada tan fácil como abrir la aplicación del tiempo que viene por defecto en XBMC. Seleccionamos el municipio en el que nos encontramos (u otro cualquiera de nuestra elección) y, si nos da algo como esto, es que está funcionando.

Eso es todo de momento. Por ahora tenemos XBian instalado como sistema operativo en nuestra tarjeta SD y además lo tenemos conectado a la red. En la siguiente entrada os diré como conectarnos desde nuestro equipo a la Raspberry para otra continuar con las instalaciones y configuraciones.