CULTURA IMPROVISADA A SU ALCANCE

  • Ultimas Noticias

    8.26.2015

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

    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
    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
            - 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:
    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.

    No hay comentarios:

    Publicar un comentario

    Deja tu Comentario: