Google Colab : Deploy Link
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-dlpsites. -
βοΈ 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.
View All Steps Click Here
- Tutorial Video from A to Z (Latest Video)
- Special thanks to Wiszky
Clone this repository:
git clone https://github.com/Tamilupdates/KPSML-X kpsml-x && cd kpsml-xSetting 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.
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:
-
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>
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:
IMPORTANT NOTES:
- Set
BASE_URL_PORTandRCLONE_SERVE_PORTvariables to any port you want to use. Default is80and8080respectively. - You should stop the running image before deleting the container and you should delete the container before the image.
- To delete the container (this will not affect on the image):
sudo docker container prune
- To delete te images:
sudo docker image prune -a
- Check the number of processing units of your machine with
nproccmd and times it by 4, then editAsyncIOThreadsCountin qBittorrent.conf.
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 | shInstall with Ubuntu / Debian apt-get
curl https://cli-assets.heroku.com/install-ubuntu.sh | shInstall via npm (Not Recommanded)
npm install -g herokuOfficial Heroku Install Guide : Check Here
Step 3 : Login into Heroku and Log In CLI via Browser
With Browser
heroku loginOR
Without Browser
heroku login -i-
Put
Heroku Email: Heroku Emailemail@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_NAMETo Be Noted: Copy the BASE_URL after the App is Created and Put the Value in BASE_URL when editing config.env
Notes:
-
--region usfor United States Server. -
--region eufor Europe Server. -
APP_NAMEshould be replaced with your unique app name (Optional). If not given it generates a random name. -
--stack containerfor setting stack to container for Dockerfile. -
--buildpack heroku/pythonfor 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 viayandEnter...
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_NAMEStep 7 : Now push to Heroku via git forcefully to build.
git push heroku main -fHeroku Logs: When checking Logs, Use this will give Complete Logs.
heroku logs -a APP_NAME- Add arg
-tfor Live Stream Logs and UseCTRL + Cto Exit from it.
All Heroku CLI Commands : Click Here
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/, whereapp-nameis 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, wheremyipis the IP/Domain(public) of your bot or if you have chosen port other than80so write it in this formathttp://myip:port(httpand nothttps).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 addhttps://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
- NOTE:
-
UPSTREAM_BRANCH: Upstream branch for update. Default iskpsmlx.Str
- All files to be Uploaded in
mainBranch and set Upstream askpsmlxBranch. - View the Upstream Branch: kpsmlx