Twitter Media Scraper avatar

Twitter Media Scraper

Pricing

from $1.60 / 1,000 saved media items

Go to Apify Store
Twitter Media Scraper

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 saved media items

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

16

Total users

8

Monthly active users

4 days ago

Last modified

Share

📥 Twitter media scraper for X images and videos

Twitter Media Scraper extracts public images, videos, and GIFs from Twitter/X posts. Add tweet URLs, tweet IDs, @handles, #hashtags, or keywords, then export media URLs with tweet text, author details, engagement counts, source links, and scrape timestamps.

  • Use a Twitter scraper for media-focused research when you need image, video, or GIF links instead of full tweet archives.
  • Collect X scraper output from public hashtags or keywords for social listening, trend checks, and content review.
  • Run a Twitter image scraper workflow to export direct source-hosted image URLs with tweet and author context.
  • Archive public Twitter/X media from known tweet URLs or raw tweet IDs for reporting and review queues.
  • Feed Twitter/X media URLs and tweet metadata into Apify API workflows, exports, schedules, webhooks, or downstream analysis tools.

Use this Actor when you need repeatable media-link exports from public X content. 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 lower Media item limit to 25. Once the output shape looks right, raise the limit, add your own targets, or run the Actor on a schedule.

📊 Data you can export

Each output row represents one public Twitter/X media asset. The Actor saves rows only when it finds a usable image, video, or GIF media URL.

Core fields include:

  • target - the input value that produced the row.
  • targetType - tweet, profile, hashtag, or keyword.
  • tweetId and tweetUrl - the source post identity.
  • authorUsername and authorName - public author fields when available.
  • text and postedAt - tweet text and timestamp when available.
  • mediaType - image, video, or gif.
  • mediaUrl, thumbnailUrl, mediaIndex, and rawMediaId - media-specific fields.
  • engagement - likes, retweets, replies, and views when X exposes them.
  • sourceUrl, canonicalTweetUrl, and scrapedAt - 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

  1. Add one or more public Twitter/X targets in Targets.
  2. Use tweet URLs, tweet IDs, @handles, #hashtags, or plain search keywords.
  3. Keep Media item limit small for the first run, then raise it when the result shape fits your workflow.
  4. Choose Media types to include images, videos, GIFs, or a subset.
  5. Start the Actor and open the dataset.
  6. Use mediaUrl for the direct media link and tweetUrl or canonicalTweetUrl to trace the media back to X.

🎯 Input

The main input is Targets. Add one target per line:

  • Public tweet URLs such as https://x.com/teslaownersSV/status/2004891561180758165
  • Raw tweet IDs such as 2004891561180758165
  • Public profile handles such as @NASA
  • Hashtags such as #nasa
  • Search keywords such as mars launch

Example input:

{
"targets": [
"#nasa",
"@NASA",
"https://x.com/teslaownersSV/status/2004891561180758165"
],
"maxItems": 25,
"mediaTypes": ["image", "video", "gif"]
}

Use tweet URLs or IDs when you need media from known posts. Use @handles, hashtags, or keywords when you want recent public media posts around a profile, topic, campaign, brand, event, or trend.

📄 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"
}

💸 Pricing

This Actor uses pay-per-event pricing. You are charged for each public 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.

Lower Media item limit to 25 when you want a small first run. Increase it when you are ready to collect more.

🔌 Integrations

  • Call the Actor from the Apify API to collect media URLs for your own app or data pipeline.
  • Schedule recurring runs for repeat checks on public hashtags, keywords, or profiles.
  • Export the dataset to JSON, CSV, Excel, XML, RSS, or HTML for analysis and reporting.
  • Send finished runs to webhooks, cloud storage, Make, Zapier, or custom automation.

❓ 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, bookmarks, likes, followers, following lists, 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. The public input stays focused on targets, limits, and media type filters.

🔎 Can I search by hashtag, profile, or keyword?

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 files elsewhere.

🧩 Why not use the Twitter/X API?

Use the official Twitter/X API when you need an official integration, private account permissions, or API terms that match your workflow. Use this Actor when you need a simple Apify dataset of public media URLs and related tweet metadata from URLs, handles, hashtags, or keywords.

🔁 What are Twitter/X alternatives?

For other public social media media workflows, use an actor built for that source, such as Instagram Downloader API, Facebook Media Downloader, TikTok Video Downloader, or YouTube Shorts Downloader. Each platform exposes different fields and media links.

📝 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

Made with ❤️ by Maxime Dupré