# Tiktok Video Downloader (`solid-scraper/tiktok-video-downloader`) Actor

🚀 Download TikTok videos in seconds! Our TikTok Video Downloader makes it easy to save your favorite clips with no hassle. 📥✨ Fast, simple, and free—perfect for creators, fans, and social media lovers. 🎬

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

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### TikTok Video Downloader Actor 🎬

**TikTok Video Downloader Actor** helps you download TikTok videos from a list of public TikTok video URLs and save results in a structured dataset. Whether you’re using a **TikTok video downloader actor name** workflow for content research, building a **TikTok video download actor** pipeline for marketing ops, or simply trying to quickly grab video files, this TikTok downloader actor is designed to streamline the process and save you time at scale.

It’s a great fit for marketers, analysts, and researchers who want repeatable **TikTok video downloader script actor** output without manual clicking—so you can process multiple TikTok video links in one run.

***

### Why choose TikTok Video Downloader Actor?

| Feature | Benefit |
|---|---|
| ✅ **List-based input (`video_urls`)** | Process many TikTok video URLs in a single run without manual repetition |
| ✅ **Desired resolution support (`desired_resolution`)** | Choose from **1080p**, **720p**, **480p**, or **360p** to match your needs |
| ✅ **Reliability with fallbacks** | Attempts to use an available candidate link first, then falls back to an alternate downloadable link |
| ✅ **Structured dataset output** | Each processed video returns consistent fields like `original_url`, `title`, and `Download video` |
| ✅ **Scales across batches** | Works best when you feed multiple videos at once—ideal for “download at scale” workflows |
| ✅ **Built-in video link validation** | Checks whether candidate links behave like video files before using them |

***

### Key features

- 🎯 **Video URL to downloadable link:** Converts each input TikTok URL into a dataset record with a `Download video` link when available
- 📥 **Supports multiple input videos:** Accepts an array of `video_urls`, so you can process many videos in one actor run
- 🖼️ **Captures useful metadata:** Returns `title`, `channel`, `duration`, `thumbnail`, and `video_type` in the output
- 🔄 **Fallback logic for resilience:** If the primary candidate isn’t usable, it tries another approach to get a valid video link
- 🌐 **Resolution selection (`desired_resolution`):** Lets you choose among 1080p, 720p, 480p, and 360p to guide the output quality
- 💾 **Downloads are saved to a key-value store:** When a valid downloadable link is retrieved, the actor stores the video content and returns a direct download URL
- ⏱️ **Human-readable duration:** Output duration is formatted as a readable string (for example, `1m 12s`)
- 📊 **Dataset-friendly output:** Results are pushed per URL via `Actor.push_data`, making it easy to export and analyze later

***

### Input

Provide input via an `input.json` file. Example structure:

```json
{
  "video_urls": [
    {
      "url": "https://www.tiktok.com/@therock/video/7473147398718573866"
    },
    {
      "url": "https://www.tiktok.com/@mrbeast/video/7476529277253635374"
    }
  ],
  "desired_resolution": "1080p"
}
```

#### Input Fields

| Field | Required | Description |
|---|---:|---|
| `video_urls` | Yes | A list of TikTok video URLs to process. Provide as an array of items where each item includes a `url`. |
| `desired_resolution` | No | The desired resolution to request (one of `1080p`, `720p`, `480p`, `360p`). Defaults to `1080p`. |

💡 Tip: If you need a **TikTok video downloader app actor**-style workflow for content collections, simply paste multiple TikTok links into `video_urls` and let the actor handle the rest.

**📌 IMPORTANT download-link note:** If you click on the downloadable link after the actor run finishes and face any unexpected behavior—such as only audio playing or no video showing—simply copy the link and paste it into another browser or device. If it persists, try opening the link on a mobile device browser, which has been proven to work 100% of the time ✅

***

### Output

The actor pushes one JSON result per TikTok URL into the default Apify dataset.

```json
{
  "original_url": "https://www.tiktok.com/@therock/video/7473147398718573866",
  "title": "not available",
  "channel": "not available",
  "duration": "N/A",
  "thumbnail": "not available",
  "video_type": "reel",
  "Download video": "https://api.apify.com/v2/key-value-stores/default/records/<encoded_key>?token=<token>"
}
```

#### Output Fields

| Field | Type | Description |
|---|---|---|
| `original_url` | string | The TikTok video URL that was processed |
| `title` | string | The video title (or `not available` if not found) |
| `channel` | string | The uploader/channel name (or `not available` if not found) |
| `duration` | string | Human-readable duration (for example, `1m 12s`; or `N/A`) |
| `thumbnail` | string | Thumbnail URL (or `not available` if not found) |
| `video_type` | string | Either `reel` (duration under 60 seconds) or `long video` |
| `Download video` | string | A direct downloadable link when available, otherwise `not available` or a fallback link |
| `error` | string | Error details if processing failed |
| `status` | string | Present when an error occurs (example: `FAILED`) |

📦 Export formats: you can export the dataset as JSON/CSV from the Apify Console (export options are available in the dataset UI).

***

### How to use TikTok Video Downloader Actor (via Apify Console)

1. **Open Apify Console**\
   Log in at https://console.apify.com and go to the **Actors** section.

2. **Find TikTok Video Downloader Actor**\
   Search for **TikTok Video Downloader Actor** and open its actor page.

3. **Go to the INPUT panel**\
   Use the built-in form or paste your `input.json` values.

4. **Add your TikTok video links**\
   Paste an array of items into `video_urls` (each item must include a `url`).

5. **Choose `desired_resolution` (optional)**\
   Set `desired_resolution` to `1080p`, `720p`, `480p`, or `360p` (default is `1080p`).

6. **Start the run**\
   Click **Run**. Watch logs as the actor processes each URL and pushes results to the dataset.

7. **Open the OUTPUT / Dataset results**\
   After completion, open the dataset tab to view the table fields (including **Original URL**, **Title**, **Channel**, **Duration**, **Thumbnail**, **Video Type**, and **Download Link**).

8. **Export your results**\
   Export the dataset to JSON/CSV from the dataset page for downstream workflows—perfect for a **TikTok downloader actor name** or analytics pipeline.

No coding required—get results from this **TikTok video downloader actor** in minutes 🚀

***

### Advanced features & SEO optimization

- 🔍 **Engineered for TikTok video downloader actor** workflows: great for repetitive batch processing where you need consistent output fields like `title`, `channel`, and `Download video`.
- 📦 **Data completeness in one record:** each video produces a single structured result object—ideal for feeds, spreadsheets, and data science ingestion.
- 🔁 **Resilient link handling:** uses candidate validation and fallbacks, so you’re less likely to end up with unusable downloads.
- 🧰 **Built for automation:** works well when you wire it into your own **TikTok video downloader service actor** workflows (API-style batch runs, scheduled downloads, and content catalogs).
- 📊 **Resolution-aware downloading:** guides the actor toward the resolution you choose via `desired_resolution` (1080p/720p/480p/360p).

***

### Best use cases

- 📈 **Marketing teams building content libraries:** Download multiple TikTok videos quickly and store links + metadata for campaign planning
- 🔎 **Research analysts tracking influencer output:** Create a repeatable dataset containing `title`, `channel`, `duration`, and `video_type`
- 🧑‍💻 **Developers automating video acquisition workflows:** Integrate dataset output into downstream systems using the exported JSON/CSV results
- 🎬 **Content curators organizing competitor inspiration:** Batch-process TikTok video URLs and keep a structured inventory of downloads
- 🗂️ **Data teams creating enrichment pipelines:** Combine downloaded video links with other datasets keyed by `original_url`
- ✉️ **Agencies scaling outreach prep:** Use the actor’s output as an asset step when building research-backed outreach materials
- 🧠 **SEO and creative strategists:** Gather video metadata fast to support analysis of trends, formats, and typical video length

***

### Technical specifications

**Supported Input Formats**

- ✅ `video_urls`: array of TikTok video URLs (each item includes a `url`)
- ✅ `desired_resolution`: `1080p`, `720p`, `480p`, `360p` (default `1080p`)

**Proxy Support**

- ✅ Built-in proxy support is available for reliable scraping and downloading in varying network conditions

**Retry Mechanism**

- ✅ Includes resilience through fallback behavior if a primary link isn’t usable

**Dataset Structure**

- ✅ One dataset record per input URL, pushed via `Actor.push_data(result)`

**Rate Limits & Performance**

- ✅ Performance varies by video availability and network conditions; the actor processes items sequentially in a loop

**Limitations**

- ❌ If no valid downloadable video link is available, `Download video` can be returned as `not available`
- ❌ Some videos may fail due to unavailable/invalid video sources

***

### FAQ

#### Can I download multiple TikTok videos in one run?

✅ Yes. Provide multiple entries in the `video_urls` array, and the actor will process each URL and push a result record to the dataset.

#### What resolutions does TikTok Video Downloader Actor support?

✅ You can set `desired_resolution` to `1080p`, `720p`, `480p`, or `360p`. If you don’t provide it, the default is `1080p`.

#### What does the `Download video` field contain?

✅ The `Download video` field is a direct download link when the actor successfully prepares a downloadable video. If it can’t produce one, it returns `not available` or uses a fallback link.

#### Where do the results go after the run?

✅ The actor saves one JSON result per TikTok URL to the default Apify dataset, which you can view in the OUTPUT tab and export as JSON/CSV.

#### Do I need to code to use this TikTok downloader actor?

✅ No coding is required. You can run it through Apify Console by filling in `video_urls` and optionally `desired_resolution`.

#### Why would a downloaded link play only audio or show no video?

❌ If you click a download link and see unexpected behavior (like only audio playing or no video showing), don’t worry. Copy the link and paste it into another browser or device. If it still doesn’t work, try opening it on a mobile device browser, which has been proven to work 100% of the time ✅

#### Does the actor include video metadata like title and channel?

✅ Yes. Each successful record includes `title`, `channel`, `duration`, `thumbnail`, and `video_type`.

***

### Support & feature requests

If you’re using **TikTok Video Downloader Actor** and want improvements, share feedback or feature requests—we actively shape the roadmap based on user needs.

- 💡 **Feature Requests:** Examples include better download-link handling, additional output fields, or custom export formats like stronger CSV readiness.
- 📧 **Contact:** For help, reach out at <dataforleads@gmail.com>.

Your feedback helps this TikTok video download actor get better over time 🚀

***

### Closing CTA / Final thoughts

*If you’re looking for an SEO-optimized way to automate TikTok video downloads with reliable dataset output, this TikTok Video Downloader Actor is built for exactly that.*\
*Run it with your `video_urls`, choose your `desired_resolution`, and export your results in minutes.* 🎬

# Actor input Schema

## `video_urls` (type: `array`):

List of TikTok video URLs to process.

## `desired_resolution` (type: `string`):

Select the desired resolution (e.g., 1080p, 720p, 480p, 360p).

## Actor input object example

```json
{
  "video_urls": [
    {
      "url": "https://www.tiktok.com/@therock/video/7473147398718573866"
    },
    {
      "url": "https://www.tiktok.com/@mrbeast/video/7476529277253635374"
    }
  ],
  "desired_resolution": "1080p"
}
```

# 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 = {
    "video_urls": [
        {
            "url": "https://www.tiktok.com/@therock/video/7473147398718573866"
        },
        {
            "url": "https://www.tiktok.com/@mrbeast/video/7476529277253635374"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("solid-scraper/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 = { "video_urls": [
        { "url": "https://www.tiktok.com/@therock/video/7473147398718573866" },
        { "url": "https://www.tiktok.com/@mrbeast/video/7476529277253635374" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("solid-scraper/tiktok-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 '{
  "video_urls": [
    {
      "url": "https://www.tiktok.com/@therock/video/7473147398718573866"
    },
    {
      "url": "https://www.tiktok.com/@mrbeast/video/7476529277253635374"
    }
  ]
}' |
apify call solid-scraper/tiktok-video-downloader --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/jREEpyRABu4xxxdqE/builds/BxUqa44jyT6t9iDnY/openapi.json
