Como 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 + Periscope
La Raspberry Pi, es el pequeño ordenador de 35$. Su pequeño tamaño y bajo consumo nos viene perfecto para tenerlo siempre conectado
Un 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 conTheTVDB
Finalmente, 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:
1
2
3
4
5
| sudo apt-get install transmission-daemon python-pip sudo pip install flexget sudo pip install transmissionrpc sudo pip install periscope mkdir /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
1
2
| sudo service transmission-daemon stop sudo nano /etc/transmission-daemon/settings .json |
Bien, tendremos que configurar estos puntos (aunque los he puesto juntos, están separados) según vuestras preferencias
1
2
3
4
5
6
7
| "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
http://IPRAPSBERRY:9091
1
| sudo service transmission-daemon start |
Ahora toca hacer la magia, que es configurar el flexget.
1
| nano .flexget /config .yml |
Aquí hay que tener cuidado, es un fichero tipo YAML por lo que el número de espacios es muy importante.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
| templates: global: email: from: tucorreoqueenvia@gmail.com to: tucorreoquerecibe@gmail.com smtp_host: smtp.gmail.com smtp_port: 587 smtp_username: tucorreoqueenvia@gmail.com 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 - mp 4 - 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:
1
| flexget 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.
0 comments:
Publicar un comentario
Deja tu Comentario: