{"id":17321458,"url":"https://github.com/jamesits/screenshooter","last_synced_at":"2025-10-24T01:24:59.682Z","repository":{"id":71870893,"uuid":"156653351","full_name":"Jamesits/ScreenShooter","owner":"Jamesits","description":"An automatic web page screenshot service.","archived":false,"fork":false,"pushed_at":"2019-07-04T08:26:30.000Z","size":105,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-14T15:54:46.477Z","etag":null,"topics":["csharp","screenshot","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jamesits.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null},"funding":{"ko_fi":"jamesits","custom":["https://www.buymeacoffee.com/Jamesits","https://paypal.me/Jamesits"]}},"created_at":"2018-11-08T05:11:22.000Z","updated_at":"2020-02-04T15:07:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"53878d15-0260-47ce-a0b7-1398a6a73a7a","html_url":"https://github.com/Jamesits/ScreenShooter","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Jamesits/ScreenShooter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jamesits%2FScreenShooter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jamesits%2FScreenShooter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jamesits%2FScreenShooter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jamesits%2FScreenShooter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jamesits","download_url":"https://codeload.github.com/Jamesits/ScreenShooter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jamesits%2FScreenShooter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271836852,"owners_count":24831300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-24T02:00:11.135Z","response_time":111,"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":["csharp","screenshot","telegram-bot"],"created_at":"2024-10-15T13:37:46.352Z","updated_at":"2025-10-24T01:24:59.569Z","avatar_url":"https://github.com/Jamesits.png","language":"C#","funding_links":["https://ko-fi.com/jamesits","https://www.buymeacoffee.com/Jamesits","https://paypal.me/Jamesits"],"categories":[],"sub_categories":[],"readme":"# ScreenShooter\n\nAn automatic web page screenshot service.\n\n\u003e Some links are alive, but they have already died;\u003cbr\u003e\n\u003e Some links have died, but they are still alive.\n\n## CI and Demo\n\n[![Build Status](https://dev.azure.com/nekomimiswitch/General/_apis/build/status/ScreenShooter?branchName=master)](https://dev.azure.com/nekomimiswitch/General/_build/latest?definitionId=55\u0026branchName=master)\n[![](https://images.microbadger.com/badges/version/jamesits/screenshooter.svg)](https://microbadger.com/images/jamesits/screenshooter \"Get your own version badge on microbadger.com\")\n[![](https://images.microbadger.com/badges/image/jamesits/screenshooter.svg)](https://microbadger.com/images/jamesits/screenshooter \"Get your own image badge on microbadger.com\")\n\nDemo services are not guaranteed to work - they run the latest code from the master branch. Feel free to play with them, but don't take up too much resources.\n\n* Telegram bot demo: [@ScreenShooterDemoBot](https://t.me/ScreenShooterDemoBot)\n\n[The pre-built Docker image](https://hub.docker.com/r/jamesits/screenshooter) is very large as it contains noto fonts.\n\n## Features\n\nCurrently supported:\n\nScreenshot Actuator:\n * Chromium (`HeadlessChromeActuator`)\n\nMessenging Connector:\n * Telegram (`TelegramBotConnector`)\n\n## Usage\n\n### Requirements\n\n* Minimal free memory 512MiB (Chrome eats memory, you know)\n* dotnet core 2.1\n* Manually install [all dependencies of a chromium](https://github.com/Jamesits/ScreenShooter/wiki/Deploy-Example#chrome-runtime)\n\nOn machine with \u003c4GiB memory, please set a smaller `ParallelJobs` and use a \u003e2GiB swap.\n\n### Deployment\n\nA complete example of deployment can be found at [wiki/Deploy-Example](https://github.com/Jamesits/ScreenShooter/wiki/Deploy-Example)\n\nLaunch: `dotnet ScreenShooter.dll --config path/to/your/config.toml`\n\nConfig file example:\n\n```toml\n[GlobalConfig]\n# max parallel jobs\nParallelJobs=1\n# do not retain saved file on the server\nRemoveLocalFile=true\n\n[Actuator]\n[[Actuator.HeadlessChromeActuator]]\nWindowWidth=1920\nWindowHeight=1080\n# Wait on initial page load\nPageDownloadTimeout=30000\n# Wait after page load\nDocumentLoadDelay=500\n# Wait on every scroll event\nPageScrollActionWaitDelay=2000\n# Wait after scroll (for lazy loaded images to load)\nExtraDownloadWaitDelay=10000\n# How many characters of the page title you want to prepend to the file name\nMaxTitlePrependLength=32\n\n[Connector]\n[[Connector.TelegramBotConnector]]\nApiKey=\"your-api-key\"\nMaxUploadRetries=3\nAdministrators = [ userid1, userid2, ... ]\n```\n\nNote that you can write multiple `[[Connector.x]]` to get multiple different instances of them.\n\n## Donation\n\nIf this project is helpful to you, please consider buying me a coffee.\n\n[![Buy Me A Coffee](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/Jamesits) or [PayPal](https://paypal.me/Jamesits)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesits%2Fscreenshooter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesits%2Fscreenshooter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesits%2Fscreenshooter/lists"}