{"id":19491414,"url":"https://github.com/faisal-fida/frameshot","last_synced_at":"2026-05-02T08:34:12.768Z","repository":{"id":103033325,"uuid":"455602020","full_name":"faisal-fida/FrameShot","owner":"faisal-fida","description":"Generate Screenshot without downloading Video","archived":false,"fork":false,"pushed_at":"2022-08-12T06:58:30.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-25T19:45:01.734Z","etag":null,"topics":["automation","ffmpeg","python","screenshot-generation","telegram","video-processing"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/faisal-fida.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-04T15:39:32.000Z","updated_at":"2024-10-06T10:41:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"d8b03ebb-1fb9-430b-8ddd-70885dfa015c","html_url":"https://github.com/faisal-fida/FrameShot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/faisal-fida/FrameShot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faisal-fida%2FFrameShot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faisal-fida%2FFrameShot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faisal-fida%2FFrameShot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faisal-fida%2FFrameShot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faisal-fida","download_url":"https://codeload.github.com/faisal-fida/FrameShot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faisal-fida%2FFrameShot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32528298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","ffmpeg","python","screenshot-generation","telegram","video-processing"],"created_at":"2024-11-10T21:16:45.267Z","updated_at":"2026-05-02T08:34:12.746Z","avatar_url":"https://github.com/faisal-fida.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Description\n\n\u003e An attempt to implement the screenshot generation of telegram files without downloading the entire file.\n\n## Installation Guide\n\n### You can also deploy straight to Heroku!\n\n### Prerequisites\n* FFmpeg.\n* Python3 (3.6 or higher).\n\n### Local setup\n* Clone to local machine.\n```\n$ git clone https://github.com/odysseusmax/animated-lamp.git\n$ cd animated-lamp\n````\n\n* Create and activate virtual environment.\n```\n$ pip3 install virtualenv\n$ virtualenv venv\n$ source venv/bin/activate\n```\n\n* Install dependencies.\n```\n$ pip3 install -U -r requirements.txt\n```\n\n### Environment Variables\n\nProperly setup the environment variables or populate `config.py` with the values (some of the values are sensitive data, so keep them safe).\n\n* `API_ID`(required) - Get your telegram API_ID from [https://my.telegram.org/](https://my.telegram.org/).\n* `API_HASH`(required) - Get your telegram API_HASH from [https://my.telegram.org/](https://my.telegram.org/).\n* `BOT_TOKEN`(required) - Obtain your bot token from [Bot Father](https://t.me/BotFather \"Bot Father\").\n* `SESSION_NAME`(required) - Name you want to call your bot's session, Eg: bot username.\n* `LOG_CHANNEL`(required) - Log channel's id.\n* `DATABASE_URL`(required) - Mongodb database URI.\n* `AUTH_USERS`(required) - Authorised user(s) id separated by space.\n* `HOST`(required) - Public URL of streaming service ([Source](https://github.com/TGExplore/musical-waddle)).\n* `MAX_PROCESSES_PER_USER`(optional) - Number of parallel processes each user can have, defaults to 2.\n* `MAX_TRIM_DURATION`(optional) - Maximum allowed seconds for trimming. Defaults to 600.\n* `TRACK_CHANNEL`(optional) - User activity tracking channel's id. Only needed if you want to track and block any user. Disabled by default.\n* `SLOW_SPEED_DELAY`(optional) - Delay required between each request. Defaults to 15s.\n\n### Run bot\n`$ python3 -m bot`\n\nNow go to your bot and do a `/start`.\n\n## Supported commands and functions\n\n### Commands\n\n* `/start` - Command to start bot or check whether bot is alive.\n* `/settings` - Command to configure bot's behavior'\n* `/set_watermark` - Command to add custom watermark text to screenshots. Usage: `/set_watermark watermark_text`.\n\n* `/status` - Admin/Auth users only command. Returns number of total users.\n* `/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.\n* `/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.\n* `/banned_users` - Admin/Auth users only command. Command to view all banned users. Usage: `/banned_users`. This takes no parameters.\n* `/broadcast` - Admin/Auth user only command. Command to broadcast some message to all users. Usage: reply `/broadcast` to the message you want to broadcast.\n\n### Functions\n* `Screenshot Generation` - Generates screenshots from telegram video files or streaming links. Number of screenshots range from 2-10.\n* `Manual Screenshot` - Generates screenshots of specific time. Number of screenshots range from 1-10.\n* `Sample Video Generation` - Generates sample video from telegram video files or streaming links. Video duration range from 30s to 150s. Configurable in `/settings`.\n* `Video Trimming` - Trims any telegram video files or streaming links. Video duration depends on the environment. By default upto 10 mins (600s).\n\n### Settings\nIn bot settings.\n* `Upload Mode` - Screenshot upload mode. Either `as image file` or `as document file`. Defaults to `as image file`.\n* `Watermark` - Watermark text to be embedded to screenshots. Texts upto 30 characters supported. Disabled by default.\n* `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`.\n* `Watermark Font Size` - Font size to be used for watermarks. Any of `small(30)`, `medium(40)`, `large(50)`. Defaults to `medium`.\n* `Sample Video Duration` - Sample video's duration. Any of `30s`, `60s`, `90s`, `120s`, `150s`. Defaults to `30s`.\n* `Screenshot Genetation Mode` - Either `random` or `equally spaced`. Defaults to `equally spaced`.\n\n\n## Contributions\nContributions are welcome.\n\n## Thanks\n\nThanks to [@odysseusmax](https://tx.me/odysseusmax) for his [animated-lamp](https://github.com/odysseusmax/animated-lamp) Bot.\nThanks to [Dan](https://github.com/delivrance \"Dan\") for his [Pyrogram](https://github.com/pyrogram/pyrogram \"Pyrogram\") library.\nThanks to [Tulir Asokan](https://github.com/tulir \"Tulir Asokan\") for his [TgFileStream](https://github.com/tulir/tgfilestream \"TgFileStream\") Bot.\n\n## License\nCode released under [The GNU General Public License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaisal-fida%2Fframeshot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaisal-fida%2Fframeshot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaisal-fida%2Fframeshot/lists"}