# Douyin Video Downloader - No Watermark MP4 抖音无水印下载 (`agentflow/douyin-video-downloader`) Actor

Download Douyin videos without watermark. Paste a share link, get the real no-watermark CDN URL.

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

## Pricing

$5.00 / 1,000 video 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Douyin Video Downloader — No Watermark (抖音无水印下载)

Paste a Douyin share link and get the **real no-watermark video URL** in seconds. Fast, lightweight, no browser needed.

### What does Douyin Video Downloader do?

Turn any Douyin (抖音) share link into a clean, direct, **watermark-free** MP4 URL you can download or stream — via pure HTTP, no browser, no Playwright, no login.

- Resolve any **Douyin share link** or copied share text to a **no-watermark** video URL
- Returns the **final CDN URL** (302-followed), ready to download or stream directly
- Get **title, author, cover, and filename** alongside the video URL
- **Batch mode** — resolve many links in one run
- **You only pay for successful resolves** — expired or invalid links are free
- **No browser needed** — runs in 128MB memory, extremely fast

### What data can you extract?

| Field | Description |
|-------|-------------|
| `download_url` | Direct **no-watermark** video URL (final CDN address) |
| `title` | Video title / caption |
| `author` | Creator nickname |
| `cover` | Cover image URL |
| `filename` | Suggested `.mp4` filename |
| `platform` | Always `douyin` |
| `success` | Whether the link resolved |

### How to download a Douyin video

1. Create a free Apify account
2. Open [Douyin Video Downloader](https://apify.com/agentflow/douyin-video-downloader)
3. Paste one or more Douyin share links (or the full share text copied from the app)
4. Click **Start**
5. Grab the `download_url` from the results (JSON, CSV, or Excel)

### Input example

```json
{
    "urls": [
        "https://v.douyin.com/7zmZHsanvZA/"
    ]
}
```

### Output example

```json
{
    "input": "https://v.douyin.com/7zmZHsanvZA/",
    "platform": "douyin",
    "success": true,
    "type": "video",
    "title": "这个视频太治愈了",
    "author": "某某创作者",
    "cover": "https://p3-sign.douyinpic.com/....jpeg",
    "download_url": "https://v3-web.douyinvod.com/....mp4",
    "filename": "这个视频太治愈了.mp4"
}
```

### Integrations — automate Douyin downloads

Connect this Actor to almost any app through the Apify platform. Push resolved URLs into **Make**, **Zapier**, **n8n**, **Slack**, **Google Sheets**, or **Google Drive**, trigger runs with **webhooks**, or drive everything from the **Apify API**. You can also expose it to AI agents through an **MCP server**, so an LLM can fetch a downloadable video URL as a tool call.

### Related downloaders

- 📕 [Xiaohongshu / RedNote Video Downloader](https://apify.com/agentflow/xiaohongshu-video-downloader) — no-watermark RedNote videos & images
- 💬 [WeChat Channels (Shipinhao) Video Downloader](https://apify.com/agentflow/wechat-channels-video-downloader) — 视频号 video URLs

### Error handling

Invalid, private, or expired links never fail the whole run — the Actor returns an item with `success: false` and an `error` message, and **does not charge** for it.

| Error | Meaning |
|-------|---------|
| `无法识别的链接格式` | The input is not a recognizable Douyin link |
| `无法解析视频地址，视频可能已被删除或设为私密` | The video was deleted or set to private |
| `No downloadable media found` | The link resolved but contained no video |

### FAQ

#### How much does it cost?

**$0.005 per successful video** (i.e. $5 per 1,000). Failed or expired links are free — you are only charged when a video URL is returned.

#### Is the video really watermark-free?

Yes. The Actor returns the source (`/play/`) CDN address, not the watermarked (`/playwm/`) stream, so the MP4 has no Douyin watermark.

#### What link formats are supported?

Short share links (`v.douyin.com/...`), full video URLs (`douyin.com/video/...`), and the raw share text copied from the Douyin app (the link is auto-extracted).

#### Is downloading Douyin videos legal?

The Actor only accesses publicly viewable videos. You are responsible for how you use the downloaded content — respect the creator's rights, Douyin's Terms of Service, and applicable copyright law. Do not redistribute content you do not own.

#### Can I use it with the API or an MCP server?

Yes. Control it through the [Apify API](https://docs.apify.com/api/v2) from your own code, or expose it to AI agents via the [Apify MCP server](https://mcp.apify.com).

Douyin Video Downloader · Douyin Downloader · Douyin No Watermark Downloader · 抖音无水印下载 · 抖音视频下载 · Douyin MP4 Downloader · Download Douyin Video Without Watermark · Douyin Video URL Extractor · TikTok China Downloader · Douyin Scraper Downloader

# Actor input Schema

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

One or more Douyin share links or share text (e.g. copied from the Douyin app). Each is resolved to a no-watermark video URL.

## Actor input object example

```json
{
  "urls": [
    "https://v.douyin.com/7zmZHsanvZA/"
  ]
}
```

# 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://v.douyin.com/7zmZHsanvZA/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("agentflow/douyin-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://v.douyin.com/7zmZHsanvZA/"] }

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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://v.douyin.com/7zmZHsanvZA/"
  ]
}' |
apify call agentflow/douyin-video-downloader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=agentflow/douyin-video-downloader",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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