# TG-FileStreamBot **Repository Path**: abobot/TG-FileStreamBot ## Basic Information - **Project Name**: TG-FileStreamBot - **Description**: No description available - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-24 - **Last Updated**: 2022-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

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. Contributing
  6. Contact me
  7. 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 use it](https://isedu.top/index.php/archives/31/) ## How to make your own Either you could locally host or deploy on [Heroku](https://heroku.com) ### Deploy on Heroku Press the below button to fast deploy to Heroku - [![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https%3A%2F%2Fgithub.com%2Fzxlp%2Ftgfs) 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/EverythingSuckz/TG-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 MULTI_CLIENT=True MULTI_TOKEN1=55838383:yourfirstmulticlientbottokenhere MULTI_TOKEN2=55838383:yoursecondmulticlientbottokenhere MULTI_TOKEN3=55838383:yourthirdmulticlientbottokenhere BIN_CHANNEL=-100 PORT=8080 FQDN=yourserverip HAS_SSL=False ``` ### 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), post something in your channel. Forward that post to [@missrose_bot](https://telegram.dog/MissRose_bot) and **reply** `\id`. Now copy paste the forwarded channel ID in this field. ### For MultiClient `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. ### Optional Vars `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 address. Defauls to `0.0.0.0` `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. `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. `PING_INTERVAL` : The time in ms you want the servers to be pinged each time to avoid sleeping (Only for Heroku). Defaults to `1200` or 20 minutes. ## How to use the bot :warning: **Before using the bot, don't forget to add all the bots (multi-client ones too) 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. ## faQ - 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. ## Contributing Feel free to contribute to this project if you have any further ideas ## Contact me [![Telegram Channel](https://img.shields.io/static/v1?label=Join&message=Telegram%20Channel&color=blueviolet&style=for-the-badge&logo=telegram&logoColor=violet)](https://xn--r1a.click/WhySooSerious) [![Telegram Group](https://img.shields.io/static/v1?label=Join&message=Telegram%20Group&color=blueviolet&style=for-the-badge&logo=telegram&logoColor=violet)](https://xn--r1a.click/WhyThisUsername) You can contact either via my [Telegram Group](https://xn--r1a.click/WhyThisUsername) ~~or you can PM me on [@EverythingSuckz](https://xn--r1a.click/EverythingSuckz)~~ ## Credits - Me - [eyaadh](https://github.com/eyaadh) for his awesome [Megatron Bot](https://github.com/eyaadh/megadlbot_oss). - [BlackStone](https://github.com/eyMarv) for adding multi-client support. - [Dan Tès](https://telegram.dog/haskell) for his [Pyrogram Library](https://github.com/pyrogram/pyrogram) - [TheHamkerCat](https://github.com/TheHamkerCat) for helping me with my common doubts. ## Copyright Copyright (C) 2021 [EverythingSuckz](https://github.com/EverythingSuckz) under [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.en.html). TG-FileStreamBot is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.en.html) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.