{"id":50544042,"url":"https://github.com/blordeus/responsive-screenshot-generator","last_synced_at":"2026-06-03T22:30:29.446Z","repository":{"id":351160498,"uuid":"1209806751","full_name":"blordeus/responsive-screenshot-generator","owner":"blordeus","description":"CLI and GUI tool to capture desktop, tablet, and mobile screenshots of any URL","archived":false,"fork":false,"pushed_at":"2026-04-13T20:13:02.000Z","size":3611,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-13T22:12:48.703Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/blordeus.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-13T19:55:31.000Z","updated_at":"2026-04-13T20:13:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/blordeus/responsive-screenshot-generator","commit_stats":null,"previous_names":["blordeus/responsive-screenshot-generator"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/blordeus/responsive-screenshot-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blordeus%2Fresponsive-screenshot-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blordeus%2Fresponsive-screenshot-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blordeus%2Fresponsive-screenshot-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blordeus%2Fresponsive-screenshot-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blordeus","download_url":"https://codeload.github.com/blordeus/responsive-screenshot-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blordeus%2Fresponsive-screenshot-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33883102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"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":[],"created_at":"2026-06-03T22:30:27.977Z","updated_at":"2026-06-03T22:30:29.439Z","avatar_url":"https://github.com/blordeus.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Responsive Screenshot Generator\n\nA local Python tool that captures **desktop, tablet, and mobile** screenshots of any URL — with a GUI and CLI interface.\n\nBuilt for marketers and developers who need clean, consistent responsive screenshots for client reports, case studies, and portfolio work.\n\n---\n\n## Features\n\n- 📸 Captures at **Desktop (1440px)**, **Tablet (768px)**, and **Mobile (375px)** viewports\n- 🖼 Optional **composite image** — all three viewports side by side in one PNG\n- 📄 **Full page** mode to capture the entire scrollable page\n- 🖥 **GUI mode** — browser-based interface, launch with one command (or double-click)\n- ⌨️ **CLI mode** — scriptable, batch-friendly\n- 📋 **Batch mode** — process multiple URLs from a text file\n- 🗂 Auto-organized output folders per URL with timestamps\n- ⚡ Retina-quality (2x) screenshots via Playwright + Chromium\n\n---\n\n## Setup\n\n**Requirements:** Python 3.10+\n\n```bash\npip install -r requirements.txt\npython -m playwright install chromium\n```\n\n---\n\n## GUI Mode\n\nThe easiest way to use the tool. Launches a local web interface at `http://localhost:8765`.\n\n**Windows — double-click:**\n```\nlaunch.bat\n```\n\n**Any platform — terminal:**\n```bash\npython app.py\n```\n\nThe browser opens automatically. Paste a URL, configure options, and click **Capture**. Screenshots preview inline with a lightbox viewer.\n\n![GUI screenshot](https://via.placeholder.com/900x500/1e1e1e/F4F0E8?text=GUI+Preview)\n\n---\n\n## CLI Mode\n\n### Single URL\n\n```bash\npython screenshot.py https://example.com\n```\n\n### With options\n\n```bash\n# Full page + composite image\npython screenshot.py https://example.com --composite --full-page\n\n# Custom output folder + 2s wait for animations\npython screenshot.py https://example.com --output ./clients/acme --wait 2\n```\n\n### Batch mode\n\n```bash\npython screenshot.py --urls-file clients.txt --composite --output ./portfolio\n```\n\n**`clients.txt` format** — one URL per line, optional label after a tab:\n\n```\nhttps://clientone.com\nhttps://clienttwo.com\tClient Two Rebrand\n# comment lines are skipped\n```\n\n---\n\n## CLI Options\n\n| Flag | Short | Description |\n|------|-------|-------------|\n| `--composite` | `-c` | Generate a single image with all 3 viewports |\n| `--full-page` | `-f` | Capture the full scrollable page |\n| `--output DIR` | `-o` | Output directory (default: `./screenshots`) |\n| `--wait N` | `-w` | Extra seconds to wait after page load |\n| `--urls-file FILE` | `-u` | Batch mode — text file of URLs |\n\n---\n\n## Output Structure\n\nEach run creates a timestamped folder:\n\n```\nscreenshots/\n└── example_com_20250403_143022/\n    ├── desktop_1440px.png\n    ├── tablet_768px.png\n    ├── mobile_375px.png\n    └── composite.png        ← if --composite is enabled\n```\n\n---\n\n## Project Structure\n\n```\nresponsive-screenshot-generator/\n├── screenshot.py     ← core logic + CLI entry point\n├── app.py            ← FastAPI server (GUI backend)\n├── index.html        ← GUI frontend\n├── launch.bat        ← Windows double-click launcher\n├── clients.txt       ← sample batch URL file\n└── requirements.txt\n```\n\n---\n\n## Tech Stack\n\n- [Playwright](https://playwright.dev/python/) — headless Chromium for screenshot capture\n- [Pillow](https://python-pillow.org/) — composite image generation\n- [FastAPI](https://fastapi.tiangolo.com/) — local GUI server\n- [Uvicorn](https://www.uvicorn.org/) — ASGI server\n\n---\n\n## Use Cases\n\n- Generate responsive screenshots for **client case studies**\n- Document **before/after redesigns** across breakpoints\n- Audit **client sites** for mobile responsiveness issues\n- Build **portfolio assets** showing responsive design work\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblordeus%2Fresponsive-screenshot-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblordeus%2Fresponsive-screenshot-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblordeus%2Fresponsive-screenshot-generator/lists"}