Articulo resumen y guía rápida

  1. Instalar Raspbmc en la tarjeta SD mediante el método que más nos guste. Enlace: http://www.raspbmc.com/download/
  2. Iniciar el sistema conectado con el cable de red y todos los discos enchufados, y esperar a que termine de configurarse.
  3. Conectar el dongle WiFi y reiniciar habiendo desconectado el cable de red.
  4. Configuración adicional de XBMC:
    1. Habilitar bob light support (para hacer un ambilight en el futuro).
    2. Cambiar región.
    3. Cambiar país.
    4. Deshabilitar Ignorar los artículos al ordenar (cuestión de gustos).
    5. Habilitar Permitir el renombrado y borrado de archivos (para poder borrar archivos después de verlos).
    6. Habilitar Actualizar la colección en el arranque (nunca viene mal).
    7. Seleccionar la acción por defecto: mostrar información (nuevamente, cuestión de gustos).
    8. Idioma de subtitulo preferido: english (cada cual que elija el idioma que quiera).
    9. Servicio de tv por defecto: conseguir más > opensubtitles.org > instalar (para poder bajar los subtítulos de las series).
    10. Seleccionar ubicación para el tiempo (me gusta poder ver la previsión).
    11. Instalar Add-on de Youtube (para poder ver los trailers).
    12. Habilitar AirPlay (aunque aun no he sido capaz de hacerlo funcionar).
  5. Reiniciar el sistema para aplicar los cambios.
  6. Añadir los vídeos a la biblioteca indicando si las carpetas son de series o de películas. Enlace: Añadir contenido a XBMC
  7. Revisar si hay series o películas que ha cogido mal o no ha reconocido y arreglarlo.
  8. Actualizar el sistema mediante el comando sudo apt-get update && sudo apt-get upgrade
  9. Instalar transmission mediante el comando sudo apt-get install transmission-daemon Enlace: Instalación de transmission
  10. Parar transmission-daemon mediante sudo /etc/init.d/transmission-daemon stop para configurar el fichero /var/lib/transmission-daemon/info/settings.json y luego re-arrancarlo con sudo /etc/init.d/transmission-daemon start
  11. Instalar sendemail mediante el comando sudo apt-get install libio-socket-ssl-perl libnet-ssleay-perl perl sendemail Enlace: Recibir un email al finalizar una descarga
  12. Arreglar sendemail con sudo nano +1907 /usr/bin/sendemail y modificar la linea donde dice SSLv3 TSLV1 para dejar solamente SSLv3
  13. Instalar flexget mediante sudo apt-get install python python-setuptools ; sudo easy_install flexget mechanize transmissionrpc
  14. Comprobar que flexget se ha instalado bien ejecutando flexget -V
  15. Crear un directorio de configuracion de flexget con mkdir /home/pi/.flexget y editar la configuracion con nano /home/pi/.flexget/config.yml
  16. Editar el fichero config.yml para que envíe un email al encontrar un fichero, la frecuencia del daemon y añadir todas las series a seguir. Enlace: Instalación de flexget y configuración (I): series.
  17. Comprobar la sintaxis de la configuracion mediante flexget check
  18. Hacer un test de descarga mediante flexget –test execute
  19. Indicar el punto donde tiene que empezar a descargar las series mediante flexget series begin “<SERIE>” S<temporada>E<capitulo>” Enlace: Cómo decirle a flexget que ya hemos visto un capítulo
  20. Iniciar el daemon mediante flexget daemon start -d Enlace: FlexGet en Daemon mode y Scheduling
  21. Instalar curl
  22. Configurar fichero de download_complete para mover los archivos .mkv, borrar carpeta bajada y actualizar la librería con curl. Enlace: Movimientos de ficheros y auto-actualizacion de librería
  23. Ejecutar ssh-keygen para generar las claves y añadir la clave pública de nuestro equipo al archivo /home/pi/.ssh/authorized_keys de la raspberry. Enlace: Utilización de claves pública y privada

 

Contenido fichero download_complete.sh

#!/bin/bash

#Se envia un email de que ha finalizado la descarga
USUARIO="<usuario>"
PASSWORD="<contraseña>"
DIRECCION="$USUARIO@gmail.com"
ASUNTO="[Transmission] Descarga finalizada"
MENSAJE="Se ha completado la descarga del trabajo \n$TR_TORRENT_NAME\nHora: $TR_TIME_LOCALTIME\nFolder: $TR_TORRENT_DIR\nID: $TR_TORRENT_ID"
SERVIDOR="smtp.gmail.com:587"
sendemail -f $DIRECCION -t $DIRECCION -u $ASUNTO -m $MENSAJE -s $SERVIDOR -xu $USUARIO -xp $PASSWORD -v -o username=$USUARIO -o password=$PASSWORD -o tls=yes

#mueve los ficheros mkv de la carpeta de descarga a su carpeta padre
find "$TR_TORRENT_DIR/$TR_TORRENT_NAME" -name "*.mkv" ! -name *sample* -exec mv {} "$TR_TORRENT_DIR" \; | logger

#borra los archivos y carpetas que no son mkv de la carpeta de descarga
find "$TR_TORRENT_DIR/$TR_TORRENT_NAME" ! -name "*.mkv" -exec sudo rm -r {} \; | logger #debian-transmission tiene que ser sudoer para borrar

#Actualizacion de la libreria de video
curl --data-binary '{ "jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "mybash"}' -H 'content-type: application/json;' http://localhost/jsonrpc

 

Contenido fichero config.yml

schedules:
 - tasks: '*'
 interval:
 hours: 2

tasks:

  tv-shows:
    series_premiere: no

    email:
      from: <usuario>@gmail.com
      to: <usuario>@gmail.com
      smtp_host: smtp.gmail.com
      smtp_port: 587
      smtp_username: <usuario>
      smtp_password: <contrasena>
      smtp_tls: yes

    transmission:
      path: /media/e864a2d9-5479-41a6-852f-4dbd2166cd12/tvshows
      host: localhost
      port: 9091
      username: transmission
      password: <contraseña de transmssion>
      addpaused: no

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

    thetvdb_lookup: yes

    quality: 720p HDTV h264

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

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

    series:
      - 12 Monkeys:
        path: "/media/My\ Book/tvshows/12 Monkeys"
        set:
          tvdb_id: 272644
      - 2 Broke Girls:
        path: "/media/My\ Book/tvshows/2 Broke Girls"
        set:
          tvdb_id: 248741

Recibir un email al finalizar una descarga

Sé que os había dicho que os hablaría de Samba, pero en esta entrada voy a explicaros de forma sencilla cómo hacer que transmission nos mande un email cuando finalice una descarga. Quizás para algunos no sea interesante, pero a mi me gusta despertarme por las mañanas y ver cuántas cosas se han descargado durante la noche.

Si recordáis la entrada anterior en la que modificamos la configuración de transmission después de su instalación (settings.json), una de las lineas nos permitía indicarle un fichero a ejecutar cada vez que finalice una descarga (script-torrent-done-filename). Pues eso es lo que vamos a usar.

Lo primero que hay que hacer (como siempre) es conectarnos a la Raspberry mediante ssh xbian@[dirección IP]

Captura de pantalla 2014-01-05 a la(s) 21.11.26

En la configuración de transmission yo ya había dejado indicado dónde se encontraba el fichero a ejecutar. Si no lo hicisteis, es buen momento para mirar la entrada anterior para ver cómo cambiarlo.

El envío de los emails lo vamos a hacer mediante el comando sendemail. En XBian no viene instalado por defecto, por lo que tenemos que hacerlo. Además, dicho comando utiliza ciertas librerías de Perl que tampoco están instaladas, así que podemos aprovechar a instalarlo todo junto mediante la ejecución de sudo apt-get install libio-socket-ssl-perl libnet-ssleay-perl perl sendemail No pasa nada si lo ejecutamos y resulta que ya estaban instalados.

Captura de pantalla 2014-01-05 a la(s) 21.15.38

Captura de pantalla 2014-01-05 a la(s) 21.15.53

Ahora debemos crear un fichero ejecutable donde indicaremos el comando para el envío del email. En mi caso me he creado una carpeta llamada scripts, y ahí voy a crear un fichero llamado download_complete.sh donde iré añadiendo cosas que quiero que se ejecuten al terminar una descarga. Para crear el fichero usamos el comando sudo nano download_complete.sh

Captura de pantalla 2014-01-05 a la(s) 21.24.23

Voy a indicaros la cadena que habrá que escribir dentro del fichero y a continuación os la explico paso a paso:

sendemail -f torrated@gmail.com -t torrated@gmail.com -u "[Transmission] Descarga finalizada" -m "Se ha completado la descarga del trabajo \n$TR_TORRENT_NAME\nHora: $TR_TIME_LOCALTIME\nFolder: $TR_TORRENT_DIR\nID: $TR_TORRENT_ID" -s smtp.gmail.com:587 -xu torrated -xp <CONTRASEÑA> -v -o username=torrated -o password=<CONTRASEÑA> -o tls=yes

Captura de pantalla 2014-01-05 a la(s) 21.25.14

  1. sendemail <-nombre del comando
  2. -f <remite>@gmail.com <-(From) direccion que envía
  3. -t <destino>@gmail.com <-(To) direccion de destino
  4. -u “[Tramission] Descarga finalizada” <-Asunto del email. Importante que esté entre comillas dobles.
  5. -m <-Lo que viene después es el texto del email, que también deberá estar entre comillas dobles.
  6. “Se ha completado la descarga del trabajo\n <-\n sirve para hacer salto de linea.
  7. $TR_TORRENT_NAME\n <-esta variable es el nombre del torrent descargado.
  8. Hora: $TR_TIME_LOCALMACHINE\n <-hora de finalización de descarga.
  9. Folder: $TR_TORRENT_DIR\n <-carpeta donde se ha descargado.
  10. ID: $TR_TORRENT_ID” <-número de ID de la descarga en la cola. Ojo, que aquí ya hay que cerrar las comillas.
  11. -s smtp.gmail.com:587 <-servidor de SMTP y puerto. Si no es gmail será diferente.
  12. -xu <usuario> <-usuario de gmail para enviar el email. Será igual a remite.
  13. -xp <contraseña> <-contraseña del usuario de gmail.
  14. -v <-(Verbose) para detallar más información en caso de fallo.
  15. -o username=<usuario> <-otra vez el usuario
  16. -o password=<password> <-otra vez la contraseña
  17. -o tls=yes <-para autenticación segura de gmail

Los campos que he marcado como <azul> son los que tendríais que modificar con vuestros propios datos. Básicamente son el usuario y contraseña. Yo en mi caso tengo puestos como dirección de origen y de destino la misma.

Una vez tenemos puesta la cadena de envío, salimos de nano utilizando CTRL+X , después le damos Y para confirmar que queremos guardar y finalmente ENTER para el nombre del fichero.

Ahora ya tenemos el fichero creado pero tenemos que hacerlo ejecutable ya que si no transmission no podría hacer nada con él. Podemos ver que por defecto los permisos que tiene un fichero creado con nano son de lectura y modificación para el propietario haciendo ls -l

Captura de pantalla 2014-01-05 a la(s) 23.28.02

Vemos que efectivamente los permisos son -rw-r–r–, que significa:

  1. <-es un archivo. Si fuera directorio sería una una d.
  2. rw- <-permisos de lectura y escritura para el propietario.
  3. r– <-permiso de solo lectura para el grupo.
  4. r– <-permiso de lectura para el resto (other).

Para que no haya líos a mi me gusta ponerle permisos de ejecución para todo el mundo, lo que se logra fácilmente con el comando sudo chmod +x download_complete.sh

Si hacemos de nuevo un listado mediante ls -l vemos que ahora aparece una x en todas las ternas, lo que significa ejecución.

Captura de pantalla 2014-01-05 a la(s) 23.29.43

Lo siguiente que podemos hacer es probar nuestro script, y para ello nada tan fácil como escribir sh seguido del nombre del fichero.

Captura de pantalla 2014-01-05 a la(s) 23.34.23

En este punto me he encontrado que a veces, igual que en este caso, puede darnos un error: invalid SSL_version specified at /usr/share/perl5/IO/Socket/SSL.pm line 332

Creo que este error viene dado por un problema de incompatibilidad entre TTL y la versión de Perl instalada. La forma de solucionarlo es editar el fichero de sendemail mediante sudo nano /usr/bin/sendemail y luego modificar la linea donde dice SSLv3 TSLV1 para dejar solamente SSLv3. En mi caso la linea era la 1907, pero en vuestro caso puede variar. Para editar el fichero directamente en la linea que queremos podemos usar el comando sudo nano +1907 /usr/bin/sendemail

Captura de pantalla 2014-01-05 a la(s) 23.38.37

Captura de pantalla 2014-01-05 a la(s) 23.41.07

Ahora podemos volver a hacer la prueba de email lanzando de nuevo nuestro comando.

Captura de pantalla 2014-01-05 a la(s) 23.42.50

Aquí vemos que ahora el email ha salido, por lo que solamente nos faltaría irnos a nuestra bandeja de entrada y comprobar que efectivamente está ahí. Prometo que el próximo día os cuento cómo crear carpetas compartidas para que podamos acceder a ellas desde nuestra red local.

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.