Telegram Bot For Screenshot Generation.
An attempt to implement the screenshot generation of telegram files without downloading the entire file. Live version can be found here @ScreenShot Bot.
Screenshot Generation with Custom Watermark---Sample Video Generation---Trim video.
Watch our YouTube video for more details - Telegram Screenshot | Trim | Sample Video Generator Bot
- FFmpeg.
- Python3 (3.6 or higher).
- Clone to local machine.
$ git clone https://github.com/odysseusmax/animated-lamp.git
$ cd animated-lamp
- Create and activate virtual environment.
$ pip3 install virtualenv
$ virtualenv venv
$ source venv/bin/activate
- Install dependencies.
$ pip3 install -U -r requirements.txt
Properly setup the environment variables or populate config.py
with the values (some of the values are sensitive data, so keep them safe).
API_ID
(required) - Get your telegram API_ID from https://my.telegram.org/.API_HASH
(required) - Get your telegram API_HASH from https://my.telegram.org/.BOT_TOKEN
(required) - Obtain your bot token from Bot Father.SESSION_NAME
(required) - Name you want to call your bot's session, Eg: bot username.LOG_CHANNEL
(required) - Log channel's id.DATABASE_URL
(required) - Mongodb database URI.AUTH_USERS
(required) - Authorised user(s) id separated by space.HOST
(required) - Public URL of streaming service (Source).MAX_PROCESSES_PER_USER
(optional) - Number of parallel processes each user can have, defaults to 2.MAX_TRIM_DURATION
(optional) - Maximum allowed seconds for trimming. Defaults to 600.TRACK_CHANNEL
(optional) - User activity tracking channel's id. Only needed if you want to track and block any user. Disabled by default.SLOW_SPEED_DELAY
(optional) - Delay required between each request. Defaults to 15s.
$ python3 -m bot
Now go to your bot and do a /start
.
-
/start
- Command to start bot or check whether bot is alive. -
/settings
- Command to configure bot's behavior' -
/set_watermark
- Command to add custom watermark text to screenshots. Usage:/set_watermark watermark_text
. -
/status
- Admin/Auth users only command. Returns number of total users. -
/ban_user
- Admin/Auth users only command. Command to ban any user. Usage:/ban_user user_id ban_duration ban_reason
.user_id
- telegram id of the user,ban_duration
- ban duration in days,ban_reason
- reason for ban. All 3 parameters are required. -
/unban_user
- Admin/Auth users only command. Command to ban any banned user. Usage:/unban_user user_id
.user_id
- telegram id of the user. The parameter is required. -
/banned_users
- Admin/Auth users only command. Command to view all banned users. Usage:/banned_users
. This takes no parameters. -
/broadcast
- Admin/Auth user only command. Command to broadcast some message to all users. Usage: reply/broadcast
to the message you want to broadcast.
Screenshot Generation
- Generates screenshots from telegram video files or streaming links. Number of screenshots range from 2-10.Manual Screenshot
- Generates screenshots of specific time. Number of screenshots range from 1-10.Sample Video Generation
- Generates sample video from telegram video files or streaming links. Video duration range from 30s to 150s. Configurable in/settings
.Video Trimming
- Trims any telegram video files or streaming links. Video duration depends on the environment. By default upto 10 mins (600s).
In bot settings.
Upload Mode
- Screenshot upload mode. Eitheras image file
oras document file
. Defaults toas image file
.Watermark
- Watermark text to be embedded to screenshots. Texts upto 30 characters supported. Disabled by default.Watermark Color
- Font color to be used for watermark. Any ofwhite
,black
,red
,blue
,green
,yellow
,orange
,purple
,brown
,gold
,silver
,pink
. Defaults towhite
.Watermark Font Size
- Font size to be used for watermarks. Any ofsmall(30)
,medium(40)
,large(50)
. Defaults tomedium
.Sample Video Duration
- Sample video's duration. Any of30s
,60s
,90s
,120s
,150s
. Defaults to30s
.Screenshot Genetation Mode
- Eitherrandom
orequally spaced
. Defaults toequally spaced
.
Contributions are welcome.
You can contact me @InFoTelGroup.
Thanks to @odysseusmax for his animated-lamp Bot.
Thanks to Dan for his Pyrogram library.
Thanks to Tulir Asokan for his TgFileStream Bot.
Code released under The GNU General Public License.