Skip to content

sudospaes/rigel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rigel, A cool downloader bot 🌠

A personal Telegram bot for downloading from various media. Powered by ytdlp 😉

This bot supports concurrency, meaning that if multiple users request the same content simultaneously, it downloads the file only once and sends it to all of them.

Supported media:

  • 📌 Pinterest (Video)
  • 📺 Youtube (Video / Audio)
  • 🎧 Youtube Music
  • 👯 Tiktok (Video)
  • 📸 Instagram (Video)
  • ☁️ SoundCloud

Admin's Commands

Command Example Description
/users /users Show allowed users
/add /add 12345667 <-- (user id) name <-- (a name) Add a user to can use bot
/remove /remove 12345667 <-- (user id) Remove a user to can't use bot
/clean /clean Delete all allowed users
/destroy /destroy Clearing the entire archive
/update /update Update yt-dlp to latest version

Usage

Just send your media link to bot and get your content 😃. Of course, the admin needs to add users who are allowed to use the bot to the list of users using the commands mentioned.

Setup and deploy

  1. Install Bun, Ytdlp, ffmpeg and aria2.
  2. Install Docker and run aiogram/telegram-bot-api image as a container.
  3. Clone it this repo git clone https://github.com/sudospaes/rigel.git.
  4. Move to cloned directory.
  5. Run bun i to install dependencies.
  6. Create .env in the current directory and paste these in that.
ADMIN_ID="" # You can get it from @userinfobot.
ADMIN_UN="" # Your username without @ if you want.
BOT_TOKEN="" # Your bot token.
LOCAL_API="" # Your telegram-bot-api container address.
CAPTION="" # Bot messages caption.
  1. Create ytcookies.txt in the current directory and put your youtube cookies on that.
  2. Run bun run init --name first_init to initialize database for the first time.
  3. Run bun start
  4. Done! if everything is correct, you should see "Bot is running...".

How to update

  1. Stop bot
  2. Move to cloned directory.
  3. Run these commands:
git fetch origin
git merge origin/main
git restore bun.lock
git pull origin main
bun i
bun run init --name new_update

FAQ

How does the bot communicate with ytdlp ?

It executes ytdlp as a process and understands its output. Although not advanced, it is good for having a lightweight wrapper and not depending on additional packages.

Why we need local bot api ?

To bypass the limitations of regular bots on Telegram. Read This

About

A Telegram downloader bot. Powered by YT-DLP

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors