Raspberry Pi; Montando algo más que un media center (parte 3)

Esta es la tercera entrada del tutorial Raspberry Pi; Montando algo más que un media center.
Puedes acceder desde aquí al resto de entradas de este tutorial publicadas hasta la fecha:

Instalación del cliente bittorrent: Transmission

Transmission (Web Oficial) es un pequeño cliente bittorrent que instalaremos y configuraremos para que corra en la distribución linux, gestionaremos las descargas mediante su interfaz Web.
Para instalar transmission utilizaremos apt-get vía SSH:

sudo apt-get update
sudo apt-get install transmission-daemon

Alternativamente también puedes optar por la versión más ligera que han compilado la gente de xbian:

sudo apt-get install xbian-package-transmission

Esto dejará instalado y funcionando el servicio Transmission.

[themoneytizer id=»16871-1″]

 

Varios comandos útiles:

  • Detener el servicio transmission:
    sudo service transmission-daemon stop
  • Iniciar el servicio transmission:
    sudo service transmission-daemon start
  • Reiniciar el servicio transmission:
    sudo service transmission-daemon restart
  • Comprobar el estado actual del servicio:
    sudo service transmission-daemon status
  1. Configuración de transmission y permisos:

    Antes de hacer totalmente funcional el servicio tenemos que editar el archivo de configuración:

    1. Detenemos primero el servicio para poder editar la configuración:
      sudo service transmission-daemon stop
    2. Abrimos el archivo para editarlo:

      /etc/transmission-daemon/settings.json

      Yo para editar estos ficheros uso FileZilla con el puerto y las credenciales del SSH por SFTP.
      Y editamos los siguientes valores:

      • download-dir: Carpeta donde transmission guardará las descargas.
      • incomplete-dir: Carpeta donde transmission guardará los archivos incompletos.
      • incomplete-dir-enabled: Poner a true para que transmission utilice la carpeta incomplete-dir.
      • peer-port: El puerto que utiliza tranmission para descargar torrents, se debe configurar en las NAT del router.
      • rpc-username: Nombre de usuario de la interfaz Web.
      • rpc-password: Contraseña de la interfaz Web, la escribimos plana que transmission ya se encargará de encriptarla al próximo incicio.
      • rpc-port: Puerto de la interfaz Web.
      • rpc-whitelist-enabled: Importante ponerlo en false si queremos acceder a la interfaz Web desde cualquier ip.

      Estos son los que yo considero más importantes, pero échale un ojo a todas las variables, son muy intuitivas.

      Tienes la explicación completa de todas las variables en el siguiente enlace: https://trac.transmissionbt.com/wiki/EditConfigFiles (inglés).

    3. Cambiamos el usuario que iniciará transmission modificando el fichero:

      /etc/init.d/transmission-daemon

      Cambiamos el valor de USER a root, si no hacemos esto transmission lanzará un error de permisos al iniciar las descargas.

    4. Ahora ya podemos volver a arrancar transmission con la nueva configuración:
      sudo service transmission-daemon start

    La interfaz Web de transmission ya debería funcionar, en mi caso sería: http://192.168.1.50:9091.

    Almacenar las descargas en disco USB o Pendrive:

    XBian monta automáticamente los discos usb, si lanzamos el siguiente comando:

    df -h

    Podremos ver nuestra unidad en el listado, algo como /media/usb0.

    Esta es la ruta de nuestro disco, con acceso root.

    [themoneytizer id=»16871-1″]

     

    Almacenar las descargas en una unidad de red SMB:

    Nota: es necesario haber instalado antes Samba, se explica en este mismo tutorial, un poco más arriba.

    1. Crear una carpeta vacía donde veremos el contenido de la unidad de red:
      mkdir -p /mnt/descargas

      Reemplaza descargas por el nombre que quieras para tu carpeta.

    2. Editar el fichero /etc/fstab, añadimos la siguiente linea al final:
      //192.168.1.40/descargas /mnt/musica cifs user=admin,pass=1234,rw 0 0

      La primera ruta corresponde a la ruta de la carpeta SMB remota, la segunda es la que hemos creado previamente, cambia los valores de user y pass por los correspondientes.

    3. Ahora solo falta recargar fstab para que haga efecto sin tener que reiniciar:
      mount -a

      Ya tenemos montada la carpeta remota descargas en /mnt/descargas, podemos probarlo listando el contenido por ejemplo:

      ls /mnt/descargas

      Podemos ver todas las unidades montadas con el comando:

      df -h

      Que producirá un listado similar a:

      Filesystem Size Used Avail Use% Mounted on
      rootfs 15G 941M 14G 7% /
      /dev/mmcblk0p2 15G 941M 14G 7% /
      tmpfs 38M 280K 38M 1% /run
      tmpfs 5.0M 0 5.0M 0% /run/lock
      tmpfs 10M 0 10M 0% /dev
      tmpfs 75M 0 75M 0% /run/shm
      /dev/mmcblk0p1 34M 11M 24M 32% /boot
      //192.168.1.50/series 3.7T 2.5T 1.2T 68% /mnt/series
      //192.168.1.50/peliculas 3.7T 2.5T 1.2T 68% /mnt/peliculas
      //192.168.1.50/musica 3.7T 2.5T 1.2T 68% /mnt/musica
      //192.168.1.50/descargas 3.7T 2.5T 1.2T 68% /mnt/descargas
      //192.168.1.50/incoming 3.7T 2.5T 1.2T 68% /mnt/incoming
      //192.168.1.50/juegos 3.7T 2.5T 1.2T 68% /mnt/juegos
      //192.168.1.50/software 3.7T 2.5T 1.2T 68% /mnt/software

      En mi caso, utilizo incoming para almacenar los archivos temporalmente mientras se descargan, una vez completados (y si no está flexget de por medio) pasan a descargas, de todo esto se encarga transmission.

    Automatizando las descargas con Flexget

    Flexget (Web Oficial) es un servicio que se ejecutará con la frecuencia que parametricemos y buscará en las fuentes rss que especifiquemos contenido que coincida con los criterios configurados para añadirlos a transmission, también es posible mover ficheros una vez completados así como enviar notificaciones, el formato del fichero de configuración de bastante complejo por lo que goza de muchas posibilidades y con una simple búsqueda en Google aparecen cientos de ejemplos.

    Veamos como instalar Flexget en XBian:

    1. Instalar flexget:
      sudo apt-get update
      ssudo apt-get install python-pip
      sudo pip install flexget

      Atualizamos el módulo python de transmission:

      sudo easy_install –upgrade transmissionrpc

      Si todo ha ido bien obtendremos la versión lanzando el siguiente comando:

      flexget -V

      Debería respondernos con un You are on the latest release conforme tenemos la última versión de flexget instalada.

    2. Archivo de configuración:
      Creamos una carpeta para el archivo de configuración:

      mkdir /root/.flexget

      Ahora tenemos que crear un archivo de configuración en esa ubicación (/root/.flexget) siguiendo el protocolo descrito en la Web Oficial: http://flexget.com/wiki/Configuration.

      Aquí pongo un ejemplo de un archivo de configuración que revisa tu cuenta de showRSS buscando los episodios nuevos de las series allí configuradas y los añade a transmission, luego envía un email con los torrent añadidos. Se pueden hacer maravillas con este archivo de configuración, internet está lleno de ejemplos y cada uno tiene sus necesidades, así que este queda como un mero ejemplo:

      1. Regístrate en showRSS: http://showrss.karmorra.info/.
      2. Añade tus series en la pestaña Your Shows.
      3. Consigue tu identificador accediendo a feeds ? your feed address ? Generate, verás el user_id en la URL del RSS (un número de 6 dígitos normalmente).
      4. Creamos el fichero config.yml en la ruta /root/.flexget/ modificando los valores de las variables por los que correspondan a tus credenciales del correo, tu cuenta de tranmission, tus series y demás, he marcado en rojo los valores que deberías modificar:
        presets:
        global:
        # Configuración de los parámetros del correo
        # Puedes deshabilitar el envio estableciendo: active a False.
        email:
        active: True
        from: tucorreo@gmail.com
        to: tucorreo@gmail.com
        smtp_host: smtp.gmail.com
        smtp_port: 587
        smtp_login: true
        smtp_username: tucorreo@gmail.com
        smtp_password: tupassworddecorreo
        smtp_tls: true
        tasks:
        download-rss:
        rss: http://showrss.karmorra.info/rss.php?user_id=tu_id_de_showRSS
        all_series: yes
        # Limita a 10 el número de espisodios (por cada llamada)
        limit_new: 10
        # Configuración del servidor transmission
        transmission:
        host: localhost
        port: 9091
        username: tu_usuario_de_transmission
        password: tu_password_de_transmission
        removewhendone: no
        sort-files:
        find:
        # Descargas de transmission
        path: /mnt/descargas/
        regexp: ‘.*\.(avi|mkv|mp4)$’
        accept_all: yes
        seen: local
        thetvdb_lookup: yes
        all_series:
        parse_only: yes
      5. Creamos una tarea cron para que se ejecute el script de flexget una vez cada hora:
        crontab -e

        y añadimos la siguiente linea al final del fichero (Ctrl+X para grabar y salir):

        @hourly /usr/local/bin/flexget –cron

        Puedes aprender más sobre como funciona cron en este artículo: Cron & Crontab, explicados.

    Pronto la cuarta entrega…

    [themoneytizer id=»16871-2″]

     

    Esta es la tercera entrada del tutorial Raspberry Pi; Montando algo más que un media center.
    Puedes acceder desde aquí al resto de entradas de este tutorial publicadas hasta la fecha: