Go to file
2021-10-30 14:28:03 +08:00
.github/workflows github action 2021-07-17 20:38:56 +08:00
assets reorder import, change code style, avoid /music and other commands in groups 2021-05-05 12:10:22 +08:00
.gitignore upadte .gitignore 2021-10-30 14:28:03 +08:00
.gitmodules remove submodule for better support of heroku 2021-05-24 09:27:49 +08:00
app.json add heroku buildpack 2021-08-30 22:29:46 +08:00
broadcast.py fix audio, change help text, remove playlist VIP, broadcast 2021-08-26 22:04:57 +08:00
config.py group/channel join require 2021-10-30 14:27:43 +08:00
constant.py group/channel join require 2021-10-30 14:27:43 +08:00
docker-compose.yml release 2021-08-29 10:22:54 +08:00
Dockerfile use supervisor 2021-08-21 16:05:47 +08:00
downloader.py yt-dlp 2021-10-19 18:58:48 +08:00
LICENSE Initial commit 2021-05-03 18:24:44 +08:00
limit.py fix filename too long bug, change log formatter 2021-09-01 22:53:57 +08:00
Procfile add Procfile for heroku 2021-05-23 21:59:19 +08:00
README.md group/channel join require 2021-10-30 14:27:43 +08:00
requirements.txt yt-dlp 2021-10-19 18:58:48 +08:00
supervisor.conf use supervisor 2021-08-21 16:05:47 +08:00
utils.py fix filename too long bug, change log formatter 2021-09-01 22:53:57 +08:00
ytdl.py group/channel join require 2021-10-30 14:27:43 +08:00

ytdlbot

YouTube Download Bot🚀

Download videos from YouTube and other platforms through a Telegram Bot

Deploy

Usage

https://t.me/benny_ytdlbot

Send link directly to the bot. Any platform supported by youtube-dl will also work.

Limitation of my bot

Because I have limited resources, hundreds of Gigabytes doesn't sound like a sustainable solution.

In that case, I added one limitation: 5 GiB per 24 hours for each user. Might change in future

You can choose to become 'VIP' if you really need large traffic. And also, you could always deploy your own bot.

Features

  1. fast download and upload.
  2. ads free
  3. support progress bar
  4. audio conversion
  5. playlist support
  6. VIP support

How to deploy?

Choose your own preference.

Heroku

Use the button above! It should work like a magic.

Normal

  1. clone code
  2. install ffmpeg
  3. install Python 3.6+
  4. pip3 install -r requirements.txt
  5. set environment variables TOKEN, APP_ID and APP_HASH, and more if you like.
  6. python3 ytdl.py

Simple one line docker

Some functions, such as VIP, ping will be disabled.

docker run -e APP_ID=111 -e APP_HASH=111 -e TOKEN=370FXI bennythink/ytdlbot

docker-compose

Compatible with amd64, arm64 and armv7l

1. get docker-compose.yml

Download this file to a directory, for example ~/ytdl/docker-compose.yml

2. create VIP database

mkdir ~/ytdl/data/
touch ~/ytdl/data/vip.sqlite

3. create env file

mkdir ~/ytdl/env/
vim ~/ytdl/env/ytdl.env

you can configure all the following environment variables:

  • WORKERS: default 500

  • APP_ID: REQUIRED

  • APP_HASH: REQUIRED

  • TOKEN: REQUIRED

  • REDIS: REQUIRED

  • OWNER: owner username

  • QUOTA: quota in bytes

  • EX: quota expire time

  • MULTIPLY: vip quota comparing to normal quota

  • USD2CNY: exchange rate

  • VIP: enable VIP or not, default: disable

  • AFD_LINK

  • COFFEE_LINK

  • COFFEE_TOKEN

  • AFD_TOKEN

  • AFD_USER_ID

  • AUTHORIZED_USER: users that could use this bot, user_id, separated with ,

  • REQUIRED_MEMBERSHIP: group or channel username, user must join this group to use the bot. Could be use with above AUTHORIZED_USER

4. run

docker-compose up -d

Command

start - Let's start
about - Want to contribute?
ping - Bot running status
help - Anything troubles you?
ytdl - Download video in group
vip - Join VIP
terms - View Terms of Service

Test video

https://www.youtube.com/watch?v=BaW_jenozKc

Test Playlist

https://www.youtube.com/playlist?list=PL1Hdq7xjQCJxQnGc05gS4wzHWccvEJy0w

License

Apache License 2.0