Telegram File Stream Bot

Cover Image

A Telegram bot to stream files to web.
Demo Bot ยป
Report a Bug | Request Feature


Table of Contents
  1. About this Bot
  2. How to make your own
  3. Setting up things
  4. How to use the bot
  5. About Channel Support
  6. Credits
## About This Bot

Telegram Logo

This bot will give you stream links for Telegram files without the need of waiting till the download completes

### Original Repository The main working part was taken from [Megatron](https://github.com/eyaadh/megadlbot_oss) and thanks to [eyaadh](https://github.com/eyaadh) for his awesome project. ## How to make your own Either you could locally host or deploy on [Heroku](https://heroku.com) ### Deploy on Heroku 1. Fork This Repo 2. In .github/workflow/YOURACTION.yml 3. edit this file and at last line in file replace the app name with your heroku app name 4.```URL: "https://avifilestreambot.herokuapp.com"``` 5. change this name ๐Ÿ˜‘๐Ÿ˜‘๐Ÿ˜‘ 6. If You nota Do this bot will not work ### So Follow Above Steps ๐Ÿ‘† and then also deply other wise not work Press the below button to Fast deploy on Heroku [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy) then goto the variables tab for more info on setting up environmental variables. ### Host it on VPS or Locally ```sh git clone https://github.com/AbirHasan2005/Pyro-FileStreamBot cd TG-FileStreamBot virtualenv -p /usr/bin/python3 venv . ./venv/bin/activate pip install -r requirements.txt python3 -m WebStreamer ``` and to stop the whole bot, do CTRL+C ## Setting up things 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: ```sh API_ID=452525 API_HASH=esx576f8738x883f3sfzx83 BOT_TOKEN=55838383:yourtbottokenhere BIN_CHANNEL=-100 PORT=8080 FQDN=your_server_ip OWNER_ID=your_user_id DATABASE_URL=mongodb_uri ``` ### Mandatory Vars `API_ID` : Goto [my.telegram.org](https://my.telegram.org) to obtain this. `API_HASH` : Goto [my.telegram.org](https://my.telegram.org) to obtain this. `BOT_TOKEN` : Get the bot token from [@BotFather](https://telegram.dog/BotFather) `BIN_CHANNEL` : Create a new channel (private/public), add [@missrose_bot](https://telegram.dog/MissRose_bot) as admin to the channel and type /id. Now copy paste the ID into this field. `OWNER_ID` : Your Telegram User ID `DATABASE_URL` : MongoDB URI for saving User IDs when they first Start the Bot. We will use that for Broadcasting to them. I will try to add more features related with Database. If you need help to get the URI you can ask in [Me Telegram](https://t.me/Avishkarpatil). ### Optional Vars `UPDATES_CHANNEL` : Put a Public Channel Username, so every user have to Join that channel to use the bot. Must add bot to channel as Admin to work properly. `BANNED_CHANNELS` : Put IDs of Banned Channels where bot will not work. You can add multiple IDs & separate with Space. `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. `WORKERS` : Number of maximum concurrent workers for handling incoming updates. Defaults to `3` `PORT` : The port that you want your webapp to be listened to. Defaults to `8080` `WEB_SERVER_BIND_ADDRESS` : Your server bind adress. Defauls to `0.0.0.0` `NO_PORT` : 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. `FQDN` : A Fully Qualified Domain Name if present. Defaults to `WEB_SERVER_BIND_ADDRESS` ## How to use the bot :warning: **Before using the bot, don't forget to add the bot to the `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. ### Channel Support Bot also Supported with Channels. Just add bot Channel as Admin. If any new file comes in Channel it will edit it with **Get Download Link** Button. ## Credits - [@Avishkarpatil](https://telegram.me/Avishkarpatil) - [@EverythingSuckz](https://github.com/EverythingSuckz) & [@AbirHasan2005](https://github.com/AbirHasan2005) - [eyaadh](https://github.com/eyaadh) for his awesome [Megatron Bot](https://github.com/eyaadh/megadlbot_oss) - [Dan Tรจs](https://telegram.dog/haskell) for his [Pyrogram Library](https://github.com/pyrogram/pyrogram)