Twitter video downloader & image downloader. Download X videos, photos & GIFs from $0.00015 per delivered media row. Get MP4 links or stored files from posts or profiles, with subtitles. No X account needed. World's fastest & cheapest X (Twitter) scraper service. Not affiliated with X Corp.
2026-11-10. The page's search title & summary now name X (Twitter) & the
searched phrase.
2026-11-08. The Actor page now says you need no X account.
2026-11-08. downloadMedia now sends each file straight to the run's storage
instead of holding it in memory first. It stores 8 files at a time at any
maxFileSizeMb. A slow file keeps going while its bytes still move. Before, a
slow file came back unavailable partway through.
2026-11-08. Run logs now hide more kinds of sensitive text in more input
formats.
2026-11-08. A run stopped by your maximum cost per run now says so. Before, it
could say it collected every available result.
2026-11-07. A run that Apify restarts now charges each result once. Before,
rows saved just before the restart could be charged a second time.
2026-11-06. Media of a repost now always names the reposted post as its
source, even when the repost's own row carries that media.
2026-11-06. Apify now refuses a maximum cost per run that can't pay for 1
result and the platform usage before it. Its error names the least limit that
can. Before, such a run started and returned nothing.
2026-11-06. A run whose maximum cost per run can't pay for 1 result now says
so and names the least limit that does. Before, it asked you to check the
targets and filters.
2026-11-06. A run no longer writes an error to its log when a progress report
to Xquik fails to send. Results were never affected.
2026-11-05. A protected account no longer counts as a failed target. The run
finishes, says the account is protected and reads every other target.
2026-11-03. A skipped input now says what was wrong, like a link to another
site or to a post.
2026-11-02. downloadMedia skips a file when X flags it or its post. It also
skips a file when X leaves out possiblySensitive. Those rows keep
downloadUrl & have downloadStatus: "url-only". Media rows show
possiblySensitive when X sends it. The overview shows adultContent,
graphicViolence & otherSensitiveContent when X sends them.
2026-10-28. Runs without a time limit no longer fail targets as busy while
their other targets still get results.
2026-10-27. The README adds a "Why use" section of highlights & features above
its data.
2026-10-27. Runs with a time limit no longer fail targets as busy.
2026-10-26. The README now lists what you get from each run. Input & output
field descriptions now say what you get.
2026-10-24. A run of many targets now starts more reads at once & ends sooner.
2026-10-24. Rows of a photo its author edited in X's own editor carry
editedWithNativeEditor: true.
2026-10-18. A run now says X was unavailable when X's outage stops a target.
2026-10-17. A run now ends as soon as its work is done, even while Xquik is
down.
2026-10-14. A profile link by user ID, like x.com/i/user/11348282, now reads
that account.
2026-10-13. An account can be named by its user ID of 16 to 19 digits, like a
handle. This works in X handles & profile links.
2026-10-13. Field help & the README drop colons & semicolons.
2026-10-13. The run status drops its colons. A finished run starts Finished.
& says how many rows it saved.
2026-10-12. Paging a list never loops forever. The status says when X stopped
returning new results. The run charges no row twice.
2026-10-12. The Store title is now X (Twitter) Video Downloader, & the
description leads with videos. Runs, inputs & prices stay the same.
2026-10-12. Shape your rows with fields, omitFields, renameFields,
flatten, joinFields & constantFields.
2026-10-09. Rows of a Grok image carry grokImageAnnotation, the prompt it
came from, when X sends one.
2026-10-09. Successful runs with rows end their status with a short review
request.
2026-10-07. Stalled reads now recover on their own. Runs lose less time to
slow answers.
2026-10-07. A run that reads every target & gets no row back writes no
diagnostics record. Its status says why, & the run costs less.
2026-10-05. includeSubtitles adds 1 row with every caption track of a post's
video.
2026-10-05. Runs with many targets save progress less often, finish sooner &
cost less.
2026-10-05. startUrls & profileUrls now take plain URL strings as well as
{ "url": ... } objects.
2026-10-05. Large runs upload their rows faster.
2026-10-05. Runs of under 5 IDs or handles end with a tip to batch them.
2026-10-04. A run of single lookups fills maxItems in input order, whichever
answers first.
2026-10-04. A run whose sources need other targets names the field to fill.
2026-10-04. An account X suspended now reads "X suspended 1 account." with the
cause target_suspended, instead of a missing target.
2026-10-04. The Actor version in diagnostics & run reports is now the Apify
build number.
2026-10-04. A run no longer stops early when an upload's answer is lost. Its
rows are charged once.
1.0.73, 2026-10-04
Every run uses 256 MB again, which is faster & more reliable for small runs.
1.0.72, 2026-10-04
A repost target returns the photos & videos of the post it reposts.
Each of those rows names the reposted post as its source.
1.0.71, 2026-10-01
When Xquik stays busy, each retry waits longer than the last.
If Xquik stays busy too long, that target fails & the run says why.
Busy answers are never charged.
1.0.70, 2026-09-30
A run near its time limit stops before a read it can't finish.
1.0.69, 2026-09-29
A run that started late says how long it waited, out of its time limit.
1.0.68, 2026-09-29
Requests to Xquik never follow a redirect, so the key stays with Xquik.
1.0.67, 2026-09-29
A run waits out a brief Xquik outage instead of failing.
Rows saved before an outage stay saved & are charged once.
1.0.66, 2026-09-29
Reply media stops reading once it holds the rows the run keeps.
1.0.65, 2026-09-29
Runs with over 5 targets, replies or maxItemsPerTarget above 50 keep 256 MB.
1.0.64, 2026-09-29
Runs up to maxItems 50 & 5 targets, without downloadMedia, use 128 MB.
Runs that download videos no longer run out of memory.
Downloaded files upload faster, since the Actor sends them uncompressed.
The README's Framer video opens at 6:07.
1.0.63, 2026-09-28
A run that finds nothing skips run-report, so it costs less in Apify usage.
An empty run's status says to check the targets & filters.
The README names the Actor as Xquik's X Media Downloader & adds a how-to,
pricing question & FAQ.
1.0.62, 2026-09-28
Runs under 34 results cost less in Apify usage, with no progress saves.
1.0.61, 2026-09-28
An aborted run's status counts its saved results, even during a slow upload.
1.0.60, 2026-09-27
During a run, the status shows how many results it has collected so far.
The status says when the run waits to retry.
1.0.59, 2026-09-27
The new alwaysSaveRunRecords input keeps run-report on every run.
1.0.58, 2026-09-27
Article URLs such as x.com/name/article/123 now work as post URLs.
Profile & Media tab URLs in X Post URLs now get that profile's media.
The run reads URLs only from x.com & twitter.com, with or without
https://.
X pages such as x.com/home or x.com/search no longer count as handles.
The run lists each input it cannot read & says how to fix it.
With nothing to read, the run writes a free diagnostic with the fix.
1.0.54, 2026-09-27
Runs open their dataset while they read X, so they finish sooner.
1.0.52, 2026-09-27
Handles that differ only in case, such as NASA & nasa, now read once. Runs
finish sooner.
Profile URLs such as X.com/NASA, x.com/@nasa & x.com/nasa?s=20 now work.
1.0.50, 2026-09-27
Small runs that go well skip run-report, so they cost less in Apify usage.
The run status now says why the run stopped, with its charged results &
targets.
Runs that stop on their input now name the diagnostics output in their status.
1.0.49, 2026-09-27
Runs that stop for missing or unusable input cost less in Apify usage.
1.0.48, 2026-09-27
Support now sees a finished run even while the service is busy.
Runs with a time limit keep a little more time to finish.
1.0.47, 2026-09-27
Runs with a time limit now stop in time & keep their results.
Large runs save their progress faster.
1.0.46, 2026-09-27
The run status now says where to find its diagnostics.
1.0.44, 2026-09-27
If the Actor cannot start, the run now ends with 1 free diagnostic.
Runs with hundreds of targets use less CPU.
1.0.43, 2026-09-26
Replies over a date range with no replies no longer make a run partial.
1.0.42, 2026-09-26
Runs now start collecting results sooner, so small runs finish faster.
1.0.41, 2026-09-26
A run that fills maxItems no longer reports a time limit.
1.0.40, 2026-09-26
Large runs use less memory.
1.0.39, 2026-09-26
Targets no longer fail when Xquik is busy. The Actor waits & tries again until
its time limit.
A page the service answers slowly in busy hours now arrives instead of timing
out.
1.0.38, 2026-09-26
Support can now see where each run spends its time.
1.0.37, 2026-09-26
Targets no longer fail when the service is busy. The Actor waits a few seconds
& tries again until its time limit.
1.0.36, 2026-09-25
Input & Output tab descriptions now say what each field does.
The README now focuses on what you get & how to run it.
Replies no longer show as incomplete when every reply was collected.
1.0.35, 2026-09-25
The status now says when X has no match for an account.
Missing accounts no longer count as failures or log errors.
A run with no rows now says why in its status.
Runs with many targets finish faster.
Support can now look up every finished run.
1.0.34, 2026-09-25 update
Replies X hides no longer mark a thread as partly available.
1.0.34, 2026-09-25
Runs recover faster from temporary service delays.
Long runs are less likely to stop early.
A slow page now ends in time & keeps its rows.
1.0.33, 2026-09-23
The status now names every reason a run stopped early.
The diagnostic lists each cause in stopCauses, with advice.
A partly available reply thread no longer counts as a failed target.
1.0.32, 2026-09-20
quotes runs finish sooner.
1.0.31, 2026-09-16
The input form shows targets, limits & common filters first.
Output tabs & dataset views show the most useful fields first.
1.0.30, 2026-09-15
Run reports are more accurate when fewer results exist than requested.
1.0.29, 2026-09-13
Resumed runs keep their progress.
Long runs use the full configured time limit.
1.0.28, 2026-09-13
Downloads use less memory & follow only safe redirects.
Resumed runs keep collected results.
1.0.27, 2026-09-10
Minor fixes improve reliability & speed.
1.0.26, 2026-09-10
Runs keep their progress after temporary storage errors.
1.0.25, 2026-09-10
Resumed runs retry failed targets without double charges.
1.0.24, 2026-09-10
Runs recover from temporary errors more reliably.
1.0.8 through 1.0.23, 2026-09-01
The Actor uses a newer runtime & reports peak memory use.
One result price now applies on every plan. Diagnostics are free.
Profile & engagement runs read further.
The default limit is 10,000 rows.
Output includes media from nested replies.
1.0.6 through 1.0.7, 2026-08-12
Runs start faster & the build is smaller. Long runs respect time limits.
1.0.1 through 1.0.5, 2026-08-12
Runs start faster. Filters & caps stay exact.
1.0.0, 2026-08-12
Launch filtered media downloads with size variants, storage & resumable runs.