Crear un bot de telegram para automatizar las descargas con Transmission

Crear un bot de telegram para automatizar las descargas con Transmission

Este tutorial consta de las siguientes partes:

  • creación del bot
  • configuración de este
  • prueba de funcionamiento con Download Station
  • instalación de Transmission
  • automatización de transmission

Datos que vamos a necesitar:

  • id de usuario y de grupo de nuetro NAS
  • id de usuario de telegram
  • token de nuestro bot
  • cambiar la provacidad de nuestro bot

ID de nuestro usuario y grupo de nuestro NAS


Como tenemos que obtenerlo a través de un terminal, lo primero que tendremos que hacer será habilitar en el NAS el acceso por ssh.
Para ello accedemos a nuestro NAS a través de un navegador .
Una vez dentro, iremos al panel de control.

Si estas en DSM 6 vamos a TERMINAL Y SNMP. En DSM 7 está en el apartado de conectividad.

Marcamos el check de HABILITAR SERVICIOS SSH y aprovechamos para cambiar el puerto por defecto que será el 22. Hay que tener cuidado que no coincida con otro y que nos sea fácil de recordar. Cualquier atacante que quiera entrar por ssh buscará en el puerto 22, así que es una medida más de seguridad adoptar

Acceso al NAS a través de terminal

Si estas en Windows, lo más recomendable es que entres por una aplicación que se llama PUTTY

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Si usas un Mac, presionas las teclas cmd+espacio y en la barra escribimos TERMINAL y pulsamos intro y nos saldrá una ventana de terminal lista para usar.

Para entrar al NAS

Vamos a necesitar los datos de acceso al NAS, es decir, USUARIO Y PASSWORD. En el terminal tenemos que escribir ssh nuestrousuario@nuestraiplocal delNAS -p numerodepuertoelegido

Sería algo así ssh [email protected] -p 22

Pulsamos INTRO y nos pide una password, es la password de acceso al NAS. La introducimos, pero ojo, que no la vemos en pantalla y pulsamos INTRO

Si el usuario y la contraseña son correctas ya estaremos dentro del NAS. Lo sabremos porque nos pondrá un inicio de línea de terminal del tipo fulanito@DS918 o similar.

Introducimos la palabra id y pulsamos INTRO.

Con ello obtenemos los datos necesarios PUID y PGID

Creación del bot y configuración


Lo primero es conocer nuestro id en Telegram.

Para ello vamos a buscar un bot que se llama https://t.me/userinfobot

Iniciamos una conversación con él, mediante el comando /start si no nos ha facilitado automáticamente nuestro ID.

Nos debe facilitar nuestro número de usuario en Telegram

Creación de nuestro bot

Buscamos al bot necesario para la creación, en la barra de búsqueda ponemos @BotFather

Iniciamos la conversación con él y le escribimos el comando

/newbot

Nos pide que le demos un nombre (PruebasDeDescargas, en este caso) y luego el nombre de usuario de Telegram, que tiene que acabar en bot (GrupoSynology_bot, en nuestro caso).

Nos da un HTTP API, que es lo que nos interesa. Lo copiamos con la demás información.

No hemos acabado aún.

Le cambiamos la privacidad al bot para que podamos enviarle mensajes.

Para ello en la misma conversación ponemos /setprivacy

Nos preguntará por el bot, elegimos el nuestro y nos dirá que su privacidad esta ENABLED y que si queremos modificarla.

Seleccionamos DISABLED y nos lo confirma.

Hacemos una búsqueda de nuestro bot creado

Iniciamos una conversación con él.

Volvemos a nuestro NAS

Y comenzaremos con la creación del docker para nuestro bot.

Si no tienes docker instalado, el lo primero que tenemos que hacer.

Vamos a MENÚ y elegimos CENTRO DE PAQUETES.

En el buscador escribimos DOCKER e instalamos.

Si no te aparece, puede ser que tu NAS sea de una gama que no permite la instalación de DOCKER

Entramos a la app.

Vamos a la pestaña registro y en la barra de busqueda escrbimos telethon

Elegimos el contenedor de jsavargas/telethon_downloader y hacemos doble click en ella para realizar la descarga

Se nos abrirá una ventana de diálogo en el que preguntará qué versión queremos instalar .

Seleccionamos LATEST y le damos a aceptar.

Se pondrá a descargar la imagen del docker.

Mientras podemos ir a File Station en nuestro NAS y crear las carpetas necesarias para mantener la información del docker aislada por si acaso hubiese algún problema de configuración.

Dentro de File Station, vamos a crear una carpeta en docker que vamos a llamar botdescargas

Entramos a esta carpeta y creamos tres subcarpetas con los nombres que os dejo por aquí, como por ejemplo, config, descargas y vigilante.

Esperamos un poco a su descarga y una vez haya terminado, le hacemos doble click en la imagen del Docker.

Vamos a la configuración del contenedor.

1.-Seleccionamos el nombre que le queramos dar al contenedor.

2.-Pulsamos en CONFIGURACION AVANZADA

Vamos a ir haciendo la configuración por orden de pestañas.

En la de CONFIGURACIÓN AVANZADA, sólo hay que seleccionar el check de

HABILITAR REINICIO AUTOMÁTICO.

En la ventana VOLUMEN

1.-Pulsamos en al botón AGREGAR CARPETA

2.-Tendremos que ir mapeando las rutas de las carpetas de nuestro NAS con las rutas del contenedor. Tras darle al botón de agregar carpeta, navegaremos hacia la primera de las tres subcarpetas creadas.

3.- La seleccionamos y veremos que se pone en la parte de ARCHIVO/CARPETA.

5.-Vamos a RUTA DE MONTAJE y escribimos /config para la ruta de la subcarpeta config, /download para la ruta de la subcarpeta descargas, y /watch para la ruta de la subcarpeta vigilante.

En RED marcamos el check de UTILICE LA MISMA RED QUE DOCKER HOST

Al seleccionar esta opción, ya no tenemos que configurar nada en la pestaña CONFIGURACION DE PUERTOS, ni en la pestaña LINKS

En la pestaña de Medio Ambiente (Variables de entorno) tendremos que agregar unas variables.

Antes de meter estas variables, abriremos una pestaña en el navegador de internet y nos iremos a la página https://my.telegram.org/auth Introducimos nuestro número de teléfono y pulsamos en NEXT.

Introduciremos la clave que nos llega por Telegram y una vez introducido, iremos al apartado API Development Tools y tendremos que darle un nombre a nuestra app y también un nombre corto.

Una vez hecho esto, los valores que nos interesa anotar para ponerlo en las variables son los valores App api_id y App api_hash. Pulsaremos en el botón Save Changes.

Copiamos esos valores en la nota en la que teníamos anotados los anteriores datos que os comenté que os iban a hacer falta.

Volvemos a la pestaña donde estábamos configurando el contenedor y empezamos a introducir variables pulsando sobre el botón agregar.

Las variables a introducir son las siguientes:

  • PUID , el que obtuvimos al entrar al NAS y pusimos ID.
  • PGID, el que obtuvimos al entrar al NAS y pusimos ID.
  • TG_AUTHORIZED_USER_ID , el que obtuvimos cuando le preguntamos al bot de userinfobot.
  • TG_API_ID , que es uno de los dos valores que obtuvimos en el paso anterior de la página de Telegram.
  • TG_API_HASH , que es otro de los dos valores que obtuvimos en el paso anterior de la página de Telegram.
  • TG_BOT_TOKEN , que el bot del token que obtuvimos en el paso de Botfather.
  • TG_MAX_PARALLEL , que es el número de descargas simultáneas que podemos hacer con nuestro bot. En mi caso he elegido 5
  • YOUTUBE_LINKS_SOPORTED , y le damos el valor youtube.com,youtu.be por si queremos descargar algún video de youtube para verlo más tranquilamente, aunque no suele funcionar muy bien, por los cambios en los algoritmos que hace constantemente Google.
  • YOUTUBE_FORMAT , y le damos el valor bestvideo+bestaudio para obtener el video en la mejor calidad posible.
  • TZ , y le damos el valor en mi caso Europe/Madrid. Elige el correspondiente a tu zona horaria.

Debe quedarnos algo así

Pulsaremos en APLICAR, luego en SIGUIENTE, nos aseguramos que el check EJECUTAR ESTE CONTENEDOR CUANDO FINALICE EL ASISTENTE esté marcado y pulsamos en APLICAR.

Si todo ha ido correctamente, podemos probarlo copiando y pegando un enlace. En mi caso, lo hago desde mi canal de youtube.

Automatización de la descarga con Download Station

Si usas el programa nativo del NAS para descargas, vamos a automatizar la tarea
para que nos tengamos que preocupar sólo de enviar el archivo y que el NAS trabaje de forma automática.
Si no usas este y quieres usar Transmission, lo haremos al final del tutorial.
Para ello seleccionamos el menú y abrimos Download Station.

Abrimos Download Station y maximizamos la ventana ya que si no, no veremos el botón de configuración. Hacemos click en el botón con el icono del engranaje.

1.- Pulsamos en ubicación

2.-Marcamos el check de cargar archivos

3.-Marcamos el check de eliminar el archivo .torrent

4.-Seleccionamos la carpeta donde el bot descarga los archivos torrent, la que creamos dentro de la carpeta docker.

5.-Pulsamos OK

Deja abierta la ventana del navegador donde ves la app Download Station y desde el móvil, usa telegram y envíale un archivo .torrent al bot.

Vas a ver cómo se ejecuta la “magia” y la descarga comenzará automáticamente.

Instalación del docker de BitTorrent

Ya que hemos aprendido a cómo acceder a nuestro NAS por SSH, este docker lo vamos a instalar por terminal.

Antes de comenzar tenemos que crear unas carpetas desde File Station

Para ello accedemos al NAS a través del navegador y entramos en menú y seleccionamos File Station.

Dentro de la carpeta de docker, creamos una nueva carpeta que la podemos llamar Transmission.

Primero vamos a la carpeta docker y dentro de ella, creamos una nueva carpeta llamada Transmission.

Pulsamos en OK

Repetimos la operación pero esta vez dentro de la carpeta Transmission.

Esta vez creamos dos carpetas:

  • a una la llamamos config
  • a otra la llamamos downloads

Accedemos al NAS por SSH

Al igual que hemos hecho en los pasos para obtener los campos PGID y PUID, accedemos al NAS por terminal.

Como diferencia, para poder instalar el contenedor, tenemos que ser usuario con privilegios.

Escribimos sudo su en nuestro terminal y nos pedirá la contraseña.

La introducimos y pulsamos INTRO. El usuario debe pasar a ash-4.3# tal y como vemos en la imagen

Una vez aquí, vamos a ir introduciendo las siguientes líneas una por una, quión incluido y pulsaremos INTRO cada vez que introduzcamos una.

sudo docker create \

--name=transmission \

-e PUID=xxxx \

-e PGID=xxx \

-e TZ=Europe/Madrid \

-e USER=elquequerais \

-e PASS=contraseñaUltraSecreta \

-p 9091:9091 \

-p 51413:51413 \

-p 51413:51413/udp \

-v /volume1/docker/transmission/config:/config \

-v /volume1/docker/transmission/downloads:/downloads \

-v /volume1/docker/botdescargas/vigilante:/watch \

--restart always \

linuxserver/transmission

Una vez nos haya dicho la terminal que ha acabado de instalar el contenedor, vamos al NAS desde un navegador, vamos a Docker desde el menú y pulsamos en contenedores

Activamos el check del contenedor

¿Y cómo accedo a Transmission?

Para hacerlo, hay que abrir un navegador de internet y teclear en la barra de búsqueda

tuiplocaldelNAS:9091

(por ejemplo 192.168.1.100:9091)

Y debe mostrarnos la ventana de transmission.

Si quieres descargar un .torrent a través de dicho servicio, le enviamos al bot de Telegram el archivo .torrent y el servicio comenzará sólo a descargar.