Git Product home page Git Product logo

ytdlbot's Introduction

ytdlbot

docker image

YouTube Download Bot🚀

Download videos from YouTube and other platforms through a Telegram Bot


Deploy

Can't deploy? Fork to your personal account and deploy it there!

Usage

https://t.me/benny_ytdlbot

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

Limitations of my bot

I don't have unlimited servers and bandwidth, so I have to make some restrictions.

In that case, I added one limitation: 10 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
  7. support different video resolutions
  8. support sending as file or streaming as video
  9. supports celery worker distribution - faster than before.

How to deploy?

You can deploy this bot on any platform that supports Python.

Heroku

Use the button above! It should work like a magic but with limited functionalities.

Run natively on your machine

  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_bot.py

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

Complete deployment guide for docker-compose

  • contains every functionality
  • compatible with amd64, arm64 and armv7l

1. get docker-compose.yml

Download docker-compose.yml file to a directory

2. create data directory

mkdir data
mkdir env

3. configuration

3.1. set environment variables

vim env/ytdl.env

you can configure all the following environment variables:

  • WORKERS: default 200

  • APP_ID: REQUIRED

  • APP_HASH: REQUIRED

  • TOKEN: REQUIRED

  • REDIS: REQUIRED ⚠️ Don't publish your redis server on the internet. ⚠️

  • OWNER: owner username

  • QUOTA: quota in bytes

  • EX: quota expire time

  • MULTIPLY: vip quota comparing to normal quota

  • USD2CNY: exchange rate

  • VIP: VIP mode, 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

  • ENABLE_CELERY: Distribution mode, default: disable. You'll can setup workers in different locations.

  • MYSQL_HOST: you'll have to setup MySQL if you enable VIP mode

  • MYSQL_USER

  • MYSQL_PASS

3.2 Set up init data

3.2.1 Create MySQL db

docker-compose up -d
docker-compose exec mysql bash

mysql -u root -p

> create database vip;

3.2.2 Setup flower db in ytdlbot/ytdlbot/data

{} ~ 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()

3.2.3 Setup instagram cookies

You can use this extension Get cookies.txt to get instagram cookies

vim  data/instagram.com_cookies.txt
# paste your cookies

3.3 Tidy docker-compose.yml

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 an `deploy' key:

    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 1500M

Be sure to use --compatibility when deploying.

4. run

4.1. standalone mode

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

4.2 VIP mode

You'll have to start MySQL and redis to support VIP mode.

docker-compose up -d mysql redis ytdl

4.3 Celery worker mode

Firstly, set ENABLE_CELERY to true. And then, on one machine:

docker-compose up -d

On the other machine:

docker-compose -f worker up -d

⚠️ Bear in mind don't publish redis directly on the internet! You can use WireGuard to wrap it up.

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
settings - Set your preference
direct - Download file directly

Test data

Test video

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

Test Playlist

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

Test m3u8

https://dmesg.app/m3u8/prog_index.m3u8

Donation

License

Apache License 2.0

ytdlbot's People

Contributors

bennythink avatar jasonkhew96 avatar tomyangsh avatar nasirhossainakash avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.