YouTube Download Bot🚀🎬⬇️
This Telegram bot allows you to download videos from YouTube and other supported websites, including Instagram!
Join Telegram Channel https://t.me/+OGRC8tp9-U9mZDZl for updates.
Send link directly to the bot. Any Websites supported by yt-dlp will work too.
Due to limitations on servers and bandwidth, there are some restrictions on this free service.
- Each user is limited to 10 free downloads per 24-hour period
- Maximum of three subscriptions allowed for YouTube channels.
- Files bigger than 2 GiB will require at least 1 download token.
If you need more downloads, you can buy download tokens.
- fast download and upload.
- ads free
- support progress bar
- audio conversion
- playlist download
- payment support: afdian, buy me a coffee, Telegram Payment and Tron(TRX)
- different video resolutions
- sending as file or streaming as video
- celery worker distribution - faster than before.
- subscriptions to YouTube Channels
- cache mechanism - download once for the same video.
- instagram posts(only available for my bot)
- 4 GiB file size support with Telegram Premium
- History and inline mode support
If you download files larger than 2 GiB, you agreed that this file will be uploaded by me. I know who you are and what you download.
This bot can be deployed on any platform that supports Python.
To deploy this bot, follow these steps:
-
Install bot dependencies
- Install Python 3.10 or a later version, FFmpeg.
- (optional)Aria2 and add it to the PATH.
-
Clone the code from the repository and cd into it.
-
git clone https://github.com/tgbot-collection/ytdlbot
-
cd ytdlbot/
-
-
Creating a virtual environment and installing required modules in Python.
-
python -m venv venv
-
source venv/bin/activate # Linux #or .\venv\Scripts\activate # Windows
-
pip install --upgrade pip
-
pip install -r requirements.txt
-
-
Set the environment variables
TOKEN
,APP_ID
,APP_HASH
, and any others that you may need.- Change values in ytdlbot/config.py or
- Use export APP_ID=111 APP_HASH=111 TOKEN=123
-
Finally, run the bot with
-
python ytdl_bot.py
-
One line command to run the bot
docker run -e APP_ID=111 -e APP_HASH=111 -e TOKEN=370FXI bennythink/ytdlbot
Deploy to heroku
If you are having trouble deploying, you can fork the project to your personal account and deploy it from there.
Starting November 28, 2022, free Heroku Dynos, free Heroku Postgres, and free Heroku Data for Redis® plans will no longer be available. Heroku Announcement
- contains every functionality
- compatible with amd64 and arm64
Download docker-compose.yml
file to a directory
mkdir data
mkdir env
vim env/ytdl.env
You can configure all the following environment variables:
- WORKERS: workers count for celery
- PYRO_WORKERS: number of workers for pyrogram, default is 100
- APP_ID: REQUIRED, get it from https://core.telegram.org/
- APP_HASH: REQUIRED
- TOKEN: REQUIRED
- REDIS: REQUIRED if you need VIP mode and cache
⚠️ Don't publish your redis server on the internet.⚠️ - EXPIRE: token expire time, default: 1 day
- ENABLE_VIP: enable VIP mode
- OWNER: owner username
- AUTHORIZED_USER: only authorized users can use the bot
- REQUIRED_MEMBERSHIP: group or channel username, user must join this group to use the bot
- ENABLE_CELERY: celery mode, default: disable
- BROKER: celery broker, should be redis://redis:6379/0
- MYSQL_HOST:MySQL host
- MYSQL_USER: MySQL username
- MYSQL_PASS: MySQL password
- AUDIO_FORMAT: default audio format
- ARCHIVE_ID: forward all downloads to this group/channel
- IPv6 = os.getenv("IPv6", False)
- ENABLE_FFMPEG = os.getenv("ENABLE_FFMPEG", False)
- PROVIDER_TOKEN: stripe token on Telegram payment
- PLAYLIST_SUPPORT: download playlist support
- M3U8_SUPPORT: download m3u8 files support
- ENABLE_ARIA2: enable aria2c download
- FREE_DOWNLOAD: free download count per day
- TOKEN_PRICE: token price per 1 USD
- GOOGLE_API_KEY: YouTube API key, required for YouTube video subscription.
- RCLONE_PATH: rclone path to upload files to cloud storage
- TMPFILE_PATH: tmpfile path(file download path)
- TRONGRID_KEY: TronGrid key, better use your own key to avoid rate limit
- TRON_MNEMONIC: Tron mnemonic, the default one is on nile testnet.
- PREMIUM_USER: premium user ID, it can help you to download files larger than 2 GiB
If you only need basic functionality, you can skip this step.
Required for VIP(Download token), settings, YouTube subscription.
docker-compose up -d
docker-compose exec mysql bash
mysql -u root -p
> create database ytdl;
Required if you enable celery and want to monitor the workers.
{} ~ python3
Python 3.9.9 (main, Nov 21 2021, 03:22:47)
[Clang 12.0.0 (clang-1200.0.32.29)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import dbm;dbm.open("flower","n");exit()
In flower
service section, you may want to change your basic authentication username password and publish port.
You can also limit CPU and RAM usage by adding a deploy
key, use --compatibility
when deploying.
deploy:
resources:
limits:
cpus: '0.5'
memory: 1500M
If you only want to run the mode without any celery worker and VIP mode, you can just start ytdl
service
docker-compose up -d ytdl
You'll have to start MySQL and redis to support VIP mode, subscription and settings.
docker-compose up -d mysql redis ytdl
Firstly, set ENABLE_CELERY
to true. And then, on one machine:
docker-compose up -d
On the other machine:
docker-compose -f worker.yml up -d
- Subscribe to Telegram Premium
- Setup user id
PREMIUM_USER
inytdl.env
- Create session file by running
python premium.py
- Copy the session file
premium.session
todata
directory docker-compose up -d premium
refer guide here kubernetes
start - Let's start
about - What's this bot?
ping - Bot running status
help - Help
ytdl - Download video in group
settings - Set your preference
buy - Buy token
direct - Download file directly
sub - Subscribe to YouTube Channel
unsub - Unsubscribe from YouTube Channel
sub_count - Check subscription status, owner only.
uncache - Delete cache for this link, owner only.
purge - Delete all tasks, owner only.
show_history - Show download history
clear_history - Clear download history
https://www.youtube.com/watch?v=BaW_jenozKc
https://www.youtube.com/playlist?list=PL1Hdq7xjQCJxQnGc05gS4wzHWccvEJy0w
https://twitter.com/nitori_sayaka/status/1526199729864200192 https://twitter.com/BennyThinks/status/1475836588542341124
- single image: https://www.instagram.com/p/CXpxSyOrWCA/
- single video: https://www.instagram.com/p/Cah_7gnDVUW/
- reels: https://www.instagram.com/p/C0ozGsjtY0W/
- image carousel: https://www.instagram.com/p/C0ozPQ5o536/
- video and image carousel: https://www.instagram.com/p/C0ozhsVo-m8/
Found this bot useful? You can donate to support the development of this bot.
You can choose to donate via Stripe.
USD(Card, Apple Pay and Google Pay) | CNY(Card, Apple Pay, Google Pay and Alipay) |
---|---|
USD | CNY |
TRX or USDT(TRC20)
TF9peZjC2FYjU4xNMPg3uP4caYLJxtXeJS
Apache License 2.0