Cliente Torrent Transmission

_images/transmission.jpg

Funcionalidad

Transmission es una aplicación de escritorio que ayuda al usuario a realizar descargas de archivos torrent, de una forma sencilla y liviana.

  • Sin adicionales: Esta aplicación se diferencia de otras por no incluir paquetes de barras de herramientas, software publicitario, o cualquier otra cosa en su cabecera.
  • Transmisiones cifradas: BitTorrent cuenta con soporte para transmisiones cifradas, facilitando el envío de archivos de forma segura.
  • Auto-Ban: Este programa cuenta con la opción de bloquear mediante un ban los datos que los usuarios puedan enviar y sean falsos.
  • Límites temporales de velocidad: Transmission permite activar unos límites especiales de velocidad más restringidos, para situaciones especiales como saturación de la conexión, o si se necesita usar otras aplicaciones o procesos que hacen uso de la bajada o subida. Se pueden activar en cualquier momento o programarlos para horas y días especiales.
  • Compartir archivos: Una vez descargados se pueden compartir los archivos con otros usuarios, simplemente dejándolos activos, así el usuario está prestando el mismo servicio que el acaba de consumir.
  • Descarga selectiva: Se puede llevar a cabo una descarga selectiva, y por prioridades de los archivos, dando opción a elegir si tienen prioridad alta, normal, o baja a la hora de elegir el archivo que se adapte a las necesidades del usuario.
  • Gestionado por web: Esta aplicación permite al usuario trabajar en un entorno web, una funcionalidad muy útil para descargar y compartir tus propios archivos online.
  • Otras características: Transmission posee las funcionalidades típicas de otros clientes como modificar los límites de subida/bajada en cualquier momento, comprobar si el puerto usado está abierto, definir los números máximos de pares, etc.

Instalar Transmission

Con un solo comando ya tenemos Transmission instalado:

sudo apt-get install transmission-daemon

Configurar Transmission

Lo primero es parar el servicio:

sudo service transmission-daemon stop

Antes de configurar Transmission vamos a crear el directorio donde se guardarán las descargas:

ls /sudo mkdir /media/160GB/descargas_transmission

Además a mi me gusta guardar las descargas incompletas o en proceso de completarse en una carpeta aparte, así minimizo la probabilidad de eliminar o mover las descargas en curso, lo que haría que dejaran de funcionar:

sudo mkdir /media/160GB/incompletas_transmission

Damos permisos a los usuarios y carpetas para que Transmission pueda leer y escribir en ellas sin problemas:

sudo chown -R pi:debian-transmission /media/160GB/descargas_transmission
sudo chown -R pi:debian-transmission /media/160GB/incompletas_transmission

sudo chmod -R 777 /media/160GB/descargas_transmission
sudo chmod -R 777 /media/160GB/incompletas_transmission

Y ahora abrimos el fichero de configuración:

sudo nano /etc/transmission-daemon/settings.json

Al ver tal cantidad de parámetros podemos asustarnos un poco, pero no pasa nada, casi todos definen bien lo que hacen y, sobre todo, hay muchos gestores externos que nos ayudan visualmente a modificar casi todos los parámetros, o al menos los más importantes. Así que aquí vamos a tratar lo básico para poder acceder externamente a la configuración y poder afinarlo visualmente que siempre es más cómodo.

Con estas dos líneas le indicamos a Transmission dónde queremos que guarde lo que descarguemos y las descargas en curso.

"download-dir": "/media/160GB/descargas_transmission",
"incomplete-dir": "/media/160GB/incompletas_transmission",

Y con estas líneas configuramos el acceso remoto:

"rpc-authentication-required": true,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-password": "j72x6kxx1fnpjkz9difeu1harx0v0oudwxsfzwuo8j0r8",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "pi",
"rpc-whitelist": "0.0.0.0",
"rpc-whitelist-enabled": false,

RPC es el protocolo que nos permite conectarnos a Transmission desde fuera (vía web o vía App). Casi todo es bastante intuitivo, pero básicamente hay que dejarlo como yo lo tengo haciendo especial mención al rpc-password, que viene codificado, pero por defecto es transmission, si lo cambias puedes poner lo que quieras sin codificar. Del resto es importante poner a false el rpc-whitelist-enabled para poder conectarte desde cualquier IP en la que te encuentres.

Con esto es suficiente. Si además quieres modificar las velocidades de subida y bajada, el modo “lento” o la cola de descargas (que yo tengo deshabilitada), no creo que tengas problemas en detectar cuales son los parámetros que debes cambiar, pero como ya he dicho, todo eso se puede hacer visualmente vía web o vía app.

Finalmente vamos a iniciar el servicio que paramos antes:

sudo service transmission-daemon start

Desde este momento podremos acceder a Transmission desde cualquier dispositivo conectado a la misma red donde esté la Raspberry Pi. Para ello, lo más fácil es abrir un navegador y escribir:

http://192.168.1.10:9091

Donde 192.168.1.10 es la IP fija que le pusimos a la RasPi al final del paso 2 y 9091 es el puerto que pusimos en rpc-port del fichero settings.json aquí arriba. Nada más acceder te pide usuario y contraseña, lo pones, y aparece una web muy simple desde la cual puedes manejar casi cualquier cosa del Transmission. Es todo muy intuitivo, pero si no sabes para que sirve algún botón con dejar el ratón por encima sale una pequeña descripción.

Lo importante: de la parte de arriba, el icono de la carpeta sirve para añadir torrents. De la parte de abajo, con la rueda dentada cambias puntualmente los límites de velocidad de subida y bajada pero con la llave inglesa configuras las velocidades a nivel global, además de la mayoría de parámetros extra como la ruta donde se descargan los torrents, las velocidades alternativas (para cuando quieres que el Transmission no te chupe toda la conexión), o el puerto de escucha que sería bueno que tuvieras abierto en el router. Además el icono de la tortuga cambia entre la velocidad normal y la lenta.

La versión web de Transmission no da para mucho más y, en general, es suficiente. Si quieres otras características ya tendrás que instalar un software en el ordenador, o una app en tu dispositivo móvil. Como software yo aconsejo Transmission Remote GUI, que tiene versiones para Linux, Windows y Mac y es muy completo además de gratuito. Como app para Android yo utilizo Remote Transmission, que es probablemente la menos vistosa pero a mi es la que mejores sensaciones me ha dejado. En iOS, Windows Phone, etc. habrá también apps para el mismo efecto.

Cambiar carpeta de Descargas

En ocasiones después de tener Transmission un tiempo funcionando, nos compramos un nuevo disco duro para alojar nuestras descargas. Para evitar que nos de errores, vamos a configurar correctamente los permisos de escritura en la nueva ubicación

Paso 1: Paramos el servicio Transmission

sudo service transmission-daemon stop

Paso 2: Añadir usuario pi al grupo debian-transmission

sudo usermod -a -G debian-transmission pi

Paso 3: Cambiamos el usuario a pi

sudo nano /etc/init.d/transmission-daemon

Paso 4: Cambiar los derechos de acceso a las carpetas de configuración

sudo chown -R pi /var/lib/transmission-daemon/info/
sudo chmod 755 /var/lib/transmission-daemon/info/settings.json

Paso 5: Configurar los permisos en la carpeta de descargas incompletas.

sudo chown -R pi:debian-transmission /media/160GB/descargas_transmission
sudo chown -R pi:debian-transmission /media/160GB/incompletas_transmission

Paso 6: Arrancar el servicio Trasnmissión

sudo service transmission-daemon start

Para finalizar, recomiendo que edites, con credenciales elevadas, el archivo /etc/default/transmission-daemon y modifiques la última línea para que quede así:

START_STOP_OPTIONS="--iosched idle --nicelevel 19"

Fíjate que la línea original está comentada, así que tienes que quitarle el símbolo # y cambiar el nicelevel de 10 a 19.

Una vez guardado el archivo, inicia de nuevo el servicio con el comando:

sudo service transmission-daemon start

Recibir un email al finalizar las descargas

Algo muy interesante que podríamos añadir ahora es la posibilidad de recibir un correo electrónico cuando se hayan descargado cada uno de los torrents que se están bajando. Dicho correo nos indicará el nombre del fichero o carpeta que se acaba de descargar en nuestra Raspberry.

Paramos el servicio:

sudo service transmission-daemon stop

Vamos a editar el fichero de configuración:

sudo nano /var/lib/transmission-daemon/info/settings.json

y a modificar estas dos líneas, de manera que queden así:

"script-torrent-done-enabled": true,
"script-torrent-done-filename":"/usr/local/bin/aviso.sh",

Creamos (en la ruta indicada en la línea anterior) el fichero que enviará el aviso por email:

cd /home/pi/scripts/
sudo nano aviso.sh

cuyo contenido será este:

#!/bin/bash
echo "$TR_TORRENT_NAME descargado" | mail -s "Transmission" micorreo@gmail.com

Ahora le cambiamos los permisos y el dueño al archivo que acabamos de crear:

sudo chmod 755 aviso.sh
sudo chown pi aviso.sh

No debemos olvidar reiniciar el servicio antes de poder usar Transmission de nuevo:

sudo /etc/init.d/transmission-daemon restart