Twitter Screenshot Generator
Pricing
from $8.95 / 1,000 twitter/x screenshots
Twitter Screenshot Generator
Capture clean screenshots of public Twitter/X posts. Export dark, light, or paired theme images with tweet IDs, dimensions, visible metadata, and download URLs for API workflows.
Pricing
from $8.95 / 1,000 twitter/x screenshots
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
📸 Twitter screenshot generator for public X posts
Twitter Screenshot Generator captures clean images of public X/Twitter posts. Paste post URLs, mobile URLs, @handle/status/id paths, or raw status IDs, choose a dark, light, or paired theme, and get downloadable screenshot files plus a structured dataset with source IDs, image dimensions, visible tweet metadata, and scrape timestamps.
Use this Actor when you need repeatable tweet screenshots for reporting, research, social media monitoring, journalism notes, creator workflows, or internal archives. Instead of opening every post by hand and cropping screenshots one by one, you get consistent post images saved in Apify storage and linked from dataset rows you can export, schedule, or consume through the Apify API.
For a small first run, keep the prefilled public X post, leave Theme set to Dark, and start the Actor. Once the output looks right, paste your own list of public post links or status IDs.
✅ What this Actor does
- Captures clean screenshots of public Twitter/X posts.
- Accepts
x.com,twitter.com, mobile Twitter URLs,@handle/status/idpaths, and raw status IDs. - Saves each screenshot as a PNG file in Apify key-value storage.
- Can also save a JPEG copy when Image format is set to
PNG and JPEG. - Supports dark screenshots, light screenshots, or both themes in one run.
- Emits one dataset item per successfully captured post and theme.
- Adds source fields such as original input, normalized URL, tweet ID, theme, screenshot key, download URL, image dimensions, file size, and capture time.
- Includes visible author handle, author name, and tweet text when those details are available on the rendered public post.
- Skips deleted, protected, unavailable, unsupported, or temporarily unreachable posts without saving failure rows.
The Actor is focused on known public post URLs and IDs. It does not discover posts from search, profiles, timelines, replies, followers, likes, repost users, or private accounts.
📦 Data you can export
Each output row represents one successfully captured screenshot. Core fields include:
inputandoriginalUrl- the value you submitted.normalizedUrlandsourceUrl- the normalized X post URL used for capture.tweetId- the public post ID.theme-darkorlight.status-successfor saved screenshot rows.screenshotKeyandscreenshotUrl- the PNG file in Apify storage.scrapedAt- UTC timestamp for the capture.capturedElement-tweet.imageWidth,imageHeight, andsizeBytes.authorHandle,authorName, andvisibleTextwhen visible on the post page.jpegKeyandjpegUrlwhen JPEG export is enabled.
You can open the dataset in Apify, export it as JSON, CSV, Excel, XML, RSS, or HTML, call it through the Apify API, schedule repeat runs, or connect it to webhooks and integrations. Image files are stored separately and linked from each dataset row.
🚀 How to run
- Add one or more public Twitter/X post targets in Twitter/X posts.
- Use full URLs such as
https://x.com/_Sagiquarius_/status/2059744300075008499, mobile URLs,@handle/status/idpaths, or raw status IDs. - Keep Screenshot limit small for your first run.
- Choose Theme:
Dark,Light, orBoth. - Choose Image format:
PNGorPNG and JPEG. - Start the Actor and open the dataset.
- Use each row's
screenshotUrlto download the saved image.
Deleted posts, protected posts, unsupported targets, and posts that X does not make publicly available are skipped. The run continues with the remaining targets.
🧾 Input
🎯 Targets
Enter one public post target per line.
{"targets": ["https://x.com/_Sagiquarius_/status/2059744300075008499","2059744300075008499","@_Sagiquarius_/status/2059744300075008499"],"maxScreenshots": 25,"theme": "dark","exportFormat": "png","includeVisibleTweetMetadata": true}
🖼️ Screenshot options
theme controls how screenshots are rendered:
dark- one dark-mode image per post.light- one light-mode image per post.both- one dark and one light image per post, counted as two screenshots.
exportFormat controls file output:
png- save the PNG screenshot.pngAndJpeg- save PNG plus a JPEG copy.
includeVisibleTweetMetadata keeps visible author and text fields in the dataset. Turn it off only when you want the smallest possible row shape.
📄 Output example
{"input": "https://x.com/_Sagiquarius_/status/2059744300075008499","originalUrl": "https://x.com/_Sagiquarius_/status/2059744300075008499","normalizedUrl": "https://x.com/i/status/2059744300075008499","sourceUrl": "https://x.com/i/status/2059744300075008499","tweetId": "2059744300075008499","theme": "dark","status": "success","screenshotKey": "twitter-screenshot-2059744300075008499-dark-2026-05-28T10-54-25-307Z.png","screenshotUrl": "https://api.apify.com/v2/key-value-stores/.../records/twitter-screenshot-2059744300075008499-dark-2026-05-28T10-54-25-307Z.png","scrapedAt": "2026-05-27T17:44:16.471Z","capturedElement": "tweet","imageWidth": 598,"imageHeight": 607,"sizeBytes": 119509,"authorHandle": "@_Sagiquarius_","authorName": "JStar","visibleText": "OpenAI def needs to work on their orchestration. It’s ok/mid at best and often fails."}
💳 Pricing
This Actor uses pay-per-event pricing. You are charged per successfully captured Twitter/X screenshot. If a target is deleted, protected, unsupported, or unavailable and no screenshot is saved, no screenshot row is emitted for that target.
When Theme is set to Both, each saved theme image counts as a separate screenshot. When Image format is set to PNG and JPEG, the JPEG copy is included with the same captured screenshot row.
⚠️ Limits and caveats
- Only public Twitter/X posts are supported.
- Protected, deleted, unavailable, login-only, or unsupported targets are skipped.
- The Actor does not require Twitter/X cookies, login details, or API keys.
- The Actor captures known post targets. It does not search X or crawl profiles.
- X may change how public posts render. If a public post fails to capture, rerun it once or file an issue with the post URL.
- Screenshots may include only the public content visible on the rendered post page.
❓ FAQ
🔒 Can I screenshot private or protected tweets?
No. This Actor only captures public posts that X makes available without your credentials.
🌓 Can I capture both dark and light screenshots?
Yes. Set Theme to Both. The Actor saves one dark and one light screenshot for each supported public post until it reaches your screenshot limit.
🔢 Can I use raw tweet IDs instead of URLs?
Yes. You can paste raw status IDs such as 2059744300075008499, full x.com or twitter.com URLs, mobile URLs, or @handle/status/id paths.
💬 Does this Actor scrape replies, likes, or repost users?
No. It captures screenshots of known public post pages. Use a Twitter/X data scraper when you need search, timelines, replies, engagement rows, or profile discovery.
📝 Changelog
- 0.1: Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Other actors
- Twitter Scraper ↗ - Search public Twitter/X posts and export post data.
- Social Media Stats Checker ↗ - Check public profile stats across X and other social platforms.
- TikTok Video Downloader ↗ - Download media files from known public TikTok video URLs.
- TikTok Transcript Scraper ↗ - Extract transcripts and metadata from public TikTok videos.
- LinkedIn Posts Scraper ↗ - Export public LinkedIn post data from profiles, companies, and post URLs.
Made with ❤️ by Maxime Dupré