mirror of
https://github.com/omg-xtao/ytdlbot.git
synced 2024-11-16 03:45:23 +00:00
release
This commit is contained in:
parent
6d51e3e5c1
commit
78e5ed8568
1
.gitignore
vendored
1
.gitignore
vendored
@ -140,3 +140,4 @@ dmypy.json
|
|||||||
/*.sqlite
|
/*.sqlite
|
||||||
/.idea/dataSources.xml
|
/.idea/dataSources.xml
|
||||||
/.idea/sqldialects.xml
|
/.idea/sqldialects.xml
|
||||||
|
/.idea/.gitignore
|
||||||
|
8
.idea/.gitignore
vendored
8
.idea/.gitignore
vendored
@ -1,8 +0,0 @@
|
|||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
91
README.md
91
README.md
@ -1,39 +1,97 @@
|
|||||||
# ytdl-bot
|
# ytdlbot
|
||||||
|
|
||||||
|
YouTube Download🚀
|
||||||
|
|
||||||
Download videos from YouTube and other platforms through a Telegram Bot
|
Download videos from YouTube and other platforms through a Telegram Bot
|
||||||
|
|
||||||
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)
|
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)
|
||||||
|
|
||||||
# Usage:
|
# Usage
|
||||||
|
|
||||||
[https://t.me/benny_ytdlbot](https://t.me/benny_ytdlbot)
|
[https://t.me/benny_ytdlbot](https://t.me/benny_ytdlbot)
|
||||||
|
|
||||||
Send link from YouTube directly to the bot.
|
Send link directly to the bot. Any
|
||||||
Any platform [supported by youtube-dl](https://ytdl-org.github.io/youtube-dl/supportedsites.html) will also work.
|
platform [supported by youtube-dl](https://ytdl-org.github.io/youtube-dl/supportedsites.html) 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: 5GiB 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
|
||||||
|
|
||||||
# Feature
|
|
||||||
![](assets/1.jpeg)
|
![](assets/1.jpeg)
|
||||||
|
|
||||||
1. fast download and upload. Many thanks to [FastTelethon](https://gist.github.com/painor/7e74de80ae0c819d3e9abcf9989a8dd6) and
|
1. fast download and upload.
|
||||||
[JasonKhew96](https://github.com/JasonKhew96)'s contribution on this!
|
2. ads free
|
||||||
2. ads free - I'll never send ads to you, also I don't even print logs that will identify you.
|
|
||||||
So feel free to download any type of video from any website.
|
|
||||||
|
|
||||||
3. support progress bar
|
3. support progress bar
|
||||||
|
4. audio conversion
|
||||||
|
5. playlist support
|
||||||
|
6. VIP support
|
||||||
|
|
||||||
# How to deploy?
|
# How to deploy?
|
||||||
|
|
||||||
## Normal
|
## Normal
|
||||||
1. clone code and update submodule `git submodule update --init --recursive`
|
|
||||||
|
1. clone code
|
||||||
2. install ffmpeg
|
2. install ffmpeg
|
||||||
3. install Python 3.6+
|
3. install Python 3.6+
|
||||||
4. pip3 install -r requirements.txt
|
4. pip3 install -r requirements.txt
|
||||||
5. set environment variables `TOKEN`, `APP_ID` and `APP_HASH`
|
5. set environment variables `TOKEN`, `APP_ID` and `APP_HASH`, and more if you like.
|
||||||
6. `python3 bot.py`
|
6. `python3 ytdl.py`
|
||||||
7. supervisor on your own preference.
|
|
||||||
|
|
||||||
## docker
|
## docker
|
||||||
see [here](https://github.com/tgbot-collection/BotsRunner)
|
|
||||||
|
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
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mkdir ~/ytdl/data/
|
||||||
|
touch ~/ytdl/data/vip.sqlite
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. create env file
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mkdir ~/ytdl/env/
|
||||||
|
vim ~/ytdl/env/ytdl.env
|
||||||
|
```
|
||||||
|
|
||||||
|
you can configure all the following environment variables:
|
||||||
|
|
||||||
|
* 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
|
||||||
|
* WORKERS: default 100
|
||||||
|
|
||||||
|
### 4. run
|
||||||
|
|
||||||
|
```
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
# Command
|
# Command
|
||||||
|
|
||||||
```
|
```
|
||||||
start - Let's start
|
start - Let's start
|
||||||
about - Want to contribute?
|
about - Want to contribute?
|
||||||
@ -45,10 +103,13 @@ terms - View Terms of Service
|
|||||||
```
|
```
|
||||||
|
|
||||||
# Test video
|
# Test video
|
||||||
|
|
||||||
https://www.youtube.com/watch?v=BaW_jenozKc
|
https://www.youtube.com/watch?v=BaW_jenozKc
|
||||||
|
|
||||||
# Test Playlist
|
# Test Playlist
|
||||||
|
|
||||||
https://www.youtube.com/playlist?list=PL1Hdq7xjQCJxQnGc05gS4wzHWccvEJy0w
|
https://www.youtube.com/playlist?list=PL1Hdq7xjQCJxQnGc05gS4wzHWccvEJy0w
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
Apache License 2.0
|
Apache License 2.0
|
||||||
|
10
config.py
10
config.py
@ -9,15 +9,15 @@ __author__ = "Benny <benny.think@gmail.com>"
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
QUOTA = 5 * 1024 * 1024 * 1024 # 5G
|
QUOTA = os.getenv("QUOTA", 5 * 1024 * 1024 * 1024) # 5G
|
||||||
if os.uname().sysname == "Darwin":
|
if os.uname().sysname == "Darwin":
|
||||||
QUOTA = 10 * 1024 * 1024 # 10M
|
QUOTA = 10 * 1024 * 1024 # 10M
|
||||||
|
|
||||||
EX = 24 * 3600
|
EX = os.getenv("EX", 24 * 3600)
|
||||||
MULTIPLY = 5 # VIP1 is 5*5-25G, VIP2 is 50G
|
MULTIPLY = os.getenv("MULTIPLY", 5) # VIP1 is 5*5-25G, VIP2 is 50G
|
||||||
USD2CNY = 6 # $5 --> ¥30
|
USD2CNY = os.getenv("USD2CNY", 6) # $5 --> ¥30
|
||||||
|
|
||||||
ENABLE_VIP = False
|
ENABLE_VIP = os.getenv("VIP", False)
|
||||||
AFD_LINK = os.getenv("AFD_LINK", "https://afdian.net/@BennyThink")
|
AFD_LINK = os.getenv("AFD_LINK", "https://afdian.net/@BennyThink")
|
||||||
COFFEE_LINK = os.getenv("COFFEE_LINK", "https://www.buymeacoffee.com/bennythink")
|
COFFEE_LINK = os.getenv("COFFEE_LINK", "https://www.buymeacoffee.com/bennythink")
|
||||||
COFFEE_TOKEN = os.getenv("COFFEE_TOKEN")
|
COFFEE_TOKEN = os.getenv("COFFEE_TOKEN")
|
||||||
|
26
docker-compose.yml
Normal file
26
docker-compose.yml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
socat:
|
||||||
|
image: jmb12686/socat
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
entrypoint: [ "socat", "tcp-listen:2375,fork,reuseaddr","unix-connect:/var/run/docker.sock" ]
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis:alpine
|
||||||
|
restart: always
|
||||||
|
logging:
|
||||||
|
driver: none
|
||||||
|
|
||||||
|
ytdl:
|
||||||
|
image: bennythink/ytdlbot
|
||||||
|
env_file:
|
||||||
|
- env/ytdl.env
|
||||||
|
volumes:
|
||||||
|
- ./data/vip.sqlite:/ytdlbot/vip.sqlite
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- socat
|
||||||
|
- redis
|
Loading…
Reference in New Issue
Block a user