X (Twitter) Video & Image Downloader avatar

X (Twitter) Video & Image Downloader

Pricing

$0.90 / 1,000 media file collecteds

Go to Apify Store
X (Twitter) Video & Image Downloader

X (Twitter) Video & Image Downloader

Download every video, photo and GIF from X (Twitter) accounts or single posts. One row per file: direct link, size, format, duration, plus the post text and engagement behind it. Videos at the best available quality, photos at original size. Filter by type, width or date. No login needed.

Pricing

$0.90 / 1,000 media file collecteds

Rating

0.0

(0)

Developer

Kawtar

Kawtar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Turn any list of X (Twitter) accounts and post links into a clean download list: one row per file, each with a direct link to the actual video, photo or GIF, its size, its format and the post it came from. Videos come at the best quality X publishes, photos at their original size, and every row carries the post text, the engagement numbers and the account behind it. No X account and no login needed — paste your list and run it.

What you can do with it

  • Archive an account's media. Pull every photo and video an account has posted recently into one spreadsheet, ready to feed a download manager.
  • Build a creative swipe file. Collect the visuals your competitors are running, with the like and view numbers next to each file so you can see what worked.
  • Grab the media from specific posts. Paste the links to a handful of posts and get every file attached to them, including all four images of a carousel.
  • Source stock-quality footage you already have rights to. Filter to videos at least 1920 pixels wide and take only the high-resolution ones.
  • Feed a training or research set. Where the author wrote alt text for an image, it comes through on the row as a human-written description. Many authors write none, so treat it as a bonus rather than a guarantee.
  • Watch a brand's visual output over time. Schedule a daily run over the accounts you track and collect whatever new media appears.

What you get

One row per file. Real example from a run over NASA:

{
"directUrl": "https://video.twimg.com/amplify_video/2084731730880000000/vid/avc1/1920x1080/A0cYnykQL46G8plU.mp4?tag=29",
"type": "video",
"fileExtension": "mp4",
"width": 1920,
"height": 1080,
"fileName": "NASA_2084734580737634576_1.mp4",
"altText": null,
"previewImageUrl": "https://pbs.twimg.com/media/HO52IohWAAERmBy.jpg",
"videoDurationSeconds": 614.8,
"videoBitrate": 10368000,
"videoAspectRatio": "16:9",
"mediaNumber": 1,
"mediaInPost": 1,
"mediaPageUrl": "https://x.com/NASA/status/2084734580737634576/video/1",
"postId": "2084734580737634576",
"postUrl": "https://x.com/NASA/status/2084734580737634576",
"postText": "Lunar landers, assemble. In clean rooms across the country, commercial lunar landers are preparing for upcoming missions in support of @NASAMoonBase.",
"createdAt": "2026-08-04T20:13:51.000Z",
"likes": 3606,
"reposts": 523,
"replies": 180,
"views": 1335789,
"isRepost": false,
"username": "NASA",
"displayName": "NASA",
"profileUrl": "https://x.com/NASA",
"followers": 92245566,
"inputTarget": "https://x.com/NASA/status/2084734580737634576",
"scrapedAt": "2026-08-05T21:48:24.056Z"
}

A post holding four photos becomes four rows, numbered 1 to 4, each with its own link and its own dimensions.

Input

FieldTypeDefaultWhat it does
targetsarray of textRequired. Accounts and post links, mixed freely in one list. An account name, an @name, a profile link or a link to a single post all work.
maxPostsPerProfileinteger50How many media-carrying posts to take from each account, newest first. A post can hold up to four files, so this limits posts, not files.
mediaTypesmulti-selectall threeWhich kinds of file to keep: photos, videos, GIFs.
minWidthinteger0Skip files narrower than this, measured on the file you would actually download.
postedAftertextKeep only media from posts published on or after this date (YYYY-MM-DD).
postedBeforetextKeep only media from posts published on or before this date (YYYY-MM-DD).
includeRepostsbooleanfalseAlso collect files from reposts. Applies to post links as well as accounts, so a link to a repost is skipped while this is off. The original author is credited on the row.
accountsAtOnceinteger3How many accounts to work through at the same time.
countryCodeselectusWhich country to browse from.

Output fields

FieldDescription
directUrlThe file itself. Open it, or hand it to any download tool.
typephoto, video or gif.
fileExtensionjpg, png or mp4 — what you will be saving.
width, heightSize of the file being handed over, in pixels.
fileNameA suggested, safe file name: account, post and position.
altTextThe description the author wrote for the image, when they wrote one.
previewImageUrlPoster frame for videos and GIFs.
videoDurationSeconds, videoBitrate, videoAspectRatioVideo detail, where X publishes it.
videoStreamUrlThe streaming version of the same video, for tools that prefer it.
mediaNumber, mediaInPostWhich file this is, and how many the post holds.
mediaPageUrlThe file's own page on x.com.
postId, postUrl, postText, createdAtThe post the file came from.
likes, reposts, replies, viewsEngagement on that post at collection time.
possiblySensitivetrue when X marks the post as sensitive content.
isRepost, repostedBySet when the file reached you through a repost.
username, displayName, profileUrl, followers, userIdThe account that published the file.
inputTargetThe exact value you typed, so results join back to your list.
unavailable, unavailableReasonSet when a target yields nothing, so your input list keeps its shape.

Pricing

This actor is pay per result and a result is one media file. You are charged for each file that lands in your dataset and for nothing else — no time-based charge, and no charge for accounts or posts that turn out to hold no media beyond the single row that tells you so.

Filters run before anything is charged, so a job restricted to videos at least 1920 pixels wide bills only for the files that clear the bar. A sweep of 20 accounts at 50 posts each typically produces somewhere between 1,000 and 2,500 files, depending on how many carousels those accounts post.

Limits & what this actor cannot do

  • It gives you links, not the files themselves. Every row carries a direct link that opens in a browser or any download tool. The actor does not store copies of the media for you.
  • The files belong to whoever made them. Being able to download something is not permission to republish it. You are responsible for having the rights you need for whatever you do with the media.
  • GIFs on X are published as short silent video files, so they arrive as .mp4 with type set to gif, and without a duration.
  • Photos arrive at the largest size X stores. That is often, but not always, the size the photographer uploaded.
  • Live broadcasts have no saveable file and are skipped rather than reported with a link that would not download.
  • The same file reaching a job twice — a post supplied by link that also appears in its author's feed — is returned once, credited to the target you named.
  • X publishes a limited window of recent public posts per account, so very large accounts return what X makes available rather than a complete history.
  • Keyword search across all of X is not part of what X publishes openly, so this actor works from the accounts and post links you supply rather than a search term. The media tab of an account is likewise not publicly available; media is collected from the account's posts.
  • Protected (private) accounts are not publicly viewable and are reported as unavailable rather than returned empty.
  • Deleted, suspended and withheld posts are reported as unavailable rather than silently skipped.
  • Likes, reposts, replies and views are a snapshot at the moment of collection and keep changing afterwards.
  • X publishes view counts for most recent posts but not for every older one. Where X publishes none, views is left empty rather than set to zero.
  • Speed depends on the size of the job and on X's own response times.
  • X's terms govern automated access. You are responsible for using the data lawfully, in line with the source site's terms, and for handling any personal data in line with applicable privacy law.

FAQ

Do I need an X account? No. Nothing is required from you beyond the list of accounts and post links you want media from.

Does it need my login, password or a paid X subscription? No. None of those are used at any point.

Does it download the files onto my computer? It hands you a direct link to each file, plus a suggested name for it. Point a download manager, a spreadsheet formula or your own workflow at the directUrl column and the files come down at full quality.

What quality are the videos? The best downloadable version X publishes for that post — the same one you would get from the highest-quality option on the site.

Can I get every photo an account ever posted? Not always. X publishes a limited window of recent posts per account. For most accounts that is a deep archive; for very high-volume accounts it stops short of the beginning.

Can I schedule it? Yes. Schedule it on Apify to run hourly, daily or weekly and keep collecting new media as it appears.

How do I get the results into my tools? Export from Apify as CSV, Excel, JSON, XML or an HTML table, push into Google Sheets, or pull them straight into your own system.