# TikTok Video Downloader - No Watermark HD MP4 & MP3 (`agentflow/tiktok-video-downloader`) Actor

Download TikTok videos without watermark in HD MP4, plus MP3 audio and slideshow photos. Paste links, get direct download URLs. No login, pay only per success.

- **URL**: https://apify.com/agentflow/tiktok-video-downloader.md
- **Developed by:** [Yunbin Huang](https://apify.com/agentflow) (community)
- **Categories:** Videos, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 link resolveds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## TikTok Video Downloader

Turn any TikTok link into a **direct, watermark-free HD MP4 URL** — plus the MP3 soundtrack and the original photos of slideshow posts. No login, no browser, no cookies to manage.

### What does TikTok Video Downloader do?

- **No watermark** — the clean source file, not the re-encoded watermarked stream
- **HD and SD** MP4 URLs when TikTok offers both
- **MP3 audio** of the sound attached to the video
- **Slideshows supported** — photo posts return every original image
- Mobile short links (`vm.tiktok.com`, `vt.tiktok.com`) and pasted share text work as-is
- **Batch mode** — put hundreds of links in one run
- **You only pay for successful links** — deleted, private or invalid links are free
- **No browser** — pure HTTP, runs in 128 MB, results in a couple of seconds per link

### Supported links

| Type | Formats |
|------|---------|
| Video | `tiktok.com/@user/video/…` |
| Photo / slideshow | `tiktok.com/@user/photo/…` |
| Short links | `vm.tiktok.com/…`, `vt.tiktok.com/…`, `tiktok.com/t/…` |

### What data do you get?

| Field | Description |
|-------|-------------|
| `download_url` | Best-quality direct MP4 URL (video posts) |
| `video_hd_url` / `video_sd_url` | HD and SD MP4 URLs when both exist |
| `images` / `image_count` | Every image of a photo post / carousel / slideshow |
| `audio_url` | MP3 audio (TikTok) |
| `title` | Caption / title |
| `author` | Creator username |
| `cover` | Cover / thumbnail image |
| `duration` | Video length in seconds |
| `type` | `video` or `images` |
| `platform` | Detected platform |
| `success` / `error` | Whether the link resolved, and why not |

### How to use

1. Create a free Apify account
2. Open [TikTok Video Downloader](https://apify.com/agentflow/tiktok-video-downloader)
3. Paste one or more links (one per line)
4. Click **Start**
5. Download the results as JSON, CSV or Excel, or fetch them through the API

### Input example

```json
{
    "urls": [
        "https://www.tiktok.com/@hegomar24/video/7681711979014245654"
    ]
}
```

### Output example

```json
{
    "input": "https://www.tiktok.com/@hegomar24/video/7681711979014245654",
    "platform": "tiktok",
    "success": true,
    "type": "video",
    "id": "…",
    "title": "Video caption…",
    "author": "creator",
    "cover": "https://…/cover.jpeg",
    "duration": 20,
    "source_url": "https://www.tiktok.com/@hegomar24/video/7681711979014245654",
    "download_url": "https://tiktap.app/dl?url=…&q=hd",
    "video_hd_url": "https://tiktap.app/dl?url=…&q=hd",
    "video_sd_url": "https://tiktap.app/dl?url=…&q=sd",
    "audio_url": "https://tiktap.app/dl?url=…&q=music"
}
```

Media URLs are direct links you can download with any HTTP client (`curl`, `wget`, Python `requests`) or open in a browser. They stay valid as long as the original post is public — fetch them whenever you need, no rush.

### How much does it cost?

**$0.003 per successful link** ($3 per 1,000). No start fee, no per-item fee on failures: if a link is deleted, private or invalid you pay nothing. Apify's free plan credit covers well over a thousand links a month.

### Integrations

Push results into **Make**, **Zapier**, **n8n**, **Google Sheets**, **Google Drive** or **Slack**, trigger runs via **webhooks** or the **Apify API**, or let AI agents call it as a tool through the [Apify MCP server](https://mcp.apify.com).

### Other downloaders by the same author

- [All-in-One Social Video Downloader](https://apify.com/agentflow/social-video-downloader)
- [TikTok Photo & Slideshow Downloader](https://apify.com/agentflow/tiktok-photo-downloader)
- [Instagram Reels & Video Downloader](https://apify.com/agentflow/instagram-video-downloader)
- [Facebook Video & Reels Downloader](https://apify.com/agentflow/facebook-video-downloader)
- [Twitter (X) Video Downloader](https://apify.com/agentflow/twitter-video-downloader)
- [Douyin Video Downloader](https://apify.com/agentflow/douyin-video-downloader) — 抖音无水印
- [Xiaohongshu / RedNote Video Downloader](https://apify.com/agentflow/xiaohongshu-video-downloader)
- [WeChat Channels Video Downloader](https://apify.com/agentflow/wechat-channels-video-downloader) — 视频号

### Error handling

Bad links never fail the run. Each one returns an item with `success: false` and an `error` message, and is **not charged**.

| Error | Meaning |
|-------|---------|
| Not a single post link | Profile, music, shop or home page links have no single media to download |
| The post was deleted, set to private… | The post is gone or not public |
| Age-restricted or login-only | The platform requires login for this post |
| This Actor only handles … | The link belongs to another platform — try the [All-in-One Social Video Downloader](https://apify.com/agentflow/social-video-downloader) |

### FAQ

#### Do I need to log in or provide cookies?

No. Only public posts are fetched, without any account.

#### Can I download private posts or stories?

No — only content that is publicly viewable without login.

#### Is this legal?

The Actor only accesses publicly available media. You are responsible for how you use it: respect creators' rights, each platform's Terms of Service and copyright law, and don't redistribute content you don't own.

#### Can I use it from my own code?

Yes — call it through the [Apify API](https://docs.apify.com/api/v2) with any language, or schedule it and receive results by webhook.

TikTok Video Downloader · TikTok Downloader No Watermark · Download TikTok Without Watermark · TikTok MP4 Downloader · TikTok MP3 Downloader · TikTok HD Downloader · SnapTik Alternative · SSSTik Alternative · TikTok Video Download API · Bulk TikTok Downloader

# Actor input Schema

## `urls` (type: `array`):

One or more TikTok links (tiktok.com, vm.tiktok.com, vt.tiktok.com). One per line. Short links and share text copied from the app are fine.

## Actor input object example

```json
{
  "urls": [
    "https://www.tiktok.com/@hegomar24/video/7681711979014245654"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

One item per input link: direct media URLs (download_url, video_hd_url, video_sd_url, images, audio_url), title, author, cover, or success=false with an error.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.tiktok.com/@hegomar24/video/7681711979014245654"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("agentflow/tiktok-video-downloader").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "urls": ["https://www.tiktok.com/@hegomar24/video/7681711979014245654"] }

# Run the Actor and wait for it to finish
run = client.actor("agentflow/tiktok-video-downloader").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.tiktok.com/@hegomar24/video/7681711979014245654"
  ]
}' |
apify call agentflow/tiktok-video-downloader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,agentflow/tiktok-video-downloader"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/W5eC1eMRDN67FBgQI/builds/fQhdv0dfMUB2W26K1/openapi.json
