TikTok Video Downloader - MP4, All Qualities
Pricing
Pay per event
TikTok Video Downloader - MP4, All Qualities
Download TikTok videos from a link. Returns a hosted MP4 link that works anywhere, the full quality ladder, and the post's caption, author, sound, hashtags and counters.
Pricing
Pay per event
Rating
0.0
(0)
Developer
SR
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
TikTok Video Downloader
Paste TikTok links, get MP4 files back. Every run returns a hosted download link that works straight away, in any browser, on any machine, with nothing to configure. Alongside the file you get the post itself: the caption, the author, the sound, the hashtags and the view, like, comment and share counts as they stood at the moment of the run.
It takes any shape of link you are likely to have. A full link copied from the
address bar, a link with all the tracking parameters TikTok's share button adds,
a short vm.tiktok.com link from a message, or a bare video id. One per line,
as many as two hundred in a run.
Why the hosted link matters
Most tools that "download TikTok videos" hand you TikTok's own media address. Those addresses look like ordinary links and behave nothing like them: pasted into a browser, dropped into a spreadsheet, or passed to another job, they usually return an error rather than a file. They are not built to be shared.
This actor pulls the bytes during the run and stores the file, so the
file_url on every row is a plain, permanent link to an MP4. Click it, curl it,
feed it to a video pipeline, hand it to a colleague. It just works.
If you would rather have TikTok's own address anyway, turn Host the file
off. You then get selected_media_url together with the media_cookie_header
that address requires, and no file is stored. That mode is faster and moves no
video data, which suits a run that only needs to know what qualities exist.
Choosing a quality
Every TikTok video is published in several variants. The actor reads the full
ladder and puts it in the qualities field, best first, with the label, the
bitrate, the codec, the pixel size and the exact file size of each one. You pick
which to download with the Quality input:
| Setting | What you get |
|---|---|
| Highest available | The largest variant the video has |
| Up to 1080p / 720p / 540p | The best variant at or below that size |
| Smallest file | The smallest variant, for bulk archiving |
Two details save you time here. Asking for a size a video does not have returns the closest one below it rather than failing, so a mixed list of links never half-fails on quality alone. And the ladder is ordered by picture size rather than by bitrate: TikTok sometimes encodes a smaller variant at a higher bitrate than a larger one, so "highest" would otherwise hand you the smaller picture.
What a row looks like
One row per link. The fields you will use most:
file_url,file_size_bytes— the hosted MP4 and its sizeselected_quality,qualities— what was fetched, and everything on offerdescription,created_at,hashtags— the posthandle,nickname,author_id— who posted itduration_seconds,width,height,cover_url— the video itselfplay_count,like_count,comment_count,share_count,collect_countmusic_title,music_author,music_id,music_url— the soundplay_url,download_url— TikTok's two own addresses, kept apart because they are different files and the site uses them in different placesis_ad— whether the post is a paid ad
The files land in the run's key-value store next to a summary record, which
tells you how many links were requested, how many videos came back, how many
files were stored and how many bytes that was.
Videos that cannot be read
A link that fails becomes an entry in the errors record rather than a missing
row, so a list of two hundred never fails silently on the three that were
deleted. The reasons are named:
| Code | Meaning |
|---|---|
bad_input | Not a TikTok video link or id |
unavailable | Removed, private, or not available in the country you chose |
fetch_failed | The page could not be read after several attempts |
media_failed | The video's media could not be fetched |
no_media | The post carries no video, which happens on photo posts |
store_failed | The file could not be stored |
Availability really is regional. A video that returns unavailable for one
country can return perfectly well for another, which is what the Country
input is for. It takes a two-letter code and defaults to us.
Sensible run sizes
Links are processed a few at a time. That is deliberate rather than cautious: downloading many videos at once is bounded by bandwidth, not by concurrency, and firing everything at once mostly makes the slowest link slower.
For a large archive job, split it into runs of a hundred or so and raise the run's memory. A run holds each file in memory only while it is being stored, so 1 GB is comfortable for ordinary videos and is the default.
If you are collecting statistics rather than files, turn Host the file off. Runs finish in a fraction of the time and cost far less, because no video data moves at all.
Legal and reasonable use
The videos are other people's work. Downloading a public post for research, archiving, reporting or your own reference is one thing; republishing it as your own, or building a service that redistributes other people's videos, is another, and it is likely to breach both TikTok's terms and the copyright of whoever made the video. That is your call to make and your responsibility to get right. This actor reads only what TikTok serves publicly, and it reads nothing that requires an account.
Related actors
If you want an account's whole catalogue rather than single links, or reach figures for a hashtag, use TikTok Scraper - Profiles, Videos & Hashtags. For TikTok Shop listings and their prices, use TikTok Shop Scraper. For ads running on the platform, use TikTok Ads Library Scraper.