TikTok Video Downloader - MP4, All Qualities avatar

TikTok Video Downloader - MP4, All Qualities

Pricing

Pay per event

Go to Apify Store
TikTok Video Downloader - MP4, All Qualities

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

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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.

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:

SettingWhat you get
Highest availableThe largest variant the video has
Up to 1080p / 720p / 540pThe best variant at or below that size
Smallest fileThe 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 size
  • selected_quality, qualities — what was fetched, and everything on offer
  • description, created_at, hashtags — the post
  • handle, nickname, author_id — who posted it
  • duration_seconds, width, height, cover_url — the video itself
  • play_count, like_count, comment_count, share_count, collect_count
  • music_title, music_author, music_id, music_url — the sound
  • play_url, download_url — TikTok's two own addresses, kept apart because they are different files and the site uses them in different places
  • is_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:

CodeMeaning
bad_inputNot a TikTok video link or id
unavailableRemoved, private, or not available in the country you chose
fetch_failedThe page could not be read after several attempts
media_failedThe video's media could not be fetched
no_mediaThe post carries no video, which happens on photo posts
store_failedThe 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.

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.

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.