[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80959":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":15,"starSnapshotCount":15,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},80959,"NEO-WZML","irisXDR\u002FNEO-WZML","irisXDR","A Mutli Functional Telegram bot to download from anywhere — torrents, Mega, YouTube, Google Drive, rclone, etc — and upload to Telegram, Cloud Drives, DDLs, or any rclone remote. Built-in FFmpeg processing, archive handling, torrent search, RSS monitoring, and web UI for file selection. Based on WZML-X","",null,"Python",35,32,31,0,1,4,4.56,"GNU Affero General Public License v3.0",false,"master",true,[24,25,26,27,28,29,30,31,32,33],"aria2c","docker","docker-compose","jdownloader","megasdk","mirror-leech","pyrogram","python","qbittorent","rclone","2026-06-12 02:04:09","\u003C!-- markdownlint-disable MD012 MD013 MD033 MD036 MD040 MD041 MD060 -->\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FirisXDR\u002FNEO-WZML\">\n    \u003Cimg src=\"https:\u002F\u002Fiili.io\u002FFLRJNMG.th.png\" alt=\"NEO-WZML Logo\" width=\"140\" \u002F>\n  \u003C\u002Fa>\n\n# NEO-WZML\n\n**A Mutli Functional Telegram bot to download from anywhere — torrents, Mega, YouTube, Google Drive, rclone, etc — and upload to Telegram, Cloud Drives, DDLs, or any rclone remote. Built-in FFmpeg processing, archive handling, torrent search, RSS monitoring, and web UI for file selection. Based on WZML-X**\n\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.11%2B-3776AB?logo=python&logoColor=white)](https:\u002F\u002Fwww.python.org\u002F)\n[![Docker image](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fimage-size\u002Firisxdr\u002Fneo-wzml\u002Flatest?logo=docker&label=Docker%20Image&labelColor=161b22&color=2496ed)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Firisxdr\u002Fneo-wzml)\n[![FastAPI](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFastAPI-009688?logo=fastapi&logoColor=white)](https:\u002F\u002Ffastapi.tiangolo.com\u002F)\n[![MongoDB](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMongoDB-47A248?logo=mongodb&logoColor=white)](https:\u002F\u002Fwww.mongodb.com\u002F)\n[![License: AGPL v3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-AGPL%20v3-2ea043.svg)](LICENSE)\n[![Telegram](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTelegram-Channel-2ea043?logo=telegram&labelColor=161b22)](https:\u002F\u002Ft.me\u002FChiheisen)\n\n[Channel](https:\u002F\u002Ft.me\u002FChiheisen) · [Support Group](https:\u002F\u002Ft.me\u002FChiheisenUnion) · [Issues](https:\u002F\u002Fgithub.com\u002FirisXDR\u002FNEO-WZML\u002Fissues) · [Docker Hub](https:\u002F\u002Fhub.docker.com\u002Fr\u002Firisxdr\u002Fneo-wzml)\n\n\u003C\u002Fdiv>\n\n> 🚧 **Status:** NEO-WZML is active and evolving. Public releases are expected to be usable, but if you hit a bug, please open an issue with logs and the command you ran.\n\n---\n\n## 📚 Table of Contents\n\n- [✨ Why NEO-WZML](#-why-neo-wzml)\n- [🚀 Highlights](#-highlights)\n- [⚡ Quick Start](#-quick-start)\n- [💬 Commands](#-commands)\n- [🧭 Deployment Notes](#-deployment-notes)\n- [🆚 What NEO-WZML Adds](#-what-neo-wzml-adds)\n- [🔍 Troubleshooting](#-troubleshooting)\n- [🤝 Support](#-support)\n- [💰 Sponsors and Donations](#-sponsors-and-donations)\n- [🙏 Credits](#-credits)\n- [📄 License](#-license)\n\n---\n\n## ✨ Why NEO-WZML\n\nNEO-WZML is built for people who move a lot of files through Telegram and cloud storage. It combines the classic mirror\u002Fleech workflow with modern file selection, persistent user settings, strong queue controls, and practical media tools.\n\n- 🔌 **One bot, many sources:** direct links, torrents, Mega, Google Drive, JDownloader, yt-dlp, Telegram messages, and rclone remotes.\n- 🎯 **Multiple upload targets:** Telegram leech, Google Drive, rclone remotes, GoFile, BuzzHeavier, and PixelDrain.\n- 🌐 **Web file selection:** pick torrent files and Mega folder files before downloading.\n- 🎬 **Media-ready:** split, convert, merge videos, sample videos, screenshots, metadata, thumbnails, and custom FFmpeg pipelines.\n- 🗜️ **Archive workflow:** extract, password-protected ZIPs, image-only ZIPs, split archive handling, and 7z-backed progress.\n- 🛡️ **Operational controls:** MongoDB persistence, queues, per-user limits, cooldowns, verification, auth gates, and safe group behavior.\n- 🐳 **Docker-first deployment:** Compose setup with optional Gluetun scaffolding for VPN-routed torrent traffic.\n\n---\n\n## 🚀 Highlights\n\n### 🌐 Download Engines\n\n| Engine | Sources | Strength |\n|--------|---------|----------|\n| Aria2c | Direct links, magnets, torrents | Fast generic downloads |\n| qBittorrent | Magnets and `.torrent` files | Search, selection, seeding |\n| MegaSDK | Mega file and folder links | Native Mega downloads and folder selection |\n| Google Drive | Files and folders | OAuth, service accounts, Team Drives |\n| yt-dlp | YouTube and supported sites | Formats, playlists, audio extraction |\n| Telegram | Messages and chat files | Large Telegram file handling |\n| rclone | Any configured remote | Cloud download and cloud transfer |\n| JDownloader | Premium hosts and containers | Host capture and CAPTCHA-aware flows |\n\n### ☁️ Upload Targets\n\n| Target | Notes |\n|--------|-------|\n| Telegram | Leech as media or document, with captions, thumbnails, dump chats, and splitting |\n| Google Drive | OAuth, service accounts, Team Drives, duplicate checks, and index links |\n| rclone | Upload to any configured remote, including user configs via `mrcc:` |\n| DDL hosts | Upload to GoFile, BuzzHeavier, PixelDrain, or multiple hosts |\n\n### 🎛️ Processing Tools\n\n| Feature | What it does |\n|---------|--------------|\n| `-z` \u002F `-e` | Compress or extract before upload |\n| `-zim` | ZIP only images into `Images.zip`, keeping videos\u002Ffiles normal |\n| `-mv` | Merge folder videos into one `.mkv` with FFmpeg concat |\n| `-ff` | Run configured FFmpeg command presets |\n| `-ss` \u002F `-sv` | Generate screenshots or sample videos |\n| Metadata tools | Apply title, audio, video, and subtitle metadata |\n| Filename rules | Prefixes, suffixes, regex swaps, and cleanup rules |\n\n---\n\n## ⚡ Quick Start\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FirisXDR\u002FNEO-WZML.git\ncd NEO-WZML\n\ncp sample_config.py config.py\n# Edit config.py and set the required values listed below.\n\ndocker compose up -d --build\ndocker compose logs -f\n```\n\nStop the stack:\n\n```bash\ndocker compose down\n```\n\n### 🔑 Required Configuration\n\nCreate `config.py` from `sample_config.py` and set these first:\n\n| Variable | Purpose |\n|----------|---------|\n| `BOT_TOKEN` | Telegram bot token from BotFather |\n| `OWNER_ID` | Telegram numeric user id of the owner |\n| `TELEGRAM_API` | API id from [my.telegram.org](https:\u002F\u002Fmy.telegram.org) |\n| `TELEGRAM_HASH` | API hash from [my.telegram.org](https:\u002F\u002Fmy.telegram.org) |\n| `DATABASE_URL` | MongoDB connection string |\n\nRecommended for the full experience:\n\n| Variable | Purpose |\n|----------|---------|\n| `BASE_URL` | Public URL for torrent and Mega web file selection |\n| `RCLONE_PATH` or `GDRIVE_ID` | Default cloud upload destination |\n| `LEECH_DUMP_CHAT` | Default Telegram leech destination |\n| `MEGA_EMAIL` \u002F `MEGA_PASSWORD` | Optional Mega account for better Mega workflows |\n\n> 🔐 Keep tokens, OAuth files, MongoDB URLs, rclone configs, Mega accounts, and service-account JSONs out of public commits.\n\n---\n\n## 💬 Commands\n\nSend `\u002Fhelp` inside Telegram for the complete live command list.\n\n| Command | Description |\n|---------|-------------|\n| `\u002Fmirror \u003Clink>` | Download and upload to cloud |\n| `\u002Fleech \u003Clink>` | Download and upload to Telegram |\n| `\u002Fqb` \u002F `\u002Fqbleech` | Use qBittorrent for torrent workflows |\n| `\u002Fjd` \u002F `\u002Fjdleech` | Use JDownloader |\n| `\u002Fytdl` \u002F `\u002Fytdlleech` | Download with yt-dlp |\n| `\u002Fclone \u003Clink>` | Clone supported cloud links\u002Fremotes |\n| `\u002Fstatus` | View active and queued tasks |\n| `\u002Fstats` | View bot, system, and component stats |\n| `\u002Flist \u003Cquery>` | Search Google Drive |\n| `\u002Fcount \u003Clink>` | Count Google Drive files and size |\n| `\u002Fusettings` | User-specific settings |\n| `\u002Fbsetting` | Owner configuration panel |\n\n### 🧩 Common Arguments\n\n| Argument | Meaning |\n|----------|---------|\n| `-n \u003Cname>` | Rename before upload |\n| `-s` | Select torrent\u002FMega files before downloading |\n| `-z [password]` | ZIP before upload |\n| `-e [password]` | Extract before upload |\n| `-zim` \u002F `-zipimages` | ZIP only images into one archive |\n| `-mv` | Merge videos in a folder |\n| `-up \u003Cdestination>` | Override upload destination |\n| `-i \u003CN>` | Process consecutive messages as a multi-task |\n| `-ud \u003Cname[,name]\\|all>` | Select configured Telegram dump destinations |\n\nExamples:\n\n```text\n\u002Fmirror magnet:?xt=urn:btih:... -s -z\n\u002Fleech https:\u002F\u002Fexample.com\u002Ffolder -zim\n\u002Fleech gdrive-folder-link -mv\n\u002Fmirror link -up remote:path -n CustomName\n```\n\n---\n\n## 🧭 Deployment Notes\n\n- 🌐 Port `880` serves the FastAPI web UI, file selector, and qBittorrent proxy.\n- 🔗 Port `8880` is used for `rclone serve` when configured.\n- 🛡️ `docker-compose.yml` includes an optional Gluetun VPN scaffold for torrent traffic.\n- 🍃 MongoDB is required for persistent settings, user data, and task metadata.\n- 🧾 `sample_config.py` is the source of truth for advanced configuration.\n- ⚙️ `update.py` supports a small environment-variable override allow-list for container deployments.\n\n---\n\n## 🆚 What NEO-WZML Adds\n\nNEO-WZML is based on WZML-X and focuses on deployment reliability, modern selection flows, and practical operator controls.\n\n| Area | NEO-WZML |\n|------|----------|\n| Mega | Native MegaSDK 8.1.1 and web folder selection |\n| Selection | Torrent and Mega selection through the built-in web UI |\n| Limits | Universal task locks, per-user ceilings, queues, and cooldowns |\n| Media | Auto thumbnails, metadata, screenshots, sample videos, merge video, custom FFmpeg |\n| Archives | Extract, ZIP, password ZIP, image-only ZIP |\n| Uploads | Telegram, Drive, rclone, and multi-DDL host uploads |\n| UX | Save buttons, dump selection, filename formatting, safer group behavior |\n| Deployment | Docker bridge networking with optional VPN routing scaffold |\n\nRemoved from this fork: NZB\u002FSABnzbd, YouTube upload, IMDB, and broadcast modules.\n\n---\n\n## 🔍 Troubleshooting\n\n### 💥 Bot exits at startup\n\n- Confirm `BOT_TOKEN`, `OWNER_ID`, `TELEGRAM_API`, `TELEGRAM_HASH`, and `DATABASE_URL`.\n- Check `log.txt` for the first stack trace.\n- If using Mongo Atlas, allow-list the server or container egress IP.\n\n### 🌐 File selector does not open\n\n- Set `BASE_URL` to a public URL reachable from your browser.\n- Publish port `880` or put it behind a reverse proxy.\n- If pincode validation is confusing during setup, temporarily disable `WEB_PINCODE`.\n\n### ☁️ Google Drive tasks fail\n\n- Confirm `token.pickle` or service-account JSONs are valid.\n- Make sure the upload destination exists and the auth principal has access.\n- Drive API quota errors are usually temporary; retry after the quota window resets.\n\n### 🧲 Torrents stall\n\n- Check tracker reachability from inside the container.\n- Use the qBittorrent web proxy on port `880` to inspect live state.\n- Configure Gluetun if your host or ISP blocks torrent traffic.\n\n---\n\n## 🤝 Support\n\n- 📢 Telegram channel: [Chiheisen](https:\u002F\u002Ft.me\u002FChiheisen)\n- 💬 Support group: [ChiheisenUnion](https:\u002F\u002Ft.me\u002FChiheisenUnion)\n- 🐞 Bugs and feature requests: [GitHub Issues](https:\u002F\u002Fgithub.com\u002FirisXDR\u002FNEO-WZML\u002Fissues)\n\nIf you report a bug, include:\n\n- The command you ran.\n- The relevant log lines.\n- Whether the task was mirror, leech, clone, torrent, Mega, or GDrive.\n- Your deployment method.\n\n---\n\n## 💰 Sponsors and Donations\n\nIf NEO-WZML saves you time, consider supporting development:\n\n[🧸 Support the project — アイリス](https:\u002F\u002Ftelegram.me\u002FirisXDR)\n\n---\n\n## 🙏 Credits\n\n| Role | Person |\n|------|--------|\n| Owner | [irisXDR](https:\u002F\u002Fgithub.com\u002FirisXDR) |\n| WZML-X developers | [SilentDemonSD](https:\u002F\u002Fgithub.com\u002FSilentDemonSD), [rjriajul](https:\u002F\u002Fgithub.com\u002Frjriajul), [CodeWithWeeb](https:\u002F\u002Fgithub.com\u002Fweebzone), [Maverick](https:\u002F\u002Fgithub.com\u002FMajnuRangeela) |\n| Original project | [anasty17](https:\u002F\u002Fgithub.com\u002Fanasty17) |\n| PyroBlack developers | [eyMarv](https:\u002F\u002Fgithub.com\u002FeyMarv), [Delivrance](https:\u002F\u002Fgithub.com\u002Fdelivrance) |\n\n> Some AI Tools have been used to create certain portions of this repository.\n---\n\n## 📄 License\n\n[GNU Affero General Public License v3.0](LICENSE)\n\n\u003Cdiv align=\"center\">\n  \u003Cem>Made with ❤️ by \u003Ca href=\"https:\u002F\u002Ftelegram.me\u002FirisXDR\">irisXDR\u003C\u002Fa>\u003C\u002Fem>\u003Cbr\u002F>\n  \u003Cem>Based on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FSilentDemonSD\u002FWZML-X\">WZML-X\u003C\u002Fa> · Powered by \u003Ca href=\"https:\u002F\u002Ftelegram.me\u002FChiheisen\">Chiheisen\u003C\u002Fa>\u003C\u002Fem>\n\u003C\u002Fdiv>\n","NEO-WZML 是一个多功能的 Telegram 机器人，可以从多种来源（如种子、Mega、YouTube、Google Drive、rclone 等）下载文件，并上传到 Telegram、云存储、DDL 或任何 rclone 远程。项目的核心功能包括内置的 FFmpeg 处理、归档处理、种子搜索、RSS 监控以及用于文件选择的 Web UI。基于 Python 编写，并支持 Docker 部署，使得部署和使用更加便捷。此外，它还集成了 aria2c、qbittorrent 和 rclone 等工具，以增强其文件传输能力。NEO-WZML 适用于需要频繁在不同平台之间移动文件的用户，尤其是那些经常通过 Telegram 和云存储进行文件管理的人。",2,"2026-06-11 04:03:00","CREATED_QUERY"]