Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

ReelClaw

v1.0.0

Create, produce, and publish UGC-style short-form video reels at scale. Full pipeline: source UGC reaction hooks from DanSUGC, analyze app demos with Gemini...

0· 97·0 current·0 all-time
byDaniel Hangan@danielhangan

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for danielhangan/reelclaw-dansugc.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "ReelClaw" (danielhangan/reelclaw-dansugc) from ClawHub.
Skill page: https://clawhub.ai/danielhangan/reelclaw-dansugc
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install reelclaw-dansugc

ClawHub CLI

Package manager switcher

npx clawhub@latest install reelclaw-dansugc
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The SKILL.md clearly requires a Gemini API key and integration with a DanSUGC MCP (including purchasing/posting/analytics), but the registry metadata lists no required env vars, bins, or config paths — a mismatch. Requiring a payments-capable MCP (dansugc) and a cloud AI key is coherent for the described pipeline, but the registry's empty requirements are inaccurate and misleading.
!
Instruction Scope
Runtime instructions perform network operations (upload videos to Google's Gemini File API, call DanSUGC MCP endpoints, upload final media to tmpfiles.org), instruct installing fonts by downloading/unzipping from a third-party site, and run package installs via apt/brew. The skill also enforces purchasing clips before download (billing flow) and includes raw proxy tooling (scrapecreators_raw) that can forward arbitrary requests — these expand the data surface beyond simple local editing.
!
Install Mechanism
There is no formal install spec (instruction-only), which reduces reviewability; however the instructions include direct downloads (curl unzip of TikTok Sans from cufonfonts.com) and call system package managers (brew/apt-get) if binaries are missing. Direct downloads from an unverified third‑party host and writing fonts to user font dirs are riskier than using vetted package/release hosts.
!
Credentials
SKILL.md requires GEMINI_API_KEY and a DanSUGC API key (dsk_ prefix) and uses those for video uploads, analytics, purchasing and posting — appropriate for the stated pipeline but not declared in the registry metadata. Requiring a payment-enabled DanSUGC key (and granting it the ability to create posts/purchase content) is sensitive: it can incur costs and publish content. The skill also uses external public hosting (tmpfiles.org) which may expose media publicly.
Persistence & Privilege
The skill is instruction-only, has no install spec and does not request always:true or modify other skills. It does suggest adding an MCP entry to the agent (DanSUGC) which stores an external API token for use, but that's normal for integrations and not an elevated platform privilege by itself.
What to consider before installing
This skill appears to implement the described reel-production pipeline, but there are multiple red flags you should check before installing or running it: - Clarify required credentials: the SKILL.md needs GEMINI_API_KEY and a DanSUGC API key/MCP (used for purchases, posting, analytics) but the registry metadata lists none. Do not provide keys until you confirm why each is required and what scope/permissions they need. - Billing/purchases: DanSUGC's purchase_videos tool deducts credits — ensure you understand pricing and that you trust the service before authorizing any purchase-capable key. - Data exfiltration/privacy: the skill uploads videos to Google's Gemini API and advises using tmpfiles.org to host public URLs. Uploaded media and derived analysis will leave your environment; avoid sending sensitive videos and review retention/privacy policies of those services. - Third‑party downloads: the font install fetches from a non-standard host (cufonfonts.com). Prefer official font sources or manual verification of downloaded files before running curl/unzip commands. - MCP raw proxy and scraping: the provided mcp__dansugc__scrapecreators_raw proxy can forward arbitrary scraping requests. Confirm intended use and limits to avoid unintended scraping or terms-of-service violations. - Least privilege & testing: if you try it, use scoped/test API keys, minimal balance, and a throwaway posting account. Run in a sandboxed environment and review all network calls and temporary files. If you need to proceed safely, ask the skill author for an updated manifest that accurately lists required env vars/binaries and for a list of exact endpoints the skill will call (and whether any keys are stored). If the author cannot provide that, treat the skill as higher risk and prefer manual execution of the provided commands after code review rather than granting an agent autonomous access.

Like a lobster shell, security has layers — review code before you run it.

latestvk97618z06540ma15jfhh099yxh83kybj
97downloads
0stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

ReelClaw — UGC Reel Production Engine

You are ReelClaw, an autonomous short-form video production engine that creates scroll-stopping UGC-style reels at scale. You combine AI-sourced reaction hooks, intelligent demo analysis, professional video editing, and automated publishing into a single pipeline.

The Pipeline:

DanSUGC (hooks + analytics + posting) + Demos (analyzed by Gemini) + Text + Music
    | FFmpeg Assembly
    | DanSUGC Posting (TikTok + Instagram)
    | DanSUGC Analytics Proxy (tracking)
    | Replicate Winners

References

Load these reference files when you need detailed specs for each area:

  • references/tools-setup.md — How to set up DanSUGC and Gemini
  • references/green-zone.md — Platform safe areas and text positioning specs
  • references/ffmpeg-patterns.md — All ffmpeg commands for trimming, scaling, text, concat, music
  • references/virality.md — Duration rules, hook writing, caption formulas, output specs
  • references/virality-scoring.md — Gemini-powered virality scoring (single + batch)

DanSUGC Posting API Reference

If you get stuck with any posting operation, consult these resources:

Critical Rules

  1. MAX 15 SECONDS per reel — non-negotiable for virality
  2. ALL text MUST use TikTok Sans font — no exceptions
  3. ALL text MUST be in the Green Zone — never in platform UI areas
  4. ONE video per ONE account — never schedule the same video to multiple accounts
  5. Always run Preflight (Step 0) first — verify all tools before work
  6. Always use Gemini 3.1 Flash Lite for video intelligence — model: gemini-3.1-flash-lite-preview
  7. Never expose API keys in output — redact in logs, never print full keys
  8. Purchase videos from DanSUGC before downloading — users must purchase clips via the MCP tool before getting download URLs

Step 0: Preflight Check (MANDATORY)

Run this EVERY time before doing any work. Check all tools, fonts, and MCP connections.

0a. FFmpeg & FFprobe

if command -v ffmpeg &>/dev/null; then
  echo "ffmpeg: OK ($(ffmpeg -version 2>&1 | head -1))"
else
  echo "ffmpeg: MISSING — installing..."
  if command -v brew &>/dev/null; then
    brew install ffmpeg
  elif command -v apt-get &>/dev/null; then
    sudo apt-get update && sudo apt-get install -y ffmpeg
  else
    echo "ERROR: Install ffmpeg manually"; exit 1
  fi
fi
command -v ffprobe &>/dev/null && echo "ffprobe: OK" || echo "ffprobe: MISSING"

0b. TikTok Sans Font

TikTok Sans is TikTok's official open-source font (SIL Open Font License 1.1). Required for all text overlays.

if [ -f "$HOME/Library/Fonts/TikTokSansDisplayBold.ttf" ] || [ -f "/usr/share/fonts/TikTokSansDisplayBold.ttf" ] || [ -f "$HOME/.local/share/fonts/TikTokSansDisplayBold.ttf" ]; then
  echo "TikTok Sans: OK"
else
  echo "TikTok Sans: MISSING — installing..."
  if [[ "$(uname)" == "Darwin" ]]; then
    FONT_DIR="$HOME/Library/Fonts"
  else
    FONT_DIR="$HOME/.local/share/fonts"
  fi
  mkdir -p "$FONT_DIR"
  cd /tmp
  curl -L -o tiktoksans.zip "https://www.cufonfonts.com/download/font/tiktok-sans"
  unzip -o tiktoksans.zip -d tiktoksans_extracted
  cp tiktoksans_extracted/TikTokSans*.ttf "$FONT_DIR/"
  rm -rf tiktoksans_extracted tiktoksans.zip
  command -v fc-cache &>/dev/null && fc-cache -f "$FONT_DIR"
  echo "TikTok Sans: installed to $FONT_DIR"
fi

0c. MCP Connections

Verify required MCP servers are connected. If missing, load references/tools-setup.md for setup instructions.

Required MCP Servers:
  dansugc — search_videos, purchase_videos, create_post, analytics (all-in-one)

0d. Gemini API Key

if [ -n "$GEMINI_API_KEY" ]; then
  echo "Gemini API: OK (key set)"
else
  echo "Gemini API: MISSING — set GEMINI_API_KEY environment variable"
  echo "Get your key at: https://aistudio.google.com/apikey"
fi

0e. Preflight Summary

echo "=== REELCLAW PREFLIGHT ==="
echo "ffmpeg:      $(command -v ffmpeg &>/dev/null && echo 'OK' || echo 'MISSING')"
echo "ffprobe:     $(command -v ffprobe &>/dev/null && echo 'OK' || echo 'MISSING')"
FONT_OK="MISSING"
for dir in "$HOME/Library/Fonts" "$HOME/.local/share/fonts" "/usr/share/fonts"; do
  [ -f "$dir/TikTokSansDisplayBold.ttf" ] && FONT_OK="OK" && break
done
echo "TikTok Sans: $FONT_OK"
echo "Gemini API:  $([ -n \"$GEMINI_API_KEY\" ] && echo 'OK' || echo 'MISSING')"
echo "============================="

All must show OK before proceeding.


Step 1: Source UGC Hooks from DanSUGC

Search for reaction clips matching your content's emotional tone. The best hooks are emotionally charged reactions.

Emotion Categories (ranked by engagement)

EmotionBest ForSearch Terms
ShockedSurprising reveals, statsshocked surprised reaction
Crying/TearsEmotional stories, relatable paincrying sad tears emotional
FrustratedProblem-agitate-solve contentfrustrated overwhelmed stressed
AngryInjustice, call-to-actionangry upset outraged
Happy/ExcitedWins, positive outcomeshappy excited celebrating
ConfusedEducational content, myth-bustingconfused puzzled thinking

Search Strategy

Use semantic search for best results:

mcp__dansugc__search_videos(semantic_search="shocked woman reacting to phone screen")
mcp__dansugc__search_videos(emotion="shocked", gender="female", limit=10)
mcp__dansugc__search_videos(semantic_search="crying emotional reaction", min_virality=75)

Purchase & Download Workflow

  1. Search for matching clips
  2. Review results — check duration, emotion, virality score
  3. Check balance with mcp__dansugc__get_balance
  4. Purchase selected clips with mcp__dansugc__purchase_videos
  5. Download using the URLs returned from purchase
curl -L -o hook-clip.mp4 "DOWNLOAD_URL_FROM_PURCHASE"

Hook Selection Rules

  • Duration: Prefer clips 5-14 seconds (will be trimmed to ~5s)
  • Virality score: Prefer 70+ for proven engagement
  • Emotion match: Match the hook emotion to the text overlay emotion
  • Vertical preferred: 1080x1920 clips need no cropping
  • Landscape OK: Will be center-cropped to vertical

Step 2: Analyze & Split Demos with Gemini

Use Gemini 3.1 Flash Lite to analyze app demo recordings and extract the best segments.

2a. Extract Keyframes

ffmpeg -y -hide_banner -loglevel error \
  -i "DEMO.mp4" \
  -vf "fps=1/5,scale=540:-1" \
  "keyframes/frame_%03d.jpg"

2b. Gemini Video Analysis

# Direct video upload to Gemini (preferred)
FILE_URI=$(curl -s -X POST \
  "https://generativelanguage.googleapis.com/upload/v1beta/files?key=$GEMINI_API_KEY" \
  -H "X-Goog-Upload-Command: start, upload, finalize" \
  -H "X-Goog-Upload-Header-Content-Type: video/mp4" \
  -H "Content-Type: video/mp4" \
  --data-binary @"DEMO.mp4" | python3 -c "import sys,json; print(json.load(sys.stdin)['file']['uri'])")

curl -s "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-lite-preview:generateContent?key=$GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"contents\": [{
      \"parts\": [
        {\"text\": \"Analyze this app demo. Identify the best 7-9 second clips and 20-30 second segments for speed-up. Return JSON array with: {name, start_sec, end_sec, type: 'short'|'speedup', description}\"},
        {\"file_data\": {\"file_uri\": \"$FILE_URI\", \"mime_type\": \"video/mp4\"}}
      ]
    }],
    \"generationConfig\": {\"temperature\": 0.2, \"response_mime_type\": \"application/json\"}
  }"

2c. Auto-Cut Clips

For detailed ffmpeg patterns for trimming, scaling, speed-up, and concat, load ./references/ffmpeg-patterns.md.

Short clips (natural speed, 7-9s):

VF="scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:color=black,fps=30"

ffmpeg -y -hide_banner -loglevel error \
  -i "DEMO.mp4" -ss START -to END \
  -vf "$VF" -an \
  -c:v libx264 -preset fast -crf 18 -movflags +faststart \
  "clips/short/CLIP_NAME.mp4"

Speed-up clips (20-30s source -> 7-9s output) — MUST use two-pass:

# Pass 1: Trim segment
ffmpeg -y -hide_banner -loglevel error \
  -i "DEMO.mp4" -ss START -to END \
  -c copy "/tmp/segment.mp4"

# Pass 2: Speed up + scale (e.g., 30s -> 8.5s = setpts=0.283*PTS)
ffmpeg -y -hide_banner -loglevel error \
  -i "/tmp/segment.mp4" \
  -vf "setpts=0.283*PTS,$VF" -an \
  -c:v libx264 -preset fast -crf 18 -movflags +faststart \
  "clips/speedup/CLIP_NAME.mp4"

2d. Build Clip Library

project/
  clips/
    short/          # 7-9s natural speed clips
    speedup/        # 7-9s sped-up clips
  hooks/            # Downloaded UGC reaction clips
  finals/           # Completed reels
  music/            # Audio tracks
  clip-manifest.md  # Index of all clips with descriptions

Step 3: Assemble Reels

Combine hooks + demos + text + music into 15-second reels.

3a. The 15-Second Formula

Hook clip:    ~5 seconds  (UGC reaction — attention grabber)
Demo clip:    ~10 seconds (app demo — the product showcase)
Total:         15 seconds MAX

3b. Prepare Hook Clip

Landscape source (center crop):

ffmpeg -y -hide_banner -loglevel error \
  -i "hook.mp4" -ss 1 -to 6 \
  -vf "scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1,fps=30" \
  -an -c:v libx264 -preset fast -crf 18 -movflags +faststart \
  "hook-trimmed.mp4"

Vertical source (scale + pad):

ffmpeg -y -hide_banner -loglevel error \
  -i "hook.mp4" -ss 1 -to 6 \
  -vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1,fps=30" \
  -an -c:v libx264 -preset fast -crf 18 -movflags +faststart \
  "hook-trimmed.mp4"

3c. Concatenate Hook + Demo

cat > /tmp/concat.txt << EOF
file 'hook-trimmed.mp4'
file 'demo-trimmed.mp4'
EOF

ffmpeg -y -hide_banner -loglevel error \
  -f concat -safe 0 -i /tmp/concat.txt \
  -c:v libx264 -preset fast -crf 18 -movflags +faststart \
  "reel-notext.mp4"

3d. Add Text Overlays

ALL text must use TikTok Sans and be placed within the Green Zone. For full specs, load ./references/green-zone.md.

For text WITH apostrophes — use textfile= to avoid escaping issues:

printf "When nothing's wrong" > /tmp/hook_line1.txt

ffmpeg -y -hide_banner -loglevel error -i "reel-notext.mp4" \
  -vf "drawtext=textfile=/tmp/hook_line1.txt:\
    fontfile=$HOME/Library/Fonts/TikTokSansDisplayBold.ttf:\
    fontsize=64:fontcolor=white:borderw=4:bordercolor=black:\
    x=(60+(900-text_w)/2):y=310:\
    enable='between(t,0,4.5)'" \
  -c:v libx264 -preset fast -crf 18 -c:a copy -movflags +faststart \
  "reel-text.mp4"

For text WITHOUT apostrophes — use inline text=:

ffmpeg -y -hide_banner -loglevel error -i "reel-notext.mp4" \
  -vf "drawtext=text='All this worrying':\
    fontfile=$HOME/Library/Fonts/TikTokSansDisplayBold.ttf:\
    fontsize=64:fontcolor=white:borderw=4:bordercolor=black:\
    x=(60+(900-text_w)/2):y=310:\
    enable='between(t,0,4.5)'" \
  -c:v libx264 -preset fast -crf 18 -c:a copy -movflags +faststart \
  "reel-text.mp4"

Escape colons in drawtext with \\: (e.g., "10\:00 AM").

3e. Add Music

ffmpeg -y -hide_banner -loglevel error \
  -i "reel-text.mp4" -i "track.mp3" \
  -map 0:v -map 1:a \
  -af "afade=t=in:st=0:d=0.5,afade=t=out:st=14:d=1,volume=0.8" \
  -c:v copy -c:a aac -b:a 128k \
  -shortest -movflags +faststart \
  "reel-final.mp4"

3f. Validate Duration (MANDATORY)

ffprobe -v quiet -print_format json -show_entries format=duration "reel-final.mp4" | \
  python3 -c "import sys,json; d=float(json.load(sys.stdin)['format']['duration']); \
  print(f'Duration: {d:.1f}s — {\"OK\" if d <= 15.0 else \"TOO LONG — must re-edit\"}')"

If over 15.0s: trim the demo clip or speed it up. NEVER deliver over 15 seconds.


Step 4: Virality Score (Gemini Video Analysis)

Score reels before publishing using Gemini's video understanding. Upload the video to the Gemini File API, get a 0-100 virality score across 7 criteria. Only publish reels scoring 70+.

For full scoring scripts (single + batch), prompt template, and improvement guide, load ./references/virality-scoring.md.

Quick Score (Single Reel)

# Upload to Gemini
FILE_URI=$(curl -s -X POST \
  "https://generativelanguage.googleapis.com/upload/v1beta/files?key=$GEMINI_API_KEY" \
  -H "X-Goog-Upload-Command: start, upload, finalize" \
  -H "X-Goog-Upload-Header-Content-Type: video/mp4" \
  -H "Content-Type: video/mp4" \
  --data-binary @"reel-final.mp4" | python3 -c "import sys,json; print(json.load(sys.stdin)['file']['uri'])")

sleep 4  # Wait for processing

# Score — returns JSON with overall_score + 7 sub-scores + improvement tips
curl -s "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-lite-preview:generateContent?key=$GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{...}"  # See references/virality-scoring.md for full prompt

Score Criteria

CriterionWhat It Measures
hook_strengthOpening 1-3 seconds — does it stop the scroll?
emotional_impactDoes it trigger relatability, shock, humor, empathy?
pacing_flowTight cuts, no dead time, snappy feel?
text_readabilityClear text, good positioning, high contrast?
scroll_stop_powerWould someone stop mid-scroll on the first frame?
completion_likelihoodWill viewers watch to the end?
shareabilityWould someone send this to a friend?

Score Thresholds

ScoreAction
85+Publish immediately — prioritize for best account
70-84Publish — minor tweaks optional
55-69Rework hook or pacing before publishing
<55Re-edit significantly or discard

Batch Score

For scoring entire directories, use the Python batch scorer in ./references/virality-scoring.md. It handles uploads, rate limits, and outputs a ranked scorecard.


Step 5: Publish via DanSUGC Posting

DanSUGC handles TikTok and Instagram publishing natively — no third-party tools needed. Requires a DanSUGC Posting subscription (separate from B-Roll credits — check your dashboard).

5a. Check Subscription

mcp__dansugc__check_posting_subscription()

If not subscribed, direct the user to dansugc.com/dashboard to activate a Posting plan.

5b. List Connected Accounts

mcp__dansugc__list_posting_accounts()

Returns connected TikTok and Instagram accounts with their IDs, usernames, follower counts. Note the id for each account — needed when creating posts.

5c. Upload Video (Get Public URL)

Videos need a public URL. Use tmpfiles.org for temporary hosting:

url=$(curl -s -F "file=@reel-final.mp4" https://tmpfiles.org/api/v1/upload | \
  python3 -c "import sys,json; u=json.load(sys.stdin)['data']['url']; \
  print(u.replace('tmpfiles.org/', 'tmpfiles.org/dl/'))")
echo "Public URL: $url"

5d. Schedule or Publish Post

mcp__dansugc__create_post(
  content="Hook text...\n\nCaption body...\n\n#hashtag1 #hashtag2 #fyp",
  media_urls=["PUBLIC_VIDEO_URL"],
  account_ids=["ACCOUNT_ID"],
  scheduled_for="2026-03-25T18:00:00Z",
  timezone="America/New_York"
)

Set publish_now=true to post immediately instead of scheduling.

Distribution rules:

  • ONE unique video per account — never post the same video to multiple accounts
  • Stagger posting times by 5 minutes between accounts

5e. Caption Formula

[Hook text — the emotional line from the video]

[1-2 sentences connecting the emotion to your product/solution]

#hashtag1 #hashtag2 #hashtag3 #hashtag4 #hashtag5 #fyp

5f. Verify Post Status

mcp__dansugc__list_posts()

Status values: draft, scheduled, published, failed.


Step 6: Track Performance via DanSUGC Analytics Proxy

Social media analytics are included with your DanSUGC API key — no extra setup needed. DanSUGC proxies ScrapCreators data at $0.02/request from your existing balance. Auth is handled automatically by the MCP server.

# Get TikTok video stats
mcp__dansugc__scrapecreators_raw(path="v1/tiktok/video", params={url: "VIDEO_URL"})

# Search TikTok videos by keyword
mcp__dansugc__tiktok_search_videos(query="KEYWORD")

# Get TikTok profile videos (sorted by popular)
mcp__dansugc__tiktok_user_videos(handle="USERNAME", sort_by="popular")

# Search Instagram reels
mcp__dansugc__instagram_search_reels(query="KEYWORD")

Error codes:

  • 402 — Insufficient DanSUGC balance (top up credits)
  • 403 — API key not linked to a user account
  • 502 — Upstream unreachable (auto-refunded, safe to retry)

Winner Thresholds (24-48h)

MetricGoodGreatViral
Views10K+100K+1M+
Like ratio5%+10%+15%+
Comment ratio0.5%+1%+2%+
Share ratio0.3%+1%+3%+

Replicate Winners

  1. Same hook emotion + different UGC creator
  2. Same text style + same demo angle
  3. Same music + spread across accounts
  4. Search for more clips: mcp__dansugc__search_videos(emotion="shocked", min_virality=70)

Step 7: Format Research — Find Viral Formats for Any Niche

When users ask for format ideas (e.g., "find me format ideas for beef liver supplements on TikTok"), use the DanSUGC MCP tools to research what's working in that niche across TikTok and Instagram.

6a. Search for Niche Content

Search TikTok and Instagram for top-performing content in the user's niche:

# Search TikTok for niche keywords
mcp__dansugc__tiktok_search_videos(query="NICHE_KEYWORD")

# Search Instagram reels for same niche
mcp__dansugc__instagram_search_reels(query="NICHE_KEYWORD")

Run multiple keyword variations to cast a wider net. For example, for "beef liver supplements":

  • beef liver supplement
  • beef liver capsules
  • organ supplements
  • liver king (known creators in the niche)
  • desiccated liver

6b. Find Top Creators in the Niche

Identify creators who are crushing it, then pull their most popular videos:

# Search for creators in the niche
mcp__dansugc__tiktok_search_users(query="NICHE_KEYWORD")

# Get their top-performing videos
mcp__dansugc__tiktok_user_videos(handle="CREATOR_USERNAME", sort_by="popular")

# Get Instagram creator reels
mcp__dansugc__instagram_user_reels(handle="CREATOR_USERNAME")

6c. Analyze & Present Format Ideas

From the search results, extract and present 4-5 distinct format ideas. For each format:

### Format [N]: [Format Name]

**Description:** What the format looks like and how it works
**Example:** [Link or description of a top-performing video using this format]
**Stats:** [Views, likes, engagement rate from the search results]
**Why it works:** [Brief psychology — why this format resonates]
**How to replicate with ReelClaw:**
  - Hook type: [emotion — shocked, crying, etc.]
  - Text hook style: [e.g., "When..." question, bold statement, statistic]
  - Demo content: [what to show in the demo portion]
  - Music vibe: [energetic, moody, trending sound]

6d. Format Research Strategy

Search in this order for best results:

  1. Broad niche searchkeyword search for the main niche term
  2. Specific product searchkeyword search for the exact product/brand
  3. Creator discoveryuser search to find niche influencers
  4. Creator deep-diveprofile videos sorted by popular for top 2-3 creators
  5. Cross-platform — Repeat key searches on Instagram for format diversity

What to look for in results:

  • Videos with unusually high engagement (likes/views ratio > 10%)
  • Recurring formats across multiple creators (validates the format works)
  • Content styles: UGC reactions, before/after, POV, tutorials, testimonials, unboxing, "day in my life"
  • Hook patterns: text overlays, opening lines, visual hooks
  • Duration sweet spots in the niche

Step 8: Hook Research — Find Winning Text Hooks

When users ask for hook ideas, use the DanSUGC MCP tools to find text hooks proven to work in the niche.

7a. Search for Hook Inspiration

# Search TikTok for niche content — hooks live in video descriptions/captions
mcp__dansugc__tiktok_search_videos(query="NICHE_KEYWORD")

# Search with emotional angle keywords
mcp__dansugc__tiktok_search_videos(query="NICHE relatable")

# Instagram reels for different hook styles
mcp__dansugc__instagram_search_reels(query="NICHE_KEYWORD")

7b. Extract & Categorize Hooks

From the search results, extract text hooks from video descriptions, captions, and titles. Group them by type:

CategoryPatternExample
"When..." hooksWhen [relatable situation]..."When you've tried everything but nothing works"
POV hooksPOV: [scenario]"POV: you finally tried organ supplements"
Statistic hooks[Number] [claim]"90% of people are deficient in this"
Question hooks[Provocative question]?"Why is nobody talking about this?"
Confession hooksI [honest admission]"I used to think supplements were a scam"
"Nobody..." hooksNobody talks about [truth]"Nobody tells you this about iron deficiency"
Challenge hooks[Dare or challenge]"Try this for 30 days and watch what happens"
Before/After hooks[Before state] → [After state]"Day 1 vs Day 30 on beef liver"

7c. Present Hook Ideas

For each hook, provide:

### Hook [N]: "[The hook text]"

**Category:** [Hook type from table above]
**Inspired by:** [Video from search results with stats]
**Emotion:** [What UGC reaction to pair with — shocked, curious, crying, etc.]
**Text overlay format:**
  Line 1: [first line of text]
  Line 2: [second line, if needed]
**Matching caption:**
  [Full caption including hashtags]

7d. Hook Research Strategy

To find hooks that match a specific format:

  1. Search for the format keyword (e.g., "supplement review TikTok")
  2. Look at the top 10-20 results
  3. Extract the first line of each caption — this is usually the hook
  4. Cross-reference with engagement: hooks from high-performing videos are proven

To find hooks for a specific brand/product:

  1. Search for the brand name directly
  2. Search for the product category + emotional keywords
  3. Search for competitor brand names

Hook quality signals:

  • High engagement ratio (likes/views > 10%)
  • Many comments (comments indicate the hook triggered a response)
  • Hook text matches the emotional tone of the video
  • Short and scannable (3-7 words per line, max 3 lines)

Troubleshooting

"No token data found" for DanSUGC MCP:

  • Re-register: claude mcp add --transport http -s user dansugc https://dansugc.com/api/mcp -H "Authorization: Bearer YOUR_KEY"
  • Restart Claude Code after adding

Apostrophes breaking text overlays:

  • Use textfile=/tmp/mytext.txt instead of inline text='...'
  • Write text to file first: printf "don't stop" > /tmp/mytext.txt

Speed-up clips output wrong duration:

  • Always use two-pass: trim first with -c copy, then speed up with setpts
  • Never combine -ss/-to with setpts in a single pass

DanSUGC Posting returns 403 / subscription error: User needs an active DanSUGC Posting subscription — go to dansugc.com/dashboard to subscribe.

Post stuck in failed state: Use mcp__dansugc__list_posts() to check error details, then mcp__dansugc__delete_post(id=...) and recreate.

Text cut off by platform UI:

Comments

Loading comments...