X (Twitter) Media Downloader - Profile Photos, Videos & GIFs
Pricing
from $1.50 / 1,000 media items
X (Twitter) Media Downloader - Profile Photos, Videos & GIFs
Download all photos, videos and GIFs from any X (Twitter) profile - original-quality image and best MP4 links with post text, date and engagement.
Pricing
from $1.50 / 1,000 media items
Rating
0.0
(0)
Developer
Seemu Scraping
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Download every photo, video and GIF from any public X (Twitter) profile in one run. Enter one or more usernames and get the original full-resolution image and the highest-bitrate MP4 for each item, together with the post text, date and engagement numbers. Filter by media type and date range, include reposts if you want them, and optionally save the actual files into your run's storage with a permanent download link.
No login, no cookies, no browser extension. Export to JSON, CSV, Excel or Google Sheets.
What you get
One row per photo, video or GIF:
- mediaType (
photo,video,gif) and mediaUrl - the original image (?name=orig) or the best-quality MP4 - width, height, durationSeconds, bitrate, contentType
- thumbnailUrl (video poster frame or a small photo preview) and altText
- variants - every available video rendition (1080p, 720p, 480p, HLS playlist...) with bitrate and resolution
- tweetId, tweetUrl, tweetText, createdAt
- likeCount, retweetCount, replyCount, quoteCount, viewCount, bookmarkCount
- username (the profile you asked for), authorUsername / authorName (the original poster - differs for reposts), isRetweet, isReply
- mediaIndex / mediaCount for posts with several attachments
- With Save files to storage on: kvStoreKey, kvStoreUrl (a permanent direct download link) and fileSizeBytes
Every media item appears once - the same photo reposted or quoted again is not duplicated.
Use cases
- Bulk download all photos and videos from an X profile - your own or any public account
- Brand asset backup - archive every image and clip your company account has ever posted
- Creator and competitor research - review all the visual content an account publishes, sorted by date and engagement
- Content repurposing pipelines - feed direct MP4 links into editing, transcription or moderation tools
- Dataset building - collect labelled images and short videos from specific accounts or time periods
- Media monitoring - pull new photos and videos from a list of accounts on a schedule
How to use
- Enter one or more Profiles -
NASA,@NASAorhttps://x.com/NASAall work. - Pick a Media type: all media, photos only, videos only, or GIFs only.
- Set Max media per profile (default 100). Set 0 to download everything the profile has posted.
- Optional: limit to a From date / To date, turn on Include reposts, or turn off Include replies.
- Optional: turn on Save files to storage to store the files themselves. Use Max file size (MB) to skip very large videos.
- Run the actor. Media links appear in the Dataset tab, newest first. Saved files appear in the Key-value store tab, named
<username>_<tweetId>_<index>.<ext>.
Continuing a large download
Each run stops at Max media per profile. To fetch the next batch of the same profile:
After the run finishes, open the Key-value store tab → copy the NEXT_PAGE_ID value → paste it into Page ID on your next run. If there is no NEXT_PAGE_ID record (or it is null), you've fetched everything.
Page ID continues one profile at a time, exactly where the previous run stopped - no duplicates and nothing skipped. If a run is about to hit its timeout, it stops cleanly and saves NEXT_PAGE_ID so no progress is lost.
Output format
Each dataset record:
{"username": "nasa","mediaType": "video","mediaUrl": "https://video.twimg.com/amplify_video/2111180787802370048/vid/avc1/1080x1920/xLb-yr9GVdddx5sY.mp4?tag=29","mediaKey": "13_2111180787802370048","contentType": "video/mp4","width": 1080,"height": 1920,"durationSeconds": 17.75,"bitrate": 10368000,"thumbnailUrl": "https://pbs.twimg.com/amplify_video_thumb/2111180787802370048/img/0nbyTdS0MRg5JqXk.jpg","altText": null,"variants": [{ "url": "https://video.twimg.com/.../1080x1920/xLb-yr9GVdddx5sY.mp4?tag=29", "bitrate": 10368000, "contentType": "video/mp4", "resolution": "1080x1920" },{ "url": "https://video.twimg.com/.../720x1280/LFXGIL2zQ_o-JycW.mp4?tag=29", "bitrate": 2176000, "contentType": "video/mp4", "resolution": "720x1280" }],"mediaIndex": 1,"mediaCount": 1,"tweetId": "2111180963661435219","tweetUrl": "https://x.com/NASA/status/2111180963661435219","tweetText": "The aircraft lineup just keeps getting bigger...","createdAt": "2026-10-16T19:42:20.000Z","likeCount": 2140,"retweetCount": 301,"replyCount": 95,"quoteCount": 22,"viewCount": 187000,"bookmarkCount": 140,"authorUsername": "NASA","authorName": "NASA","isRetweet": false,"isReply": false,"kvStoreKey": "nasa_2111180963661435219_1.mp4","kvStoreUrl": "https://api.apify.com/v2/key-value-stores/abc123/records/nasa_2111180963661435219_1.mp4","fileSizeBytes": 8401119}
Photos come back as https://pbs.twimg.com/media/<id>?format=jpg&name=orig - the original upload resolution.
Tips
- GIFs only works best on accounts that post GIFs regularly. On accounts that almost never post GIFs the run stops early instead of scanning thousands of posts for nothing - use All media and filter the dataset by
mediaTypeinstead. - Reposts are collected after the profile's own media, so set a higher Max media per profile if you want both.
- Only public profiles can be downloaded. Private, suspended and non-existent accounts are skipped with a clear message in the log.
Pricing
Pay per result: you are charged once for each media item returned in the dataset. When Save files to storage is on, there is an additional charge per megabyte saved (each file counts as at least 1 MB). Posts without matching media are never charged.