# TikTok Content Analyzer (`nrdevop/tiktok-content-analyzer`) Actor

Turn any TikTok video into a structured creative breakdown:
transcript, key metrics, hook, structure, visual & copy strategy, and
reusable creative patterns. Paste one or more links — no manual
watching.

- **URL**: https://apify.com/nrdevop/tiktok-content-analyzer.md
- **Developed by:** [nrDevop](https://apify.com/nrdevop) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $300.00 / 1,000 video analyzeds

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?

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 Content Analyzer

Turn any TikTok video into a **structured creative breakdown**. Paste one or more links and, for each video, get the transcript, the key metrics, and a full **creative analysis** — hook, structure, pacing, visual & copy strategy, and reusable creative patterns — ready to drop into a spreadsheet, a content workflow, or your own tools.

No scraping setup, no manual watching. Just links in, structured insights out.

> **Video posts only.** Photo slideshows (`/photo/` links) are not supported yet — they're skipped with a clear status in the results.

### What you get (per video)

- **Metadata** — author, caption, hashtags, views, likes, shares, comments, duration.
- **Transcript** — automatic speech-to-text, with **automatic language detection**.
- **Creative analysis** — the core output:
  - **Hook** (what grabs attention and why)
  - **Structure & pacing** (stages with timestamps)
  - **Visual strategy** (camera, composition, editing, on-screen text)
  - **Copy strategy** (caption, CTA, on-screen copy)
  - **Audio strategy** (music, voice, sound design)
  - **Retention & engagement strategy**
  - **Reusable creative patterns** + an **overall creative score**
- **Optional extras** — a detailed **scene-by-scene breakdown**, and the **video / audio / frames** as direct download links.

### Who it's for

- **Creators** who want to understand *why* a video works and replicate the formula.
- **Marketers & agencies** studying viral or competitor content at scale.
- **Apps & researchers** that need clean, structured data instead of raw videos.

### Input

| Option | What it does |
|---|---|
| **TikTok video URLs** | One or more links. Analyzing several at once is **cheaper per video**. |
| **Audio language** | Auto-detect (recommended) or force a specific language. |
| **Creative analysis** | The main analysis (on by default). |
| **Scene-by-scene breakdown** | Detailed technical detail of every scene (advanced, optional). |
| **Attach video / audio / frames** | Include the media files with the results (optional). |

```json
{
  "videoUrls": [
    "https://www.tiktok.com/@user/video/1234567890123456789"
  ],
  "language": "auto",
  "sceneBreakdown": false,
  "includeVideo": true
}
```

### Output (example, trimmed)

One item per video in the dataset:

```json
{
  "id": "7676496256851627286",
  "url": "https://www.tiktok.com/@.../video/...",
  "status": "complete",
  "metadata": {
    "author": { "username": "..." },
    "hashtags": ["..."],
    "metrics": { "views": 488900, "likes": 34300, "shares": 7070, "comments": 152 }
  },
  "transcript": { "text": "..." },
  "content_analysis": {
    "topic": "personal finance",
    "target_audience": "young adults",
    "hook": { "text": "...", "mechanism": "on-screen text", "strength": 0.8 },
    "structure": [ { "stage": "introduction", "time_start": 0, "time_end": 5.6 } ],
    "visual_strategy": { "camera": "close-up", "editing": "simple" },
    "copy_strategy": { "cta": "...", "on_screen_text": "..." },
    "creative_patterns": [ { "pattern": "emotional intensity", "reusability": 0.9 } ],
    "overall_creative_score": 0.7
  },
  "video_url": "https://.../records/..._video"
}
```

When enabled, **video / audio / frames** are attached as direct download URLs in the same item.

### Tips

- **Batch your links.** Put several URLs in a single run — the cost per video drops noticeably.
- Keep **language on Auto-detect** unless a specific video gets misdetected.
- Turn on **Scene-by-scene breakdown** only when you need shot-by-shot detail — it adds a lot more data.

### Pricing

You pay **one flat price per video analyzed** — everything is included (creative analysis, transcript, metadata, the optional scene-by-scene breakdown, and any attached media). No add-ons, no surprises. See the **Pricing** tab for the current rate. Analyzing videos in batches lowers your cost per video.

# Actor input Schema

## `videoUrls` (type: `array`):

One or more TikTok video links. Analyzing several in a single run is cheaper per video: the GPU only wakes up once and stays warm for the whole batch.

## `language` (type: `string`):

Language used to transcribe the audio. Leave on Auto-detect unless you want to force a specific one.

## `generalAnalysis` (type: `boolean`):

The main analysis: hook, structure, pacing, visual / copy / audio strategy and reusable creative patterns.

## `sceneBreakdown` (type: `boolean`):

Adds the technical detail of every scene: shot type, camera, pose, action, on-screen text, etc. Produces a lot more data.

## `includeVideo` (type: `boolean`):

Save the downloaded video file to the key-value store.

## `includeAudio` (type: `boolean`):

Save the extracted audio track to the key-value store.

## `includeFrames` (type: `boolean`):

Save the frames extracted from the video (1 per second) as a ZIP file.

## Actor input object example

```json
{
  "videoUrls": [
    "https://www.tiktok.com/@user/video/1234567890123456789"
  ],
  "language": "auto",
  "generalAnalysis": true,
  "sceneBreakdown": false,
  "includeVideo": true,
  "includeAudio": false,
  "includeFrames": false
}
```

# Actor output Schema

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

One item per video: metadata, transcript, creative analysis, and (optionally) the scene-by-scene breakdown. Media files are linked from each item via video\_url / audio\_url / frames\_url.

## `mediaFiles` (type: `string`):

Downloaded video / audio / frames (when attached), stored by key in the key-value store.

# 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 = {
    "videoUrls": [
        "https://www.tiktok.com/@user/video/1234567890123456789"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("nrdevop/tiktok-content-analyzer").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 = { "videoUrls": ["https://www.tiktok.com/@user/video/1234567890123456789"] }

# Run the Actor and wait for it to finish
run = client.actor("nrdevop/tiktok-content-analyzer").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 '{
  "videoUrls": [
    "https://www.tiktok.com/@user/video/1234567890123456789"
  ]
}' |
apify call nrdevop/tiktok-content-analyzer --silent --output-dataset

```

## MCP server setup

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

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/R2dfToBowOgz95sdP/builds/aOH5BkEksgvj5v2Bf/openapi.json
