An open-source Python Telegram bot to transmit Telegram files over HTTP.
1.Install Python & Git:
For Windows:
winget install Python.Python.3.11
winget install Git.Git
For Linux:
sudo apt-get update && sudo apt-get install -y python3.11 git pip
For macOS:
brew install [email protected] git
For Termux:
pkg install python -y
pkg install git -y
2.Download repository:
git clone https://github.com/EL-Coders/filestreambot
3.Change Directory:
cd filestreambot
4.Install requirements:
pip install -r requirements.txt
The variables provided below should either be completed within the config.py file or configured as environment variables.
API_ID
|TELEGRAM_API_ID
: API ID of your Telegram account, can be obtained from My Telegram.int
API_HASH
|TELEGRAM_API_HASH
: API hash of your Telegram account, can be obtained from My Telegram.str
OWNER_ID
: ID of your Telegram account, can be obtained by sending /info to @DrFileStreamBot.int
ALLOWED_USER_IDS
: A list of Telegram account IDs (separated by spaces) that are permitted to use the bot. Leave this field empty to allow anyone to use it.str
BOT_USERNAME
|TELEGRAM_BOT_USERNAME
: Username of your Telegram bot, create one using @BotFather.str
BOT_TOKEN
|TELEGRAM_BOT_TOKEN
: Telegram API token of your bot, can be obtained from @BotFather.str
CHANNEL_ID
|TELEGRAM_CHANNEL_ID
: ID of the channel where bot will forward all files received from users, can be obtained by forwarding any message from channel to @ShowJsonBot and then looking fromforward_from_chat
key.int
BOT_WORKERS
: Number of updates bot should process from Telegram at once, by default to 10 updates.int
SECRET_CODE_LENGTH
: Number of characters that file code should contain, by default to 12 characters.int
BASE_URL
: Base URL that bot should use while generating file links, can be FQDN and by default to127.0.0.1
.str
BIND_ADDRESS
: Bind address for web server, by default to0.0.0.0
to run on all possible addresses.str
PORT
: Port for web server to run on, by default to8080
.int
# Install postgresql:
sudo apt-get update && sudo apt-get install postgresql
# Change to the postgres user:
sudo su - postgres
# Create a new database user (change YOUR_USER appropriately):
createuser -P -s -e YOUR_USER
# This will be followed by you needing to input your password.
# create a new database table:
createdb -O YOUR_USER YOUR_DB_NAME
#Change YOUR_USER and YOUR_DB_NAME appropriately.
# finally:
psql -h YOUR_HOST -p YOUR_PORT -d YOUR_DB_NAME -U YOUR_USER
#This will allow you to connect to your database via your terminal.
By default, YOUR_HOST should be `localhost` & YOUR_PORT should be `5432`.
You should now be able to build your database URI. This will be:
sqldbtype://username:password@hostname:port/db_name
Replace your sqldbtype, username, password, hostname (localhost?), port (5432?), and db name in .env file.
1.Running locally:
python -m bot
2.Using Docker: (Recommended)
- Build own Docker image:
docker build -t file-stream-bot .
- Run the Docker container:
docker run -p 8080:8080 file-stream-bot
- Ask questions or doubts here.
Dr.Caduceus: Owner & developer of File Stream Bot.