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
Anuncios

Movimientos de ficheros y auto-actualizacion de librería

En este punto, lo único que me falta para terminar de automatizar todo el sistema es que los ficheros descargados se sitúen donde yo quiero, que se borren los ficheros adicionales en caso de haberlos y que la librería se actualice.

Todo ello lo haremos mediante el fichero download_complete.sh que creamos y que le indicamos a transmission en el fichero de configuración que debía de ejecutar cada vez que terminara una descarga.

A continuación os dejo el código del fichero que yo utilizo para que podáis copiarlo y modificarlo a vuestro gusto.

#!/bin/bash
#sirve para indicarle a la shell el interprete que debe usar para este script

#Se envia un email de que ha finalizado la descarga, indicando información basica
USUARIO=“<vuestro usuario de gmail>
PASSWORD=“<vuestra contraseña de gmail>
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

Un par de puntualizaciones:

  • La primera es que (obviamente) tendréis que añadir vuestro usuario y contraseña de gmail en las dos variables que he marcado en rojo.
  • También, tal como indico en un comentario, para que el script sea capaz de borrar la carpeta creada durante la descarga así como los ficheros basura, el usuario debian-transmission debe de ser sudoer. Es decir, debemos indicarle al sistema que dicho usuario puede invocar sudo. Eso se hace editando el fichero /etc/sudoers y añadiendo la linea debian-transmission ALL=(ALL) NOPASSWD: ALL. Vereis que ya hay una linea (al menos) para el usuario root, así que podéis ponerla debajo.
  • Lo último es que para actualizar la librería hago una llamada mediante curl y en mi caso al menos este no estaba instalado. A estas alturas no deberíais tener problema en saber que para instalarlo se hace mediante el comando sudo apt-get install curl.

Pues creo que eso es todo. En la próxima entrada haré un rápido resumen de todos los pasos a seguir para coger una raspberry vacía y dejarla tal como la tengo yo ahora, totalmente automatizada.