Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
TikTok Video Downloader icon

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.

49 runs on Apify $0.001 per megabyte downloaded ($1 / 1,000)
Run this in the cloudRun on Apify →

Developer & Research Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust urls, quality, audioOnly (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export 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 forWhenPrice
Megabyte downloadedEach 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

FieldWhat it doesType
urlsOne 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
qualityMeasured 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
audioOnlySave just the video's sound, as a 128 kbit/s MP3, instead of the video.boolean
maxMegabytesA 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:

titleauthordurationSecondsresolutionformatfileSizeBytesbilledMegabytesmediaUrlurlhostmediaKey

Export 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 iconDeveloper & Research Tools

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.

18 use cases

Stack Overflow / Stack Exchange Scraper iconDeveloper & Research Tools

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.

2 use cases

Package Registry Scraper (npm + PyPI) iconDeveloper & Research Tools

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.

2 use cases

arXiv Scraper iconDeveloper & Research Tools

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.

2 use cases

OpenAlex Scholarly Works Scraper iconDeveloper & Research Tools

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.

2 use cases

Crossref Scholarly Works Scraper iconDeveloper & Research Tools

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.

2 use cases

See all 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.

InputLinks to single public TikTok videos
OutputOne MP4 or MP3 per link, in the run's key-value store, plus a row per file
Ceiling500 MB per video by default, up to 4,000, and about 716 MB of files per run at the default memory
Account neededNone, 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
}
FieldDefaultWhat it is
urlsbox holds one example linkOne link per line, each to a single TikTok video. vm. and vt. short links, m. links and embed links are understood. Required.
quality1080best, 1080, 720, 480 or 360, measured on the short side. A bigger picture is a bigger file, and you pay by the megabyte.
audioOnlyfalseSave the sound as a 128 kbit/s MP3 instead of the video.
maxMegabytes500A 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=..."
}
FieldWhat it is
mediaUrlThe direct link to the file. It works without a token, so you can pass it straight to whatever comes next.
mediaKeyThe name of the record in the run's key-value store, tiktok-<id>.mp4 or .mp3.
fileSizeBytesThe size of the file that was actually stored, checked against the stored copy after upload.
billedMegabytesWhat that file counted as, in whole megabytes.
durationSeconds, resolutionMeasured on the finished file, not taken from the page.
titleThe caption. A post with no caption gets TikTok video #<id>.
formatmp4, or mp3 when you asked for audio only.

🧾 Reading the output

Two places to look, and they never mix.

WhereWhat is in it
The datasetOne row per file that was delivered and checked.
ERRORS in the key-value storeA 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 wantUse
A public TikTok video as MP4 or MP3This one
A public Facebook videoFacebook Video Downloader
A video from a post on XX Video Downloader
A YouTube video or its audioYouTube Video Downloader
The spoken words rather than the fileTikTok 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.