TikTok Video Downloader - No Watermark MP4 + MP3
Pricing
from $12.00 / 1,000 video downloadeds
TikTok Video Downloader - No Watermark MP4 + MP3
Download TikTok videos as no-watermark MP4 files plus optional MP3 audio and cover image, saved as permanent Apify Key-Value store URLs. Provider-backed, no cookies required, MCP optimized for AI agents.
Pricing
from $12.00 / 1,000 video downloadeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Use this Apify Actor to download one or more specific TikTok video URLs and receive one dataset row per video. Each record can include the video metadata, no-watermark MP4 file URL, optional MP3 audio URL, optional cover image URL, and provider details. The files are saved as permanent Apify Key-Value store URLs, which makes the Actor useful for automation, content workflows, and AI agents through Apify MCP.
Best fit and connected workflows
This Actor fits workflows that start with a known TikTok video URL and end with a downloadable media file and structured metadata. It routes well into:
- media archiving flows that keep an MP4 copy with stable Apify URLs,
- editing pipelines that need a no-watermark video plus optional audio and cover image,
- AI agent workflows that need one tool call to fetch a TikTok video and read the result from a dataset,
- TikTok research flows where the video record includes caption, creator, hashtags, engagement counts, and provider source.
Use When you also need comment-level data for a downloaded video, the sibling Actor TikTok Comments Scraper - Replies & Authors fits naturally after this downloader in a broader TikTok workflow.
Practical scenario
Maya, a content operations specialist, gets a list of two TikTok video links from a campaign brief. She sends those URLs to the Actor with includeCover enabled and extractAudio turned on for one run. The dataset returns authorUsername, caption, playCount, likeCount, kvNoWatermarkUrl, kvMp3Url, and kvCoverUrl. Maya uses the caption and engagement fields to tag the assets, then hands the permanent MP4 URL to an editor and the MP3 URL to an audio workflow for reuse.
Input
Provide one or more TikTok video URLs. The Actor accepts canonical TikTok links and short share links. It downloads specific videos by URL, with a configurable provider route and a hard cap on the number of videos processed per run.
| Field | Type | Default | Description |
|---|---|---|---|
videoUrls | array of strings | example prefill | One or more TikTok video URLs. Supports canonical video URLs and short share links. |
extractAudio | boolean | false | Saves the video audio track as an MP3 and returns kvMp3Url. |
includeWatermarked | boolean | false | Also saves the watermarked MP4 and returns kvWatermarkedUrl. |
includeCover | boolean | true | Saves the cover thumbnail as a JPEG and returns kvCoverUrl. |
providerOrder | string | scrapecreators-first | Selects the provider routing order between ScrapeCreators and SociaVault. |
maxVideos | integer | 50 | Caps the number of videos processed in one run. |
Valid input example
{"videoUrls": ["https://www.tiktok.com/@mrbeast/video/7654638524729216287","https://vm.tiktok.com/ZMhuLkX5J/"],"extractAudio": true,"includeWatermarked": false,"includeCover": true,"providerOrder": "scrapecreators-first","maxVideos": 50}
Output
The dataset contains one row per successfully processed video, plus a run summary in Key-Value store storage. The dataset row includes the video metadata and public Apify URLs for any saved binaries.
| Field | Type | Description |
|---|---|---|
videoId | string | TikTok aweme/video ID. |
videoUrl | string | Canonical TikTok video URL. |
authorUsername | string | Creator handle without the @ prefix. |
authorNickname | string | Creator display name. |
caption | string | Video caption text. |
createdAt | string | ISO 8601 upload timestamp. |
durationMs | integer | Video duration in milliseconds. |
width | integer | Video width in pixels. |
height | integer | Video height in pixels. |
playCount | integer | Play count at fetch time. |
likeCount | integer | Like count at fetch time. |
commentCount | integer | Comment count at fetch time. |
shareCount | integer | Share count at fetch time. |
hashtags | array | Hashtags extracted from the video. |
musicTitle | string | Music or sound title. |
musicAuthor | string | Music or sound creator. |
kvNoWatermarkUrl | string | Public Apify Key-Value store URL for the no-watermark MP4. |
kvNoWatermarkBytes | integer | File size of the no-watermark MP4. |
kvWatermarkedUrl | string | Public Apify Key-Value store URL for the watermarked MP4. |
kvWatermarkedBytes | integer | File size of the watermarked MP4. |
kvMp3Url | string | Public Apify Key-Value store URL for the MP3 audio. |
kvMp3Bytes | integer | File size of the MP3. |
kvCoverUrl | string | Public Apify Key-Value store URL for the cover image JPEG. |
kvCoverBytes | integer | File size of the cover image. |
provider | string | Provider that supplied the video metadata. |
scrapedAt | string | ISO 8601 timestamp when the record was written. |
_error | string | Populated when the download could not complete. |
Illustrative output record
{"videoId": "7654638524729216287","videoUrl": "https://www.tiktok.com/@mrbeast/video/7654638524729216287","authorUsername": "mrbeast","authorNickname": "MrBeast","caption": "Example caption text","createdAt": "2024-01-01T12:00:00Z","durationMs": 15800,"width": 1080,"height": 1920,"playCount": 1234567,"likeCount": 234567,"commentCount": 34567,"shareCount": 4567,"hashtags": ["example", "tiktok"],"musicTitle": "Example sound","musicAuthor": "Example artist","kvNoWatermarkUrl": "https://api.apify.com/v2/key-value-stores/example/records/video__7654638524729216287.mp4","kvNoWatermarkBytes": 1234567,"kvMp3Url": "https://api.apify.com/v2/key-value-stores/example/records/audio__7654638524729216287.mp3","kvMp3Bytes": 234567,"kvCoverUrl": "https://api.apify.com/v2/key-value-stores/example/records/cover__7654638524729216287.jpg","kvCoverBytes": 34567,"provider": "scrapecreators","scrapedAt": "2024-01-01T12:00:05Z"}
How it works
- The Actor normalizes the supplied TikTok video URLs.
- It resolves video metadata through the configured provider order: ScrapeCreators and SociaVault.
- It downloads the no-watermark MP4 from the TikTok CDN URL returned by the provider.
- When enabled, it also saves the MP3 audio and the cover image.
- It writes a dataset record with metadata, file sizes, provider information, and public Apify Key-Value store URLs.
- It writes a run summary to Key-Value store storage for easier automation and review.
The Actor is provider-backed, does not require cookies, and is optimized for use through Apify MCP.
Pricing
This Actor uses Pay per event pricing on Apify, plus standard Apify platform usage. The billed events are tied to the run start and to each successfully saved video, with an additional event when MP3 extraction is enabled and completes successfully. For the current rates and platform usage details, check the live Pricing tab on the Actor page.
As a simple event-count example: if a run saves three videos and extracts audio for two of them, the bill includes the run start event, three video download events, and two audio extraction events, plus any applicable Apify platform usage shown in the Pricing tab.
Use with AI agents (MCP)
This Actor is available as an Apify Actor usable through Apify MCP. It is a focused tool for taking a TikTok video URL and returning dataset records with stable file links and structured metadata.
Tool description: download one or more TikTok video URLs, return no-watermark MP4 file URLs, and optionally save MP3 audio and cover images with provenance fields from the provider that supplied the metadata.
Actor identity: khadinakbar/tiktok-no-watermark-downloader
Download these TikTok video URLs, save the no-watermark MP4 for each one, and include the cover image. Return the dataset items and tell me which provider supplied each record.
How to read the output:
kvNoWatermarkUrlis the primary file deliverable.kvMp3Urlappears when audio extraction is enabled and succeeds.kvCoverUrlappears when cover saving is enabled.providershows whether ScrapeCreators or SociaVault supplied the metadata._erroris a record-level status field when a video could not be completed.
Provenance and scope:
The dataset row is one record per video URL. The file URLs point to Apify Key-Value store objects, which makes them useful for downstream automation and agent handoff.
Pagination and cost guidance:
The dataset can be read back page by page through the Apify API. Cost scales with the number of successfully downloaded videos and with MP3 extraction when enabled, so maxVideos is useful for keeping a run bounded.
Apify API example
import { ApifyClient } from "apify-client";const client = new ApifyClient({token: process.env.APIFY_TOKEN});const run = await client.actor("khadinakbar/tiktok-no-watermark-downloader").call({videoUrls: ["https://www.tiktok.com/@mrbeast/video/7654638524729216287"],extractAudio: true,includeCover: true,providerOrder: "scrapecreators-first",maxVideos: 50});const dataset = await client.dataset(run.defaultDatasetId).listItems();for (const item of dataset.items) {console.log(item.kvNoWatermarkUrl);console.log(item.kvCoverUrl);}const readback = await client.dataset(run.defaultDatasetId).listItems({ limit: 100 });console.log(readback.items);
Best results and outcome guidance
Use direct TikTok video URLs in videoUrls. If your workflow begins from a profile or feed, first collect the video URLs with a discovery Actor, then pass the URLs into this downloader. Keep maxVideos aligned with the batch size you want to process in one run. Choose extractAudio when your downstream workflow needs the sound track as a separate MP3, and keep includeCover enabled when thumbnails help with previews, CMS imports, or review queues.
Continue the workflow
- Then use TikTok Profile Posts Scraper - Creator Feed Data to collect Tiktok record context for media identified with TikTok Video Downloader - No Watermark MP4 + MP3.
- Then use TikTok Profile Scraper — Followers, Bio, Engagement & Videos to collect Tiktok record context for media identified with TikTok Video Downloader - No Watermark MP4 + MP3.
Design note
I found that the dataset contract always includes kvNoWatermarkUrl as the primary deliverable, while kvMp3Url, kvWatermarkedUrl, and kvCoverUrl appear based on the relevant input flags.
FAQ
Can I use this Actor with a single TikTok link?
Yes. A single video URL is a valid input, and the dataset returns one row for that video.
Can I pass short share links?
Yes. The input schema accepts short share links such as vm.tiktok.com URLs alongside canonical TikTok video links.
When should I use the provider routing field?
Use providerOrder when you want to set the lookup order between ScrapeCreators and SociaVault. The default route is scrapecreators-first.
What should I use when I only need comments for a downloaded video?
Pair this Actor with TikTok Comments Scraper - Replies & Authors after the video download step.
Where is the run summary stored?
The output contract includes a run summary in Key-Value store storage at RUN_SUMMARY, alongside the dataset of downloaded videos.
Responsible use
This Actor downloads publicly accessible TikTok content. Use it in line with TikTok's terms, copyright rules, and any permissions or attribution requirements that apply to the content you process. When you save or redistribute media, keep ownership, licensing, and intended use in mind.