# TikTok Viral Hook, Script & Outlier Video Scraper (AI Ready) (`church_of_loujess/tiktok-viral-hook-script-scraper`) Actor

Extract exact first-3-second spoken hooks, body scripts, closing CTAs, WPM pace, hook archetypes, and Outlier Virality Multipliers (views/followers) from TikTok keywords, hashtags, or URLs in 256MB RAM. Zero Whisper GPU or proxy costs.

- **URL**: https://apify.com/church_of_loujess/tiktok-viral-hook-script-scraper.md
- **Developed by:** [H H](https://apify.com/church_of_loujess) (community)
- **Categories:** Social media, AI, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 analyzed tiktok hook, script & outlier breakdowns

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Viral Hook, Script & Outlier Video Scraper (AI & UGC Ready)

Dissect viral TikTok videos by keyword, hashtag, or direct URL into exact first-3-second spoken hooks, body scripts, closing CTAs, WPM speaking pace, hook archetypes, and Outlier Virality Multipliers (`views / followers`) — in 256MB RAM with zero Whisper GPU or proxy costs.

***

### High-ROI B2B, Agency & AI Workflows

- **Viral Outlier Script Cloning for UGC & Paid Social:** Filter for `minOutlierMultiplier` (e.g., videos getting `5x–50x` more views than the creator's follower count) and feed their exact opening 3s hook + body structure into Claude/GPT to write winning ad variations.
- **Short-Form Agency & Faceless Channel Research:** Compare `hookArchetype` (`question_hook`, `contrarian_stop`, `number_listicle`, `storytime_pov`, `how_to_tutorial`, `bold_claim`) and speaking pace (`wordsPerMinute`) across top-performing videos in any niche.
- **Zero-GPU Timestamped Transcripts:** Parses native `WebVTT` millisecond cues (`00:00.00 --> 00:03.50`) directly — 20x faster and cheaper than downloading MP4s and running Whisper.
- **CTA & Funnel Spying:** Automatically tags `ctaType` (`comment_trigger`, `link_in_bio`, `shop_offer`, `follow_for_more`, `save_or_share`).

### Architecture & Cost Advantage (`256MB` Zero-Proxy Engine)

- **Zero Residential Proxy Markup:** Engineered with lightweight TLS/session requests so you do not need expensive residential proxy add-ons just to test or scale runs.
- **Ultra-Low `256MB` Compute Footprint:** Runs cleanly inside a `256MB` container (`16x` less platform memory overhead than `4GB` headless-browser scrapers) with incremental dataset streaming and graceful timeout protection.
- **Pay-Per-Event Transparency:** You only pay a tiny startup fee plus each structured dataset result delivered — with automatic volume discounts up to **60%–70% off** on Bronze, Silver, Gold, Platinum, and Diamond Apify plans.

***

### Input Parameters

| Parameter | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `keywords` | `array` | `["saas founder", "marketing tips"]` | Keywords or hashtags to scan for viral TikTok hooks and outlier videos. |
| `videoUrls` | `array` | `[]` | Optional specific TikTok video URLs (https://www.tiktok.com/@user/video/123...) to dissect into hook, body, and CTA. |
| `maxItems` | `integer` | `15` | Maximum number of analyzed TikTok hook & script breakdowns to output. |
| `hookWindowSeconds` | `number` | `3.5` | Timestamp cutoff in seconds (e.g., 3.5s) used to isolate the opening spoken hook from WebVTT captions. |
| `minOutlierMultiplier` | `number` | `0` | Filter for outlier videos outperforming the creator's follower count (e.g. 2.0 = at least 2x more views than followers). Set 0 for all. |
| `onlyWithSpokenTranscript` | `boolean` | `false` | If enabled, skips silent/music-only videos that do not have spoken WebVTT captions. |
| `location` | `string` | `"US"` | ISO 2-letter country code for search localization (e.g. US, GB, CA, AU). |

***

### Sample Output Dataset Item

```json
{
  "videoId": "7674945862774099233",
  "keyword": "saas founder",
  "videoUrl": "https://www.tiktok.com/@thepentesterfr/video/7674945862774099233",
  "creatorUsername": "thepentesterfr",
  "creatorFollowers": 5501,
  "views": 54900,
  "likes": 1746,
  "bookmarks": 913,
  "engagementRatePct": 5.57,
  "outlierMultiplier": 9.98,
  "isOutlier": true,
  "hookSource": "spoken_webvtt_asr",
  "hookArchetype": "contrarian_stop",
  "openingHookText": "Stop launching your SaaS before checking these three security headers.",
  "bodyScriptText": "Yesterday I audited five indie apps on Product Hunt and four leaked user tokens...",
  "closingCtaText": "Comment AUDIT and I will send you the free checklist.",
  "ctaType": "comment_trigger",
  "wordsPerMinute": 168
}
```

***

### Use as an AI Agent Tool (Claude Desktop, Cursor, Windsurf & MCP)

Every Actor in our suite works out-of-the-box with the **Apify Model Context Protocol (MCP) Server** so Claude Desktop, Cursor, Windsurf, or custom OpenAI/LangGraph agents can invoke `church_of_loujess/tiktok-viral-hook-script-scraper` directly during a conversation:

```json
{
  "mcpServers": {
    "apify-b2b-intelligence": {
      "url": "https://mcp.apify.com/?actors=church_of_loujess/tiktok-viral-hook-script-scraper",
      "headers": {
        "Authorization": "Bearer <YOUR_APIFY_API_TOKEN>"
      }
    }
  }
}
```

### API Quickstart (Python, Node.js & cURL)

#### Python (`apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run = client.actor("church_of_loujess/tiktok-viral-hook-script-scraper").call(run_input={
  "keywords": [
    "saas founder",
    "marketing tips"
  ],
  "videoUrls": [],
  "maxItems": 15,
  "hookWindowSeconds": 3.5,
  "minOutlierMultiplier": 0,
  "onlyWithSpokenTranscript": false
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### Node.js / TypeScript (`apify-client`)

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });
const run = await client.actor('church_of_loujess/tiktok-viral-hook-script-scraper').call({
  "keywords": [
    "saas founder",
    "marketing tips"
  ],
  "videoUrls": [],
  "maxItems": 15,
  "hookWindowSeconds": 3.5,
  "minOutlierMultiplier": 0,
  "onlyWithSpokenTranscript": false
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### n8n, Make.com & Clay Enrichment Setup

1. **Clay:** Add an *Apify — Run Actor* enrichment column -> select `church_of_loujess/tiktok-viral-hook-script-scraper` -> map your row's keyword, handle, or URL -> map returned emails/metrics into downstream cold-email columns (Instantly, Smartlead, Lemlist).
2. **n8n / Make.com:** Trigger on a schedule (daily/weekly) -> call `https://api.apify.com/v2/acts/church_of_loujess~tiktok-viral-hook-script-scraper/run-sync-get-dataset-items?token=<TOKEN>` -> route verified leads directly to HubSpot, Slack, Google Sheets, or Airtable.

### Frequently Asked Questions (FAQ)

#### Do I need to configure proxies or cookies?

No. `church_of_loujess/tiktok-viral-hook-script-scraper` works out-of-the-box with **zero cookies, zero login credentials, and zero residential proxies required**.

#### Can I export results to CSV, Excel, JSON, or Parquet?

Yes. Every run writes clean, flattened fields plus rich nested metadata to your default Apify Dataset, supporting one-click export to **CSV, XLSX, JSON, JSONL, XML, or RSS** as well as direct webhook delivery.

#### What happens on large batch runs near the timeout limit?

All Actors in our portfolio stream results incrementally (`pushData`) and monitor `APIFY_TIMEOUT_AT` so completed leads are preserved cleanly without losing partial progress.

***

### Explore Our B2B Lead Generation & Social Intelligence Suite

Chain this Actor with our other **zero-proxy, 256MB-optimized Apify Actors** inside **n8n, Make.com, Clay, LangChain, or Claude/Cursor MCP**:

| Actor | Best For | Store Link |
| :--- | :--- | :--- |
| **TikTok Search Scraper (Fast)** | Keywords, hashtags, spoken transcripts & creator discovery | [Open in Apify Store](https://apify.com/church_of_loujess/tiktok-search-scraper) |
| **TikTok Profile & Bio Email Scraper** | Bulk `@username` stats, bio emails, posts & ASR subtitles | [Open in Apify Store](https://apify.com/church_of_loujess/tiktok-profile-scraper) |
| **TikTok Viral Hook & Outlier Cloner** | Exact first-3s spoken hooks, WPM pace & outlier ratios | [Open in Apify Store](https://apify.com/church_of_loujess/tiktok-viral-hook-script-scraper) |
| **Linktree & Bio-Link B2B Email Finder** | Creator, coach & agency emails, Calendly links & storefronts | [Open in Apify Store](https://apify.com/church_of_loujess/linktree-bio-email-leads-scraper) |
| **Shopify App Reviews & Churn Leads** | 1-2 star competitor churn reviews -> resolved store emails | [Open in Apify Store](https://apify.com/church_of_loujess/shopify-app-reviews-leads-scraper) |
| **Substack Newsletter & Sponsor Finder** | Niche newsletter authors, subscriber scale & sponsor emails | [Open in Apify Store](https://apify.com/church_of_loujess/substack-newsletter-leads-scraper) |
| **Show HN & Product Hunt Founder Leads** | Newly launched tech startups, domains & founder emails | [Open in Apify Store](https://apify.com/church_of_loujess/hackernews-producthunt-leads-scraper) |
| **GitHub Verified Developer & CTO Leads** | Stargazers, contributors & commit-verified B2B emails | [Open in Apify Store](https://apify.com/church_of_loujess/github-email-leads-scraper) |
| **Reddit Fast Buyer-Intent Scraper** | Subreddits, buyer-intent search & nested comment trees | [Open in Apify Store](https://apify.com/church_of_loujess/reddit-scraper-fast) |
| **YouTube Channel Sponsorship Leads** | Creator business emails, social handles & external links | [Open in Apify Store](https://apify.com/church_of_loujess/youtube-channel-email-leads-scraper) |
| **Telegram Public Channel Scraper** | Crypto, OSINT & community feeds + extracted links/emails | [Open in Apify Store](https://apify.com/church_of_loujess/telegram-scraper) |
| **Website Contact Email & Phone Crawler** | Bulk domain contact page email, phone & social extraction | [Open in Apify Store](https://apify.com/church_of_loujess/website-email-phone-finder) |

# Actor input Schema

## `keywords` (type: `array`):

Keywords or hashtags to scan for viral TikTok hooks and outlier videos.

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

Optional specific TikTok video URLs (https://www.tiktok.com/@user/video/123...) to dissect into hook, body, and CTA.

## `maxItems` (type: `integer`):

Maximum number of analyzed TikTok hook & script breakdowns to output.

## `hookWindowSeconds` (type: `number`):

Timestamp cutoff in seconds (e.g., 3.5s) used to isolate the opening spoken hook from WebVTT captions.

## `minOutlierMultiplier` (type: `number`):

Filter for outlier videos outperforming the creator's follower count (e.g. 2.0 = at least 2x more views than followers). Set 0 for all.

## `onlyWithSpokenTranscript` (type: `boolean`):

If enabled, skips silent/music-only videos that do not have spoken WebVTT captions.

## `location` (type: `string`):

ISO 2-letter country code for search localization (e.g. US, GB, CA, AU).

## Actor input object example

```json
{
  "keywords": [
    "saas founder",
    "marketing tips"
  ],
  "videoUrls": [],
  "maxItems": 15,
  "hookWindowSeconds": 3.5,
  "minOutlierMultiplier": 0,
  "onlyWithSpokenTranscript": false,
  "location": "US"
}
```

# Actor output Schema

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

No description

# 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 = {
    "keywords": [
        "saas founder",
        "marketing tips"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("church_of_loujess/tiktok-viral-hook-script-scraper").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 = { "keywords": [
        "saas founder",
        "marketing tips",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("church_of_loujess/tiktok-viral-hook-script-scraper").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 '{
  "keywords": [
    "saas founder",
    "marketing tips"
  ]
}' |
apify call church_of_loujess/tiktok-viral-hook-script-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,church_of_loujess/tiktok-viral-hook-script-scraper"
        }
    }
}
```

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/kUYJU3QzlKHRGfHym/builds/QGlViLJt3BvOdjcCB/openapi.json
