TikTok Video, Audio & Cover Downloader avatar

TikTok Video, Audio & Cover Downloader

Pricing

from $0.49 / 1,000 results

Go to Apify Store
TikTok Video, Audio & Cover Downloader

TikTok Video, Audio & Cover Downloader

Download TikTok videos, cover thumbnails, background audio, and slideshow images by post URL, with quality selection and a stable download link per file.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

Nimbryxo-studio

Nimbryxo-studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Download TikTok video files, cover thumbnails, background audio, and slideshow images by URL. The actor stores each file in Apify's Key-Value Store and returns a stable download URL per asset. Supports quality selection (best, 720p, 540p, 360p, smallest) and a configurable filename template. No TikTok account or cookies are required.

What this actor does

  • Accepts TikTok video and photo post URLs or bare numeric post IDs as input (duplicates are processed once)
  • Downloads the selected asset types (video, cover image, audio, slideshow frames) per post
  • Stores each file in the run's Key-Value Store and emits one dataset row per downloaded asset; assets that can't be found or downloaded get no row
  • Supports quality selection for video downloads: best, 720p, 540p, 360p, or smallest
  • Returns file metadata including dimensions, byte size, codec, and bitrate where available
  • Allows a custom filename template with {postId}, {type}, {ordinal}, and {ext} placeholders
  • Processes each URL sequentially to avoid rate limiting
  • Empty fields are omitted

Output per asset

  • postId — unique TikTok video ID
  • postUrl — canonical TikTok post URL
  • assetType — type of asset: video, cover, audio, or image
  • ordinal — index of the asset within its type: the frame number for slideshow images, 0 for everything else
  • kvsKey — Key-Value Store key used to store the file (built from filenameTemplate, with characters other than letters, digits, ., _ and - replaced by _)
  • kvsUrl — stable Apify Key-Value Store URL to download the file
  • mimeType — MIME type the file is stored with: video/mp4, audio/mpeg, or image/jpeg for covers and slideshow images
  • byteSize — file size in bytes
  • width — pixel width (video and slideshow image assets)
  • height — pixel height (video and slideshow image assets)
  • duration — duration in seconds (video and audio assets)
  • codecType — video codec identifier (e.g. h264), video only
  • bitrate — video bitrate in bps, video only
  • gearName — TikTok quality tier label of the chosen video file (e.g. normal, adapt), present when TikTok offered a list of quality options
  • definition — TikTok's video definition label (e.g. normal, high), when exposed separately from gearName
  • downloadedAt — ISO 8601 timestamp when the file was saved to the store

Input

FieldTypeDefaultDescription
postUrlsarray of strings—TikTok post URLs to download, such as tiktok.com/@user/video/ID, /photo/ID, /video/ID, /v/ID or /embed/v2/ID, or bare numeric IDs. Short vm.tiktok.com/vt.tiktok.com links are not recognized and are skipped.
postIdsarray of strings—Numeric TikTok post IDs (alternative to postUrls; both lists can be combined).
assetTypesarray of strings["video", "cover"]Asset types to download per post: video, images (slideshow frames), audio, cover.
preferredQualitystring"best"Target video quality: best, 720p, 540p, 360p, or smallest.
filenameTemplatestring"{postId}_{type}_{ordinal}.{ext}"Template for Key-Value Store keys. Placeholders: {postId}, {type}, {ordinal}, {ext}.

Example: Download video and cover thumbnail

{
"postUrls": ["https://www.tiktok.com/@khaby.lame/video/7574844184952081686"],
"assetTypes": ["video", "cover"],
"preferredQuality": "best"
}

Example: Cover thumbnails only (lightweight)

{
"postUrls": [
"https://www.tiktok.com/@khaby.lame/video/7574844184952081686",
"https://www.tiktok.com/@natgeo/video/7341234567890123456"
],
"assetTypes": ["cover"]
}

Example: Download at 540p to save storage

{
"postUrls": ["https://www.tiktok.com/@bbcnews/video/7395279524742083872"],
"assetTypes": ["video"],
"preferredQuality": "540p",
"filenameTemplate": "{postId}_video_{ordinal}.{ext}"
}

Example: Download slideshow images and audio

{
"postUrls": ["https://www.tiktok.com/@somecreator/video/7123456789012345678"],
"assetTypes": ["images", "audio"]
}

Use cases

  • Content archiving — preserve brand or creator content before it is deleted or made private
  • Ad creative libraries — download competitor or inspiration videos for internal review and benchmarking
  • Thumbnail pipelines — bulk-collect cover images for visual classification, brand consistency audits, or moderation workflows
  • Media production — pull background music tracks (audio asset type) from viral TikTok sounds for licensing research
  • Dataset building — compile labeled video/image datasets for computer vision or multimodal ML training

FAQ

Q: Do I need a TikTok account or cookies?
A: No. The actor downloads publicly available TikTok videos without any authentication.

Q: How long are the download URLs valid?
A: Files are stored in the run's default Key-Value Store, and kvsUrl works for as long as Apify keeps that run's storage (unnamed storages are removed after your plan's retention period). Download the files to your own storage if you need them for longer.

Q: What is the difference between video and images asset types?
A: video downloads the standard MP4 file for regular video posts. images downloads individual frames from TikTok slideshow (photo carousel) posts, one row per frame. Regular video posts do not produce image rows.

Q: What does preferredQuality do exactly?
A: When TikTok offers several encodings of a video, the actor picks the one whose quality-tier label contains the requested resolution (e.g. 720), or the highest/lowest bitrate for best/smallest. If no entry matches the label, it falls back to the highest-bitrate entry, same as best. When TikTok offers no list of encodings, the single available file is downloaded regardless of this setting.

Q: What if a URL fails to download?
A: Failed downloads do not block other URLs — the actor moves on to the next post. A post that produces no assets simply has no rows in the dataset rather than an error row, so check your input list against the dataset's distinct postId values to see which posts didn't come through. Inputs that aren't recognized as a TikTok post are skipped the same way.

Q: Are short TikTok URLs (vm.tiktok.com, vt.tiktok.com) supported?
A: No. Open the short link in a browser and paste the full tiktok.com/@user/video/ID address, or just the numeric ID, instead.

Q: Can I download multiple posts in one run?
A: Yes. Pass as many URLs as needed in the postUrls array. Posts are processed sequentially.

Q: What filename template should I use for slideshow images?
A: Keep {ordinal} in the template (the default does) so each frame gets a unique, ordered key; without it, frames of the same post overwrite each other in the store.

Q: Is this affiliated with TikTok?
A: No. It is an independent tool that downloads publicly available TikTok media and is not run or endorsed by TikTok. Only download content you have the right to use.