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
1
Total users
0
Monthly active users
7 days ago
Last modified
Categories
Share
Download TikTok videos as no-watermark MP4 files (plus optional MP3 audio and cover image) saved as permanent Apify Key-Value store URLs. Built for content marketers, AI workflows, and agents that need an actual video binary - not an expiring CDN URL.
What this actor does
Give it one or more TikTok video URLs. For each video it:
- Resolves the canonical video metadata via ScrapeCreators (primary) or SociaVault (fallback).
- Fetches the no-watermark MP4 binary from the TikTok CDN.
- Saves the MP4 to the run's Apify Key-Value store as
video__<videoId>. - Optionally saves the MP3 audio track (
audio__<videoId>) and cover image JPEG (cover__<videoId>). - Pushes a flat dataset record with the public Apify Key-Value store URLs for every saved binary, plus full video metadata (caption, author, stats, music, hashtags).
The URLs returned in the dataset are permanent for the lifetime of the run's KV store and do not expire on the TikTok CDN side - because the file is yours, not TikTok's.
When to use this actor (and when NOT to)
Use this actor when:
- You need the actual
.mp4or.mp3file (not just a URL). - You're repurposing TikTok content into long-form video, Reels, Shorts, or YouTube.
- You're training/feeding an AI pipeline (multimodal models, ASR, video understanding) and need binaries.
- You're archiving content for research or compliance.
- You're an MCP agent that needs a single tool call: TikTok URL in, downloadable file out.
Do NOT use this actor for:
- Metadata-only scraping - use
tiktok-video-scraperinstead. It's cheaper if you only need captions, stats, and CDN URLs. - Profile, hashtag, or keyword discovery - this actor downloads specific videos by URL. Combine with
tiktok-video-scraperfor profile feeds first, then pipe URLs here. - Bulk channel rip in one click - you must supply each video URL. Use
tiktok-video-scraperto enumerate URLs from a profile, then this actor downloads them.
Output
One dataset record per video. Key fields:
| Field | Type | Example |
|---|---|---|
videoId | string | 7324105620095765765 |
videoUrl | string | https://www.tiktok.com/@stoolpresidente/video/... |
authorUsername | string | stoolpresidente |
authorNickname | string | Dave Portnoy |
caption | string | full caption text |
createdAt | string | ISO 8601 |
durationMs | int | 15800 |
width / height | int | 1080 / 1920 |
playCount / likeCount / commentCount / shareCount | int | counts at fetch time |
hashtags | string[] | ["barstool", "nyc"] |
musicTitle / musicAuthor | string | sound metadata |
kvNoWatermarkUrl | string | permanent Apify URL to the no-watermark MP4 |
kvNoWatermarkBytes | int | file size |
kvWatermarkedUrl | string | only when includeWatermarked=true |
kvMp3Url | string | only when extractAudio=true |
kvCoverUrl | string | only when includeCover=true (default) |
provider | string | scrapecreators or sociavault |
scrapedAt | string | ISO 8601 |
_error | string | set only when a download failed |
Pricing
Pay-Per-Event (PPE) - billed only for successfully saved files:
| Event | Price |
|---|---|
apify-actor-start | $0.00005 per run |
video-downloaded | $0.012 per video (no-watermark MP4 saved to KV) |
audio-extracted | $0.008 per video (only when extractAudio=true) |
Pay-Per-Usage is also enabled for power users who prefer compute + proxy passthrough billing. Pick whichever model is cheaper for your job at run time.
Typical run cost (PPE):
- 10 videos, video only: $0.12
- 10 videos, video + audio + cover: $0.20
- 50 videos, default (video + cover): $0.60
Quick start
Apify Console
- Paste TikTok video URLs into TikTok video URLs.
- Toggle Extract MP3 audio, Include watermarked MP4, Include cover image as needed.
- Click Start.
- After the run finishes, open the Dataset tab to see one row per video with clickable Key-Value store URLs.
API (cURL)
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~tiktok-no-watermark-downloader/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"videoUrls": ["https://www.tiktok.com/@stoolpresidente/video/7324105620095765765"],"extractAudio": true,"includeCover": true}'
Node.js SDK
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('khadinakbar/tiktok-no-watermark-downloader').call({videoUrls: ['https://www.tiktok.com/@user/video/1234567890'],extractAudio: false,includeCover: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0].kvNoWatermarkUrl);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("khadinakbar/tiktok-no-watermark-downloader").call(run_input={"videoUrls": ["https://www.tiktok.com/@user/video/1234567890"],"extractAudio": False,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["kvNoWatermarkUrl"])
MCP / Claude / GPT agents
Available in Apify MCP as apify--tiktok-no-watermark-downloader. Single tool call: video URL in, MP4 download URL out. Predictable PPE pricing per call (~$0.012 per video). Perfect tool when an agent is asked to "download this TikTok" or "save this video for later editing".
How it works under the hood
- URLs in
videoUrlsare normalized (short share links likevm.tiktok.com/ZXXX/are preserved and resolved upstream). - Each URL is sent to the configured providers in
providerOrder(default: ScrapeCreators first, SociaVault on failure). Both expose TikTok's public video endpoint and return the same canonical aweme structure. - The actor extracts the no-watermark download URL (
video.download_no_watermark_addror fallback tovideo.play_addrwith no-watermark flag), the music URL, and the cover URL. - Each binary is fetched with mobile-Safari headers +
Referer: https://www.tiktok.com/. TikTok's CDN serves signed URLs but accepts any user-agent. - Files are written to the run's default Key-Value store. The dataset row stores the public Apify URL for each binary.
Sister actors (TikTok cluster)
tiktok-video-scraper- video metadata + creator profile feeds (URLs only, cheaper).tiktok-profile-scraper- profile bio, follower count, recent videos.tiktok-video-comments-scraper- comments by video URL.tiktok-transcript-scraper- WEBVTT transcripts.tiktok-trending-hashtags-scraper- trending hashtag discovery.
Typical pipeline: discover videos with tiktok-video-scraper → pipe URLs into this actor → save MP4 files.
Notes & limitations
- Watermark removal depends on the provider surfacing a no-watermark URL. When only a watermarked URL is available, the actor saves that (and
kvWatermarkedUrlmatcheskvNoWatermarkUrl). The_errorfield is set only when no video URL is surfaced at all. - MP3 extraction uses the TikTok music/sound URL surfaced by the provider, not ffmpeg re-encoding. The original sound is what's saved.
- File size cap is 100 MB per binary (sane bound; TikTok videos are typically 1-10 MB).
- PPE billing: you are charged only for videos that are successfully saved. Failed downloads do not bill the
video-downloadedevent but theapify-actor-startcharge applies once per run.
FAQ
Q: Do I need a TikTok cookie or login? No. The actor is fully provider-backed. No cookies, no TikTok credentials.
Q: Are downloaded files private? The Apify Key-Value store records have public read URLs scoped to the run. If your run is private, only token-authenticated callers can read them. For public-actor runs, the URLs are accessible to anyone with the URL.
Q: How long are the KV URLs valid? For the lifetime of the run's data retention (default: indefinite on paid plans; subject to your Apify plan retention policy). For permanent off-Apify storage, pull the binaries from the URLs into S3 / Cloudflare R2 / your own bucket.
Q: Can I download multiple videos at once?
Yes. Pass up to 500 URLs in videoUrls. Default cap is 50 (set via maxVideos). Videos are processed sequentially to keep memory low.
Q: What happens on a failed download?
The dataset row gets an _error field with the reason. PPE is NOT charged for that video. If ALL downloads fail, the run is marked FAILED to keep the success-rate metric honest.
Legal
This actor downloads publicly accessible TikTok content. You are responsible for complying with TikTok's Terms of Service, applicable copyright law, and any platform-specific rules (e.g. attribution requirements, commercial use restrictions). Do not redistribute copyrighted content without permission from the rights holder.
The actor is independent and not affiliated with, endorsed by, or sponsored by TikTok Inc. or ByteDance.
Support
Open an issue in the actor's Issues tab on the Apify Store page. Include your run ID for fastest triage.