A Telegram bot to stream files to web
Demo Bot (Not Exactly)»
Report a Bug
|
Request Feature
Table of Contents
This bot will give you stream links for Telegram files without the need of waiting till the download completes
TG-FileStreamBot is a Modified Version of TG-FileStreamBot by EverythingSuckz
The main working part was taken from Tulir Asokan's tg filestream. Thanks to them for their awesome projects
Press the below button to fast deploy to Heroku
then goto the variables tab for more info on setting up environmental variables.
git clone https://github.com/SpringsFern/TG-FileStreamBot
cd TG-FileStreamBot
python3 -m venv ./venv
. ./venv/bin/activate
pip3 install -r requirements.txt
python3 -m WebStreamerand to stop the whole bot, do CTRL+C
- If you wanna run this bot 24/7 on the VPS, follow these steps.
sudo apt install tmux -y
tmux
python3 -m WebStreamernow you can close the VPS and the bot will run on it.
If you're on Heroku, just add these in the Environmental Variables
or if you're Locally hosting, create a file named .env in the root directory and add all the variables there.
An example of .env file:
API_ID=452525
API_HASH=esx576f8738x883f3sfzx83
BOT_TOKEN=55838383:yourtbottokenhere
BIN_CHANNEL=-100
FQDN=192.168.27.1
HAS_SSL=False
MULTI_TOKEN1=55838383:yourfirstmulticlientbottokenhere
MULTI_TOKEN2=55838383:yoursecondmulticlientbottokenhere
MULTI_TOKEN3=55838383:yourthirdmulticlientbottokenhere
PORT=8080API_ID : Goto my.telegram.org to obtain this.
API_HASH : Goto my.telegram.org to obtain this.
BOT_TOKEN : Get the bot token from @BotFather
BIN_CHANNEL : Create a new channel (private/public), post something in your channel. Forward that post to @missrose_bot and reply /id. Now copy paste the forwarded channel ID in this field.
MULTI_TOKEN1: Add your first bot token here.
MULTI_TOKEN2: Add your second bot token here.
you may also add as many as bots you want. (max limit is not tested yet)
MULTI_TOKEN3, MULTI_TOKEN4, etc.
ALLOWED_USERS: A list of user IDs separated by comma (,). If this is set, only the users in this list will be able to use the bot.
Note Leave this field empty and anyone will be able to use your bot instance.
CHUNK_SIZE: Size of the chunk to request from Telegram server when streaming a file See more
CONNECTION_LIMIT: (default 20) - The maximum number of connections to a single Telegram datacenter.
FQDN : A Fully Qualified Domain Name if present. Defaults to WEB_SERVER_BIND_ADDRESS
HAS_SSL : (can be either True or False) If you want the generated links in https format.
HASH_LENGTH: This is the custom hash length for generated URLs. The hash length must be greater than 5 and less than 64.
KEEP_ALIVE : If you want to make the server ping itself every
NO_PORT : (can be either True or False) If you don't want your port to be displayed. You should point your PORT to 80 (http) or 443 (https) for the links to work. Ignore this if you're on Heroku.
NO_UPDATE if set to true bot won't respond to any messages
PING_INTERVAL : The time in seconds you want the servers to be pinged each time to avoid sleeping (Only for Heroku). Defaults to 600 or 10 minutes.
PORT : The port that you want your webapp to be listened to. Defaults to 8080
REQUEST_LIMIT: (default 5) - The maximum number of requests a single IP can have active at a time
SLEEP_THRESHOLD : Set a sleep threshold for flood wait exceptions happening globally in this telegram bot instance, below which any request that raises a flood wait will be automatically invoked again after sleeping for the required amount of time. Flood wait exceptions requiring higher waiting times will be raised. Defaults to 60 seconds.
STREAM_MEDIA: (default false, can be either True or False) If you want to play the media (audio or video) in browser
TRUST_HEADERS: (defaults to true) - Whether or not to trust X-Forwarded-For headers when logging requests.
WEB_SERVER_BIND_ADDRESS : Your server bind address. Defauls to 0.0.0.0
BIN_CHANNEL as an admin
/start : To check if the bot is alive or not.
To get an instant stream link, just forward any media to the bot and boom, its fast af.
- How long the links will remain valid or is there any expiration time for the links generated by the bot?
The links will will be valid as longs as your bot is alive and you haven't deleted the log channel.
Feel free to contribute to this project if you have any further ideas
You can contact either via my Telegram Group
- Me
- EverythingSuckz for his TG-FileStreamBot
- Tulir Asokan for his tg filestream
- eyaadh for his awesome Megatron Bot.
- BlackStone for adding multi-client support.
- Lonami for his Telethon Library