Qué es
No es un bot de @BotFather. Es una sesión de usuario (API_ID / API_HASH de my.telegram.org) que solo mira el chat "me". Lo uso para alimentar la librería de Jellyfin: archivo grande → Drive → el catálogo lo ve el media server.
Hay una variante userbot_pc_amd.py para un PC. En el VPS corre userbot_drive.py.
Not a BotFather bot. A user session that only watches Saved Messages. I use it to feed Jellyfin: large file → Drive → the media server sees the library. Production file: userbot_drive.py.
Flujo
Lock de una descarga a la vez, semáforo de hasta 5 subidas. La cola es un JSON en disco (no Redis): sobrevive un corte, no es un broker. Progreso en el propio chat (/panel). rclone primero; si falla, Drive API resumable. No recodifica.
One download at a time, up to five uploads. In-chat progress. rclone first; Drive API as resumable fallback. No transcode.
Sitios del código
Cola en disco. queue.json guarda la tarea. Si el proceso muere a mitad, no se pierde el fichero a medias: se retoma.
On-disk queue. queue.json keeps the job. A crash does not drop the file; it resumes.
Nombre a mano. Antes de subir pregunta cómo se debe llamar el archivo en Drive. Útil cuando Telegram manda un VID_2024….mp4 inservible para Jellyfin.
Chosen filename. It asks what the file should be called on Drive, so Jellyfin does not get a useless VID_….mp4.
Lo que no se publica
Sesión Pyrogram (*.session), rclone.conf, JSON de Google, la cola con paths locales. En GitHub, API_ID / API_HASH / carpeta de Drive salen de .env.
Pyrogram session, rclone config, Google JSON, local queue paths. Public tree reads env vars only.
