An open API service indexing awesome lists of open source software.

https://github.com/tgbot-collection/ytdlbot

Download videos from Youtube and other platforms through a Telegram Bot
https://github.com/tgbot-collection/ytdlbot

Last synced: 21 days ago
JSON representation

Download videos from Youtube and other platforms through a Telegram Bot

Awesome Lists containing this project

README

        

# ytdlbot

[![docker image](https://github.com/tgbot-collection/ytdlbot/actions/workflows/builder.yaml/badge.svg)](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

![](assets/1.jpeg)

## Instagram download

![](assets/instagram.png)

![](assets/2.jpeg)

# 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) |
| ![](assets/USD.png) | ![](assets/CNY.png) |

## Cryptocurrency

TRX or USDT(TRC20)

![](assets/tron.png)

```
TF9peZjC2FYjU4xNMPg3uP4caYLJxtXeJS
```

# License

Apache License 2.0