Skip to content
/ KPSML-X Public template

A Super Enhanced Telegram bot which can download torrents, mega, google drive links, telegram file, direct links and all yt-dlp sites, upload to google drive, telegram cloud, rclone clouds or ddl servers. Made with Pyrogram in Python by KPSML-X Devs.

License

Notifications You must be signed in to change notification settings

Tamilupdates/KPSML-X

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

98 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

KPSML-X: Ultimate Multi-Cloud Telegram Leech Bot

KPSML-X Logo

Forks Stars Docker Pulls

Telegram Channel

⚑️ Download Anything. Upload Everywhere. πŸ”₯


Google Colab Logo Google Colab : Deploy Link


πŸ“Œ Key Highlights

View All Highlights Click Here

KPSML-X is designed to make file management seamless, fast, and flexible.

  • 🌐 Universal Downloader - Supports torrents, Mega, Google Drive, direct links, and all yt-dlp sites.

  • ☁️ Cloud Uploader - Upload files to Google Drive, Telegram Cloud, Rclone, or DDL servers with ease.

  • πŸ“¦ Smart File Handling - Automatic renaming, metadata tagging, and organization.

  • 🧠 Intelligent Automation - Auto-resume, retry, and cleanup for 24Γ—7 reliability.

  • βš™οΈ Advanced Controls - Manage downloads, uploads, and settings directly from Telegram (/bs, /mirror, /leech).

  • 🎯 Multi-Deployment Ready - Deploy on Heroku, Docker, VPS, or Google Colab.

  • πŸ” Secure & Private - Owner-only commands, user whitelisting, and access control.

  • πŸ’¨ Lightweight Performance - Optimized Python & Pyrogram async engine for speed.

  • πŸ’¬ Active Community Support - Join @KPSBots for updates and help.


πŸš€ Deployment Guide (VPS)

View All Steps Click Here

1. Prerequisites

  • Tutorial Video from A to Z (Latest Video)
  • Special thanks to Wiszky

See Video


2. Installing Requirements

Clone this repository:

git clone https://github.com/Tamilupdates/KPSML-X kpsml-x && cd kpsml-x

Setting up config file:

cp config_sample.env config.env
  • Remove the first line saying:
_____REMOVE_THIS_LINE_____=True

Fill up rest of the fields. Meaning of each field is discussed below.

NOTE: All values must be filled between quotes, even if it's Int, Bool or List.


3. Build and Run the Docker Image

Make sure you mount the app folder and install Docker following the official documentation.

There are two methods to build and run the Docker image:

3.1 Using Official Docker Commands

  • Start Docker daemon (skip if already running):

    sudo dockerd
  • Build the Docker image:

    sudo docker build . -t kpsmlx
  • Run the image:

    sudo docker run -p 80:80 -p 8080:8080 kpsmlx
  • To stop the running image:

    First, list running containers:

    sudo docker ps

    Then, stop the container using its ID:

    sudo docker stop <container_id>

3.2 Using docker-compose (Recommended)

Note: If you want to use ports other than 80 and 8080 for torrent file selection and rclone serve respectively, update them in docker-compose.yml.

  • Install docker-compose:

    sudo apt install docker-compose
  • Build and run the Docker image (or view the current running image):

    sudo docker-compose up
  • After editing files (e.g., using nano to edit start.sh), rebuild:

    sudo docker-compose up --build
  • To stop the running image:

    sudo docker-compose stop
  • To restart the image:

    sudo docker-compose start
  • To view the latest logs from the running container (after mounting the folder):

    sudo docker-compose up
  • Tutorial Video for docker-compose and checking ports:

    See Video


Docker Notes

IMPORTANT NOTES:

  1. Set BASE_URL_PORT and RCLONE_SERVE_PORT variables to any port you want to use. Default is 80 and 8080 respectively.
  2. You should stop the running image before deleting the container and you should delete the container before the image.
  3. To delete the container (this will not affect on the image):
sudo docker container prune
  1. To delete te images:
sudo docker image prune -a
  1. Check the number of processing units of your machine with nproc cmd and times it by 4, then edit AsyncIOThreadsCount in qBittorrent.conf.

πŸš€ Deployment Guide (Heroku CLI)

View All Steps Click Here

Step 1 : Git clone this Repo and change directory

Make sure git is Installed in your system or quick run apt-get install git pip curl -y

git clone https://github.com/Tamilupdates/KPSML-X kpsml-x && cd kpsml-x 

Step 2 : Now Install Heroku in your Sytem or checkout Official Heroku Deploy Docs, or Download via apt-get or npm

For Android : Use termux (Download via FDroid) for CLI usage

The script requires sudo and isn’t Windows compatible.

curl https://cli-assets.heroku.com/install.sh | sh

Install with Ubuntu / Debian apt-get

curl https://cli-assets.heroku.com/install-ubuntu.sh | sh

Install via npm (Not Recommanded)

npm install -g heroku

Official Heroku Install Guide : Check Here


Step 3 : Login into Heroku and Log In CLI via Browser

With Browser

heroku login

OR

Without Browser

heroku login -i
  • Put Heroku Email : Heroku Email email@example.com

  • Put Heroku Password : Heroku API Key. Get from Here


Step 4 : Create Heroku App and specify stack and region with App Name

heroku create --region us --stack container APP_NAME

To Be Noted: Copy the BASE_URL after the App is Created and Put the Value in BASE_URL when editing config.env

Notes:

  • --region us for United States Server.

  • --region eu for Europe Server.

  • APP_NAME should be replaced with your unique app name (Optional). If not given it generates a random name.

  • --stack container for setting stack to container for Dockerfile.

  • --buildpack heroku/python for using build slug for repo deploy and build.


Step 5 : Now set all the Required Variables and Files into this Branch MAIN Repo like config.env, accounts.zip, token.pickle, All Private Files(optional)-

Only config.env Mabdatory with Only Mandatory Vars Only, After that Put all Private Files or Vars via Bot Settings /bs

To Edit Inside CLI (nano Editor): (Termux Users)

nano config.env
  • Sample config.env (Copy these and Paste in Editor and Fill Up)
    BOT_TOKEN = ""
    TELEGRAM_API = ""
    TELEGRAM_HASH = ""
    OWNER_ID = ""
    DATABASE_URL = ""
    BASE_URL = ""
    SET_COMMANDS = "True"
    UPSTREAM_REPO = "https://github.com/Tamilupdates/KPSML-X"
    UPSTREAM_BRANCH = "kpsmlx"
    
  • After Setup Exit from Editor via CTRL + X, followed via y and Enter...

Helpful Commands:

  • Exit from nano : CTRL + X
  • Save File : CTRL + S
  • Check Help : CTRL + G
  • Undo Changes : ALT + U
  • ^ means CTRL (Termux Users)

Step 6 : Set Local git remote for Heroku. Give All Commands One by One.

git add . -f
git commit -m "HK Setup"
heroku git:remote -a APP_NAME

Step 7 : Now push to Heroku via git forcefully to build.

git push heroku main -f

Heroku Logs: When checking Logs, Use this will give Complete Logs.

heroku logs -a APP_NAME
  • Add arg -t for Live Stream Logs and Use CTRL + C to Exit from it.

All Heroku CLI Commands : Click Here


πŸ› οΈ Variables Descriptions

View All Variables Click Here
  • BOT_TOKEN: Telegram Bot Token that you got from BotFather. Str

  • OWNER_ID: Telegram User ID (not username) of the Owner of the bot. Int

  • TELEGRAM_API: This is to authenticate your Telegram account for downloading Telegram files. You can get this from https://my.telegram.org. Int

  • TELEGRAM_HASH: This is to authenticate your Telegram account for downloading Telegram files. You can get this from https://my.telegram.org. Str

  • BASE_URL: Valid BASE URL where the bot is deployed to use torrent web files selection.

    • Heroku Deployment: Format of URL should be https://app-name-random_code.herokuapp.com/, where app-name is the name of your heroku app Paste the URL got when the App was Made. Str

    • VPS Deployment: Format of URL should be http://myip, where myip is the IP/Domain(public) of your bot or if you have chosen port other than 80 so write it in this format http://myip:port (http and not https). Str

  • DATABASE_URL: Database URL of MongoDb to store all your files and Vars. Adding this will be Helpful. Str

  • UPSTREAM_REPO: GitLab repository URL, if your repo is private add https://username:{githubtoken}@github.com/{username}/{reponame} format. Str.

    • NOTE:
      • Any change in docker you need to deploy/build again with updated repo to take effect.
      • No Need to delete .gitignore file or any File
  • UPSTREAM_BRANCH: Upstream branch for update. Default is kpsmlx. Str


🌿 Branch Specifications

  • All files to be Uploaded in main Branch and set Upstream as kpsmlx Branch.
  • View the Upstream Branch: kpsmlx

About

A Super Enhanced Telegram bot which can download torrents, mega, google drive links, telegram file, direct links and all yt-dlp sites, upload to google drive, telegram cloud, rclone clouds or ddl servers. Made with Pyrogram in Python by KPSML-X Devs.

Topics

Resources

License

Stars

Watchers

Forks