All Projects → odysseusmax → animated-lamp

odysseusmax / animated-lamp

Licence: GPL-3.0 license
Telegram Bot For Screenshot Generation

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to animated-lamp

SophiaBot
Hi There ✋ I'M Sophia 3.0 ❤️ NEW VERSION OF SOPHIA.. Source Code of @SophiaSLBot.
Stars: ✭ 44 (-72.84%)
Mutual labels:  pyrogram
RemoteAssistance-JAVA
RemoteControl like TeamViewer(JAVA)
Stars: ✭ 28 (-82.72%)
Mutual labels:  screenshot
Screenshot-Landing-Page
Tailwind CSS Starter Template - Screenshot Landing Page
Stars: ✭ 100 (-38.27%)
Mutual labels:  screenshot
SpamProtectionRobot
Anti Spam/NSFW Telegram Bot Written In Python With Pyrogram.
Stars: ✭ 46 (-71.6%)
Mutual labels:  pyrogram
ngx-feedback
Angular user feedback collector library
Stars: ✭ 17 (-89.51%)
Mutual labels:  screenshot
USERGE-X
USERGE-X. What the X ?
Stars: ✭ 133 (-17.9%)
Mutual labels:  pyrogram
VIDEOconvertor
A stable and Fast telegram video convertor bot which can encode into different libs and resolution, compress videos, convert video into audio and other video formats, rename with thumbnail support, generate screenshot and trim videos.
Stars: ✭ 180 (+11.11%)
Mutual labels:  screenshot
EasyScreenshot
The easy way to take screenshots of your app programmatically.
Stars: ✭ 16 (-90.12%)
Mutual labels:  screenshot
vitalsource-printer
Take screenshot, click next page, then do it again...
Stars: ✭ 51 (-68.52%)
Mutual labels:  screenshot
pyrubrum
An intuitive framework for creating Telegram bots.
Stars: ✭ 33 (-79.63%)
Mutual labels:  pyrogram
NoPMsBot
https://telegram.dog/ShriMADhaBot
Stars: ✭ 127 (-21.6%)
Mutual labels:  pyrogram
screenshot-tweet
Screenshot a tweet.
Stars: ✭ 66 (-59.26%)
Mutual labels:  screenshot
LibQtScreen
Qt library for making directx and opengl screenshots.
Stars: ✭ 43 (-73.46%)
Mutual labels:  screenshot
Mega.nz-Bot
Simple Telegram Bot to Download and Upload Files From Mega.nz
Stars: ✭ 243 (+50%)
Mutual labels:  pyrogram
resumify
Capture screenshot and make PDF on your HTML presentation.
Stars: ✭ 28 (-82.72%)
Mutual labels:  screenshot
PyKorone
PyKorone is a modern and fully asynchronous Telegram bot to improve you Telegram experience, written in Python3 using Pyrogram.
Stars: ✭ 17 (-89.51%)
Mutual labels:  pyrogram
Channel-Message-Editor
A telegram channel message editor bot.
Stars: ✭ 21 (-87.04%)
Mutual labels:  pyrogram
AutoScreenshot
Automatic screenshot maker for Windows
Stars: ✭ 49 (-69.75%)
Mutual labels:  screenshot
zipline
A ShareX/file upload server that is easy to use, packed with features, and with an easy setup!
Stars: ✭ 215 (+32.72%)
Mutual labels:  screenshot
Katastrophe
Command Line Tool to download torrents
Stars: ✭ 85 (-47.53%)
Mutual labels:  screenshot

Screenshotit_bot

Telegram Bot For Screenshot Generation.

Description

An attempt to implement the screenshot generation of telegram files without downloading the entire file. Live version can be found here @screenshotit_bot.

Installation Guide

Prerequisites

  • FFmpeg.
  • Python3 (3.6 or higher).

Local setup

The setup given here is for a linux environment (Debian/Ubuntu).

  • Clone to local machine.
$ git clone https://github.com/odysseusmax/animated-lamp.git
$ cd animated-lamp
  • Create and activate virtual environment.
$ python3 -m venv venv
$ source venv/bin/activate
  • Install dependencies.
$ pip3 install -U -r requirements.txt

Environment Variables

Properly setup the environment variables or populate config.py with the values. Setting up environment variables is advised as some of the values are sensitive data, and should be kept secret.

  • 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.
  • LOG_CHANNEL(required) - Log channel's id.
  • DATABASE_URL(required) - Mongodb database URI.
  • AUTH_USERS(required) - Admin(s) of the bot. User's telegram id separated by space. Atleast one id should be specified.
  • HOST(required) - Public URL of file streaming service (See Setting up Streaming Service).
  • SESSION_NAME(optional) - Name you want to call your bot's session, Eg: bot's username.
  • MAX_PROCESSES_PER_USER(optional) - Number of parallel processes each user can have, defaults to 2.
  • MAX_TRIM_DURATION(optional) - Maximum allowed video trim duration in seconds. Defaults to 600s.
  • 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 interaction from users in seconds. Defaults to 5s.
  • TIMEOUT (optional) - Maximum time alloted to each process in seconds, after which process will be cancelled. Defaults to 1800s(30 mins).
  • DEBUG (optional) - Set some value to use DEBUG logging level. INFO by default.
  • IAM_HEADER (optional) - Authentication token for streaming service. Defaults to ''.
  • WORKER_COUNT (optional) - Number of process to be handled at a time. Defaults to 20.

Run bot

$ python3 -m bot

Now go and /start the bot. If everything went right, bot will respond with welcome message.

Setting up Streaming Service

The streaming service can be a custom version of TgFileStream, modded to work with this setup. The mod basicaly is adding a type of header based authentication and changing the endpoints. The authentication part is optional and the endpoint used here is /file/:chat_id/:message_id. Make sure to note these changes when deploying your own instance. The streaming service used for @screenshotit_bot is not related to TgFileStream and I do not plan to make it OSS.

Supported commands and functions

Commands

General commands

  • /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.

Admin commands

Any user specified in AUTH_USERS can use these commands.

  • /status - Returns number of total users.
  • /ban_user - 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 - Command to unban any banned user. Usage: /unban_user user_id. user_id - telegram id of the user. The parameter is required.
  • /banned_users - Command to view all banned users. Usage: /banned_users. This takes no parameters.
  • /broadcast - Command to broadcast some message to all users. Usage: reply /broadcast to the message you want to broadcast.

Functions

  • Screenshot Generation - Generates screenshots from telegram video files or streaming links. Number of screenshots range from 2-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.

Settings

In bot settings.

  • Upload Mode - Screenshot upload mode. Either as image file or as document file. Defaults to as 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 of white, black, red, blue, green, yellow, orange, purple, brown, gold, silver, pink. Defaults to white.
  • Watermark Font Size - Font size to be used for watermarks. Any of small(30), medium(40), large(50). Defaults to medium.
  • Watermark Position - Watermark text's position. Defaults to bottom left.
  • Sample Video Duration - Sample video's duration. Any of 30s, 60s, 90s, 120s, 150s. Defaults to 30s.
  • Screenshot Genetation Mode - Either random or equally spaced. Defaults to equally spaced.

Contributions

Contributions are welcome.

Contact

You can contact me @odysseusmax.

Thanks

Thanks to Dan for his Pyrogram library.

Thanks to Tulir Asokan for his TgFileStream Bot.

Dependencies

  • pyrogram
  • tgcrypto
  • motor
  • dnspython
  • async-timeout
  • aiohttp

License

Code released under The GNU General Public License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].