explaingit

irisxdr/neo-wzml

20PythonAudience · ops devopsComplexity · 4/5ActiveLicenseSetup · hard

TLDR

Telegram bot that downloads from torrents, Mega, Google Drive, yt-dlp and direct links, processes the files, then uploads back to Telegram, Google Drive, rclone, or hosts like GoFile.

Mindmap

mindmap
  root((NEO-WZML))
    Inputs
      Magnet or torrent
      Mega link
      yt-dlp source
      Direct URL
    Outputs
      Telegram leech
      Google Drive upload
      rclone remote
      GoFile link
    Use Cases
      Mirror torrents to Drive
      Download Mega folders
      Compress before upload
      Merge videos with FFmpeg
    Tech Stack
      Python
      Docker
      MongoDB
      FastAPI
      Aria2c
      qBittorrent
      yt-dlp
      FFmpeg

Things people build with this

USE CASE 1

Mirror torrents and magnet links from a Telegram chat into Google Drive or an rclone remote

USE CASE 2

Download large Mega folders and pick specific files via a web UI before fetching

USE CASE 3

Compress, extract, or merge videos and screenshots before sending to a host like GoFile

USE CASE 4

Run a personal media-shuttling bot in Docker with MongoDB-backed user settings

Tech stack

PythonDockerMongoDBFastAPIFFmpegyt-dlp

Getting it running

Difficulty · hard Time to first run · 1h+

Needs Telegram API credentials, MongoDB URL, Google Drive auth or service accounts, and Docker; many engines must be configured to be useful.

AGPL v3, so you can run and modify it freely but any network service built from it must also share its source code under the same license.

In plain English

NEO-WZML is a Telegram bot that downloads files from many different sources and uploads them either back into Telegram or out to cloud storage. It is based on an earlier project called WZML-X and is meant for people who routinely move large amounts of media through Telegram chats and cloud drives. The bot is written in Python, runs in Docker, uses MongoDB for persistent settings, and exposes a small FastAPI web interface for picking files. On the download side it can take direct HTTP links, magnet links and torrent files, Mega links, Google Drive files and folders, yt-dlp sources like YouTube, JDownloader hosts, Telegram messages, and any rclone remote. Different engines handle different cases: Aria2c for generic downloads, qBittorrent for torrents with search and seeding, MegaSDK for Mega, the Google Drive API with OAuth or service accounts, yt-dlp, and JDownloader for premium hosts. The web UI lets the user pick which files inside a torrent or Mega folder to actually fetch before downloading begins. On the upload side the bot can deliver the result back to Telegram as a leech, send it to Google Drive, push it to any rclone remote, or upload to direct-download hosts such as GoFile, BuzzHeavier, and PixelDrain. There are also processing tools that run before upload: compressing or extracting archives including password-protected ones, zipping only images into a single archive, merging videos in a folder with FFmpeg concat, generating screenshots or sample videos, applying metadata and thumbnails, and renaming files with prefixes, suffixes, or regex rules. Deployment is docker compose up after copying sample_config.py to config.py and filling in the Telegram bot token, owner id, Telegram API id and hash, and MongoDB URL. The license is AGPL v3.

Copy-paste prompts

Prompt 1
Walk me through deploying NEO-WZML with docker compose, including the config.py fields I need to fill in
Prompt 2
Add my Google Drive service account to NEO-WZML so uploads bypass the OAuth flow
Prompt 3
Configure NEO-WZML to leech a magnet link, extract the archive, then upload only the MP4 files to my rclone remote
Prompt 4
Set up qBittorrent search and seeding inside NEO-WZML and limit upload bandwidth to 5 MB per second
Prompt 5
Use the FastAPI web UI to select only the season 2 folder from a torrent before download starts
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.