TikTok Video Downloader
Download public TikTok videos as MP4, or the sound as MP3, from their links. No login or cookies. Pay per megabyte of file delivered.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
urls,quality,audioOnly(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.001 per megabyte downloaded = $1 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Megabyte downloaded | Each 1 MB of media actually delivered, rounded up per file. Failed, refused or skipped downloads are not charged. | $0.001 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-13, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
urls | One link per line, each to a single TikTok video (tiktok.com/@name/video/...). Each link gives one file. Links from other sites are refused, with a pointer to the downloader that takes them. | array |
quality | Measured on the short side of the picture, so 1080 means 1920x1080 for a landscape video and 1080x1920 for a vertical one. If a video doesn't come in that quality you get the closest one it has. You pay per megabyte, so a higher quality costs more. | string |
audioOnly | Save just the video's sound, as a 128 kbit/s MP3, instead of the video. | boolean |
maxMegabytes | A video bigger than this is skipped before it is downloaded, and you are not charged for it. One run can hold files up to about 70% of its memory (716 MB at the default 1024 MB), so for anything bigger raise the run's memory as well. | integer |
What you get
A structured dataset — each result includes fields like:
titleauthordurationSecondsresolutionformatfileSizeBytesbilledMegabytesmediaUrlurlhostmediaKeyExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
TikTok Video Downloader: public TikTok videos as MP4, or their sound as MP3
Paste links to public TikTok videos and get each one back as a real file: an MP4, or a 128 kbit/s MP3 of the video's own sound. Files land in the run's key-value store and every row carries a direct link you can hand to a browser, a script or the next step of a workflow.
The honest part first. This pulls the copy TikTok serves for playback, so most videos arrive without a logo, but an uploader who burned the TikTok watermark into their own video is stuck with it and nothing here can take it out. Photo posts, slideshows, profiles, sounds, hashtags and live streams are not videos this can download, and some posts TikTok only serves in certain countries.
| Input | Links to single public TikTok videos |
| Output | One MP4 or MP3 per link, in the run's key-value store, plus a row per file |
| Ceiling | 500 MB per video by default, up to 4,000, and about 716 MB of files per run at the default memory |
| Account needed | None, and no cookies |
| Price | $0.001 per megabyte delivered |
🎬 What TikTok Video Downloader does
One link in, one file out. It reads what TikTok offers for that post, picks the best copy at or below the quality you asked for, downloads it, checks the file actually decodes as video or audio, stores it, and writes a row with a link to it.
Picture quality is measured on the short side, so 1080 means 1920x1080 for a landscape video and 1080x1920 for a vertical one. A video TikTok does not have at that size comes back at the closest it does have.
Links to Facebook, X or YouTube are not refused blindly: the run tells you which actor takes them.
📥 What you give it
{
"urls": [
"https://www.tiktok.com/@hankgreen1/video/7047596209028074758"
],
"quality": "1080",
"audioOnly": false,
"maxMegabytes": 500
}
| Field | Default | What it is |
|---|---|---|
urls | box holds one example link | One link per line, each to a single TikTok video. vm. and vt. short links, m. links and embed links are understood. Required. |
quality | 1080 | best, 1080, 720, 480 or 360, measured on the short side. A bigger picture is a bigger file, and you pay by the megabyte. |
audioOnly | false | Save the sound as a 128 kbit/s MP3 instead of the video. |
maxMegabytes | 500 | A video bigger than this is skipped before anything is downloaded, and it costs you nothing. One run holds roughly 70% of its memory in files, so raise the run's memory for anything large. |
Duplicate links to the same post are skipped rather than downloaded twice.
📤 What you get back
A real row from a recent run, with the signed link trimmed:
{
"url": "https://www.tiktok.com/@hankgreen1/video/7047596209028074758",
"host": "tiktok",
"title": "TikTok video #7047596209028074758",
"author": "hankgreen1",
"durationSeconds": 21.27,
"resolution": "576x1024",
"format": "mp4",
"fileSizeBytes": 5076682,
"billedMegabytes": 6,
"mediaKey": "tiktok-7047596209028074758.mp4",
"mediaUrl": "https://api.apify.com/v2/key-value-stores/83C4HbXaY1Dk88AHA/records/tiktok-7047596209028074758.mp4?signature=..."
}
| Field | What it is |
|---|---|
mediaUrl | The direct link to the file. It works without a token, so you can pass it straight to whatever comes next. |
mediaKey | The name of the record in the run's key-value store, tiktok-<id>.mp4 or .mp3. |
fileSizeBytes | The size of the file that was actually stored, checked against the stored copy after upload. |
billedMegabytes | What that file counted as, in whole megabytes. |
durationSeconds, resolution | Measured on the finished file, not taken from the page. |
title | The caption. A post with no caption gets TikTok video #<id>. |
format | mp4, or mp3 when you asked for audio only. |
🧾 Reading the output
Two places to look, and they never mix.
| Where | What is in it |
|---|---|
| The dataset | One row per file that was delivered and checked. |
ERRORS in the key-value store | A list of {url, error} for every link that did not produce a file, written as each one happens. |
A link that fails never reaches the dataset, so a row in the dataset means a file exists. The error text says what happened in plain words: the post is not a video, the post is only served in some countries, the file is over your limit, the link belongs on another actor.
If not a single link produced a file, the run finishes as failed rather than pretending it worked.
▶️ How to run it
1. Open TikTok Video Downloader and click Try for free. 2. Paste your links into TikTok video links, one per line, replacing the example. 3. Pick a Max quality, or tick Audio only (MP3) if you only want the sound. 4. Leave Max megabytes per video alone unless you want a tighter cap, then click Start. 5. Take the files from Storage, or follow mediaUrl from each row.
💰 How much does it cost?
$0.001 for every megabyte delivered. Flat on every Apify plan, no volume tiers.
A file counts as whole megabytes, rounded up, and each row tells you its own figure in billedMegabytes. So a 5.1 MB video counts as 6.
Nothing is charged per megabyte for a link that fails, a video refused for being over your limit, a post that is not a video, or a link that belongs on another actor. Those never move any bytes.
Quality is the lever. A 360p copy of the same post is a fraction of the megabytes of the 1080p one, and audioOnly is smaller again.
💡 What people use it for
- Keeping your own posts as files, on a schedule, instead of trusting an app's download button.
- Feeding clips into an editing or captioning step that needs a real file rather than a page.
- Pulling the sound out of a set of posts as MP3s, for transcription or a music check.
- Archiving a reference set of videos for a report, a pitch or a legal record.
🚧 What it does not do
- It cannot remove a watermark that is part of the video. The playback copy is what gets
downloaded, so a logo the uploader baked in stays.
- Photo posts and slideshows are not downloaded. Neither are profiles, sound pages, hashtag
pages or live streams. Each gets a line in ERRORS saying so.
- Country-limited posts fail. If TikTok only serves a post in some places, the run reports that
rather than guessing.
- Private and deleted posts are out of reach, the same as they are in a browser.
- One link is one video. Give it a profile and it will not walk that account's posts.
- The file is the file. No trimming, resizing or re-encoding happens here.
- Short links are accepted but less tested than full
tiktok.com/@name/video/<id>links, so
prefer the full form where you have it.
- Files live in the run's storage and go when the run's data is cleaned up. Copy anything you
want to keep.
🧭 Which downloader do you need?
| If you want | Use |
|---|---|
| A public TikTok video as MP4 or MP3 | This one |
| A public Facebook video | Facebook Video Downloader |
| A video from a post on X | X Video Downloader |
| A YouTube video or its audio | YouTube Video Downloader |
| The spoken words rather than the file | TikTok Transcript Scraper |
❓ Questions people ask
Do I need a TikTok account or cookies? No. Public posts only, and nothing is logged in.
Will the video have a watermark? Usually not, because the playback copy is what is fetched. If the uploader burned one into the video itself, it is in the file and it stays.
Can I download a whole profile? Not here. This takes one video link at a time. Collect the links first, then feed them in.
What if a link is dead or private? It lands in ERRORS with the reason and costs you nothing per megabyte. The rest of the links carry on.
Can I get just the audio? Yes. Tick audioOnly and each link comes back as a 128 kbit/s MP3 of that video's own sound.
Is downloading a TikTok video legal? Copyright sits with whoever made the video, and TikTok's terms apply to you as a user. Downloading your own posts or material you have rights to is the safe ground. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the link that failed and the run ID, and paste the line for it from the ERRORS record. That line usually names the problem on its own.