Twitter Media Scraper
Pricing
from $1.60 / 1,000 media items
Twitter Media Scraper
Extract public Twitter/X images, videos, and GIFs from tweet URLs, IDs, @handles, #hashtags, or keywords. Export media URLs, tweet metadata, authors, engagement, and source links.
Pricing
from $1.60 / 1,000 media items
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
📥 Twitter media scraper for public X posts
Twitter Media Scraper extracts images, videos, and GIFs from public Twitter/X posts. Paste tweet URLs, tweet IDs, @handles, #hashtags, or search keywords, then export media URLs together with tweet text, author details, engagement counts, source links, and scrape timestamps.
Use this Twitter media scraper when you need a repeatable way to collect media from X for research, content review, social listening, trend checks, reporting, archiving, or API workflows. Direct tweet targets are useful when you already know the posts. Handles, hashtags, and keywords help you discover recent public posts that contain media.
For a small first run, keep one prefilled target such as #nasa, leave Media types set to images, videos, and GIFs, and keep Media item limit at 25. Once the output shape looks right, add your own targets or run the Actor on a schedule.
✅ What this Actor does
- Extracts media from public Twitter/X tweet URLs and raw tweet IDs.
- Discovers recent public media posts from
@handles,#hashtags, and keywords. - Saves one dataset row per extracted image, video, or GIF media asset.
- Includes tweet IDs, tweet URLs, author usernames, display names, post text, timestamps, media URLs, thumbnails, media indexes, and scrape timestamps.
- Adds public engagement counts such as likes, retweets, replies, and views when X exposes them.
- Lets you choose images only, videos only, GIFs only, or any combination.
- Stops at your media item limit so run size and spend stay predictable.
- Runs without a Twitter/X login, cookies, or a user-provided API key.
This Actor is focused on public media extraction. It does not fetch private, protected, deleted, login-only, or account-restricted content.
📊 Data you can export
Each output row represents one media asset from one public Twitter/X post. Core fields include:
target- the input value that produced the row.targetType-tweet,profile,hashtag, orkeyword.tweetIdandtweetUrl- the source post identity.authorUsernameandauthorName- public author fields when available.textandpostedAt- tweet text and timestamp when available.mediaType-image,video, orgif.mediaUrl,thumbnailUrl,mediaIndex, andrawMediaId- media-specific fields.engagement- likes, retweets, replies, and views when available.sourceUrl,canonicalTweetUrl, andscrapedAt- traceability fields for exports and API use.
You can open the dataset in Apify, export it as JSON, CSV, Excel, XML, RSS, or HTML, call it through the Apify API, schedule recurring runs, or connect it to webhooks and integrations.
🚀 How to run
- Add one or more public Twitter/X targets in Targets.
- Use tweet URLs, tweet IDs,
@handles,#hashtags, or plain search keywords. - Keep Media item limit small for the first run, then raise it when the result shape fits your workflow.
- Choose Media types to include images, videos, GIFs, or a subset.
- Start the Actor and open the dataset.
- Use
mediaUrlfor the direct media link andtweetUrlorcanonicalTweetUrlto trace the media back to X.
Example input:
{"targets": ["#nasa","@NASA","https://x.com/teslaownersSV/status/2004891561180758165"],"maxItems": 25,"mediaTypes": ["image", "video", "gif"]}
📄 Output example
{"target": "#nasa","targetType": "hashtag","tweetId": "2061497874714632614","tweetUrl": "https://x.com/Astro_Postcard/status/2061497874714632614","authorUsername": "Astro_Postcard","authorName": "Astro Postcard","text": "Astronomy Picture of the Day (2026-06-01)","postedAt": "2026-06-01T17:19:28.000Z","mediaType": "image","mediaUrl": "https://pbs.twimg.com/media/HJvpZJ8WwAAbybh.jpg","mediaIndex": 1,"thumbnailUrl": "https://pbs.twimg.com/media/HJvpZJ8WwAAbybh.jpg","altText": null,"engagement": {"likes": 0,"retweets": 0,"replies": 0,"views": 2},"sourceUrl": "https://x.com/Astro_Postcard/status/2061497874714632614","canonicalTweetUrl": "https://x.com/Astro_Postcard/status/2061497874714632614","rawMediaId": null,"scrapedAt": "2026-06-01T17:40:35.551Z"}
🎯 Input tips
Use direct tweet URLs or tweet IDs when you need media from known posts. Use @handles when you want recent public media posts from a profile. Use #hashtags or keywords when you want media around a topic, campaign, brand, event, or trend.
The Actor only emits rows when media is found. If a target has no public image, video, or GIF media, it is skipped and the run continues.
💸 Pricing
This Actor uses pay-per-event pricing. You are charged for each image, video, or GIF media item that is found and saved. Targets that are skipped because no public media is available do not create media-item events.
The default limit of 25 media items keeps first runs small. Increase Media item limit when you are ready to collect more.
⚖️ Limits and caveats
Twitter/X may hide, remove, rate-limit, or change access to public content. When a field is not exposed for a post, the Actor leaves that field empty and still saves the media item when a usable media URL is available.
The Actor does not bypass privacy controls. Protected accounts, private posts, deleted posts, login-only content, bookmarks, likes, followers, following lists, private messages, and account-only media are outside this Actor's scope.
❓ FAQ
🔒 Can I scrape private Twitter/X media?
No. This Actor is for public Twitter/X media only. It does not fetch protected posts, private account content, private messages, or media that requires access to a specific user account.
🔑 Do I need Twitter cookies or an API key?
No. You do not need to provide Twitter/X cookies, a login, or an API key.
🔎 Can I search by hashtag or profile?
Yes. Add a #hashtag, an @handle, or a keyword in Targets. The Actor discovers recent public posts with media and emits one row per media asset.
💾 Does it download files into Apify storage?
No. The Actor returns media URLs and thumbnails in the dataset. Use the exported URLs in your own downloader, API workflow, or storage pipeline if you need to save the files elsewhere.
📝 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 X posts and trending topics.
- Twitter Screenshot Generator ↗ - Save clean screenshots of public X posts.
- Facebook Media Downloader ↗ - Extract public Facebook video and reel media links.
- Instagram Downloader API ↗ - Export media URLs from public Instagram posts and reels.
- TikTok Video Downloader ↗ - Download public TikTok video or audio media files.
Made with ❤️ by Maxime Dupré