Revista Insólito

Como descargar Automaticamente Series y subtítulos en la Raspberry Pi

Publicado el 26 agosto 2015 por Eriktaveras
Como descargar Automaticamente Series y subtítulos en la Raspberry PiComo programador, una de mis aficiones es automatizar los procesos repetitivos, siendo la descarga de los capítulos seguidos semanalmente una de ellas.Tras investigar un poco me he encontrado que con una combinación bastante buena:Raspberry Pi +  Disco duro Externo + Transmission + Flexget + ShowRSS + PeriscopeLa Raspberry Pi, es el pequeño ordenador de 35$. Su pequeño tamaño y bajo consumo nos viene perfecto para tenerlo siempre conectadoUn disco duro externo nos permite gran cantidad de espacio para ir descargando, ya que la Pi utiliza una SD.Para las descargas nos basaremos en el torrent, y Trasmission nos ofrece un potente cliente en línea de comandos e interfaz web que nos permitirá controlarlo remotamente.Flexget será el encargado de obtener los torrents desde un RSS de los nuevos capítulos y añadirlos a Transmission. Además permite ordenar automáticamente las descargas finalizadas, enviar un email de notificación.ShowRSS es una web que nos permitirá crear nuestro propio RSS con las series que queramos seguir, ahorrándonos tener que recurrir a la configuración manual. Además, recientemente se ha actualizado con los capítulos de mayor calidad y nombre de archivos específicos para usar conTheTVDBFinalmente, Periscope será el encargado de buscar subtítulos a los capítulos descargados, entre otros, soporte la web Subtitulos.es que incluye gran cantidad de subtítulos en español.Lo primero será instalar todo, lo cual es bastante fácil:

12345sudo apt-get install transmission-daemon python-pipsudo pip install flexgetsudo pip install transmissionrpcsudo pip install periscopemkdir /home/pi/.config


El último comando es por un bug de periscope, que si no tiene la carpeta .config falla.Mientras se va instalando, nos registramos en http://showrss.info/Una vez registrados, añadimos las series que queramos y obtenemos nuestro feed según nuestras preferencias. En mi caso, he seleccionado solo archivos en 720p, aunque el flexget, por lo general, siempre intentará descargar los archivos con mayor calidad.Una vez instalado todo y con nuestro feed, habrá que configurar Tranmission

12sudo service transmission-daemon stopsudo nano /etc/transmission-daemon/settings.json

Bien, tendremos que configurar estos puntos (aunque los he puesto juntos, están separados) según vuestras preferencias

1234567"download-dir": "/mnt/usb/Descargas","incomplete-dir": "/mnt/usb/DescargasIncompletas","incomplete-dir-enabled": true"rpc-password": "micontraseña","rpc-username": "miusuario","rpc-whitelist-enabled": false,"umask": 0,


Pulsamos F2 y guardamos. Ahora volvemos a arrancar el Tranmissión y podremos conectarnos a él mediante la URL
http://IPRAPSBERRY:9091

1sudo service transmission-daemon start

Ahora toca hacer la magia, que es configurar el flexget.

1nano .flexget/config.yml

Aquí hay que tener cuidado, es un fichero tipo YAML por lo que el número de espacios es muy importante.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374templates:  global:  email:  from: [email protected]  to: [email protected]  smtp_host: smtp.gmail.com  smtp_port: 587  smtp_username: [email protected]  smtp_password: tupasword  smtp_tls: yes  template: accepted  tasks:  rss:  priority: 1  rss: TUURLFEED  all_series: yes  transmission:  host: localhost  port: 9091  username: 'tuusuario'  password: 'tupassword'  ratio: -1  main_file_only: yes  path: /mnt/usb/Descargas/Flexget  addpaused: no  skip_files:  - '*.nfo'  - '*.sfv'  - '*[sS]ample*'  - '*.txt'  subtitles:  priority: 4  disable_builtins: yes  find:  path:  - /mnt/usb/Descargas/Flexget  regexp:  '.*\.(mp4|mkv|avi)$'  recursive: yes  accept_all: yes     regexp:    reject:  - '.*[sS]ample.*'  periscope:  languages:  - es  overwrite: yes  sort:  priority: 5  disable_builtins: yes  find:  path: /mnt/usb/Descargas/Flexget  mask: '*.srt'  recursive: yes  accept_all: yes  seen: local  thetvdb_lookup: yes  all_series:  parse_only: yes  move:  to:  /mnt/usb/Series/{{ tvdb_series_name }}/  filename: '{{ tvdb_series_name }} - {{ series_id }} - {{ tvdb_ep_name}}{{ location | pathext }}'  clean_source: 100  along:  - mkv  - mp4  - avi  clean:  priority: 3  clean_transmission:  host: localhost  port: 9091  username: 'tuusuario'  password: 'tupassword'  finished_for: 1 hours

Lo que le estamos diciendo es:
  • Cuando se realice alguna tarea que haya terminado bien, manda un correo usando gmail (podéis configurarlo para otro servicio)
  • Obtener torrents desde este RSS y descargar todos las series que aparezcan
  • Usar Transmission para las descargas
  • Limpiar las descargas completadas del Transmission
  • Buscar subtítulos para los archivos descargados del tipo vídeo (salvo los que contengan la palabra “sample”)
  • Para cada subtítulo encontrado, buscar los datos de la serie y moverlo junto al vídeo a la carpeta correspondiente.
De esta forma, hasta que un capítulo no tenga subtítulos no será movido a la carpeta de la serie y seguirá intentando cada hora encontrar un subtítulo para ella.Flexget permite muchísimas opciones de configuración, podéis consultarlas en su Wiki.Una vez configurado, lo probamos:

1flexget execute

Si todo va bien, lo añadimos ejecutamos crontab -e y añadimos al final la siguiente línea para que cada hora busque nuevas descargas.

1@hourly /usr/local/bin/flexget execute --cron

Recomiendo que el disco duro externo esté en EXT4, el rendimiento frente a NTFS es muy grande, y evita que el Tranmissión de errores de “timeout” que puede provocar que el Flexget no lleve bien la cuenta de que capítulos ha descargado y descargue varias veces el mismo.

Volver a la Portada de Logo Paperblog