# ytdlbot
[](https://github.com/tgbot-collection/ytdlbot/actions/workflows/builder.yaml)
**YouTube Download Bot🚀🎬⬇️**
This Telegram bot allows you to download videos from YouTube and [other supported websites](#supported-websites).
# Usage
* EU🇪🇺: [https://t.me/benny_2ytdlbot](https://t.me/benny_2ytdlbot)
* Singapore🇸🇬:[https://t.me/benny_ytdlbot](https://t.me/benny_ytdlbot)
* Join Telegram Channel https://t.me/ytdlbot0 for updates.
Just send a link directly to the bot.
# Supported websites
* YouTube
* Any websites [supported by yt-dlp](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md)
### Specific link downloader (Use /spdl for these links)
* Instagram (Videos, Photos, Reels, IGTV & carousel)
* Pixeldrain
* KrakenFiles
# Features
1. fast download and upload.
2. No ads
3. download & upload progress bar
4. download quality selection
5. upload format: file, video, audio
6. cache mechanism - download once for the same video.
7. Supports multiple download engines (yt-dlp, aria2, requests).
> ## Limitations
> Due to limitations on servers and bandwidth, there are some restrictions on this free service.
> * Each user is limited to 1 free downloads every day.
# Screenshots
## Normal download

## Instagram download


# How to deploy?
This bot can be deployed on any platform that supports Python.
## Run natively on your machine
> Project use PDM to manage dependencies.
1.
Install PDM
You can install using pip: `pip install --user pdm`
or for detailed instructions: [Official Docs](https://pdm-project.org/en/latest/#installation)
2. Install modules using PDM: `pdm install`, or the old way use `pip install -r requirements.txt`
3.
Setting up config file
```
cp .env.example .env
```
Fill the fields in `.env`. For more information, see the comments in the `.env.example` file.
**- Required Fields**
- `WORKERS`: Number of workers (default is 100)
- `APP_ID`: Telegram app ID
- `APP_HASH`: Telegram app hash
- `BOT_TOKEN`: Your telegram bot token
- `OWNER`: Owner ID (separate by `,`)
- `AUTHORIZED_USER`: List of authorized users ids, (separate by `,`)
- `DB_DSN`: Your database URL (mysql+pymysql://user:pass@mysql/dbname) or SQLite (sqlite:///db.sqlite)
- `REDIS_HOST`: Redis host
**- Optional Fields**
- `ENABLE_FFMPEG`: Enable FFMPEG for video processing (True/False)
- `AUDIO_FORMAT`: Desired audio format (e.g.:- mp3, wav)
- `ENABLE_ARIA2`: Enable Aria2 for downloads (True/False)
- `RCLONE_PATH`: Path to Rclone executable
- `ENABLE_VIP`: Enable VIP features (True/False)
- `PROVIDER_TOKEN`: Payment provider token from Stripe
- `FREE_DOWNLOAD`: Free downloads allowed per user
- `RATE_LIMIT`: Rate limit for requests
- `TMPFILE_PATH`: Path for temporary/download files (ensure the directory exists and is writable)
- `TG_NORMAL_MAX_SIZE`: Maximum size for Telegram uploads in MB
- `CAPTION_URL_LENGTH_LIMIT`: Maximum URL length in captions
- `POTOKEN`: Your PO Token. [PO-Token-Guide](https://github.com/yt-dlp/yt-dlp/wiki/PO-Token-Guide)
- `BROWSERS`: Browser to handle 'cookies from browser', i.e. firefox
4. Activate virtual environment that created by PDM: `source .venv/bin/activate`
5. Finally run the bot: `python src/main.py`
## Docker
One line command to run the bot
```shell
docker run --env-file .env bennythink/ytdlbot
```
# Command
```
start - Let's start
about - What's this bot?
help - Help
spdl - Use to download specific link downloader links
direct - Download using aria2/requests engines
ytdl - Download video in group
settings - Set your preference
unsub - Unsubscribe from YouTube Channel
ping - Ping the Bot
stats - Server and bot stats
buy - Buy quota.
```
# Test data
Tap to expand
## Test video
https://www.youtube.com/watch?v=V3RtA-1b_2E
## Test Playlist
https://www.youtube.com/playlist?list=PL1Hdq7xjQCJxQnGc05gS4wzHWccvEJy0w
## Test twitter
https://twitter.com/nitori_sayaka/status/1526199729864200192
https://twitter.com/BennyThinks/status/1475836588542341124
## Test instagram
* 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/
## Test Pixeldrain
https://pixeldrain.com/u/765ijw9i
## Test KrakenFiles
https://krakenfiles.com/view/oqmSTF0T5t/file.html
# Donation
Found this bot useful? You can donate to support the development of this bot.
## Donation Platforms
* [Buy me a coffee](https://www.buymeacoffee.com/bennythink)
* [GitHub Sponsor](https://github.com/sponsors/BennyThink)
## Stripe
You can choose to donate via Stripe.
| USD(Card, Apple Pay and Google Pay) | CNY(Card, Apple Pay, Google Pay and Alipay) |
|--------------------------------------------------|--------------------------------------------------|
| [USD](https://buy.stripe.com/cN203sdZB98RevC3cd) | [CNY](https://buy.stripe.com/dR67vU4p13Ox73a6oq) |
|  |  |
## Cryptocurrency
TRX or USDT(TRC20)

```
TF9peZjC2FYjU4xNMPg3uP4caYLJxtXeJS
```
# License
Apache License 2.0