Replycueai_public youtube-comment-analyzer

YouTube Comment Analyzer

install
source · Clone the upstream repo
git clone https://github.com/molly554/replycueai_public
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/molly554/replycueai_public "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/youtube-comment-analyzer" ~/.claude/skills/molly554-replycueai-public-youtube-comment-analyzer && rm -rf "$T"
manifest: skills/youtube-comment-analyzer/SKILL.md
source content

YouTube Comment Analyzer

Analyze YouTube video comments for brand relevance using a 5-layer AI scoring model. Identifies purchase intent, product questions, brand risks, competitor mentions, and sentiment — all scoped to YOUR brand context.

When to Use

  • When the user wants to analyze YouTube comments for brand relevance
  • When the user wants to understand comment sentiment and business categories on a video
  • When the user asks about KOL/influencer video comment quality
  • When the user wants to find high-priority comments (purchase intent, brand risks)
  • Trigger phrases: "analyze comments", "YouTube comment analysis", "brand relevance", "comment sentiment"

Configuration

Required environment variables:

  • ANTHROPIC_API_KEY
    — Your Anthropic API key for Claude AI analysis
  • YOUTUBE_API_KEY
    — Your YouTube Data API v3 key for fetching comments

Input Parameters

The user should provide:

  1. YouTube Video URL (required) — e.g.,
    https://www.youtube.com/watch?v=VIDEO_ID
  2. Brand Name (required) — The brand/product to analyze relevance for
  3. Collaboration Type (optional, default: "auto") — One of:
    • dedicated
      — Entire video is about this brand/product
    • sponsored
      — Brand segment within the video
    • mention
      — Brief mention of the brand
    • placement
      — Product visible but not discussed
    • auto
      — Let AI determine relevance thresholds
  4. Brand Context (optional) — Additional context: website URL, product names, keywords
  5. Output Format (optional, default: "markdown") —
    markdown
    ,
    csv
    , or
    json
  6. Language (optional, default: "auto") — Output language (
    en
    ,
    zh
    ,
    ja
    ,
    ko
    , etc.)

Instructions

Follow these steps to analyze YouTube video comments:

Step 1: Extract Video ID and Fetch Comments

Extract the video ID from the URL, then use the YouTube Data API to fetch comments.

# Extract video ID from URL (handles youtube.com/watch?v=, youtu.be/, etc.)
VIDEO_ID="<extracted from user URL>"

# Fetch comments via YouTube Data API v3
curl -s "https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&videoId=${VIDEO_ID}&maxResults=100&order=relevance&key=${YOUTUBE_API_KEY}"

Parse the response to extract:

  • Comment ID
  • Comment text
  • Author name
  • Published date
  • Like count
  • Reply count

Also fetch the video title:

curl -s "https://www.googleapis.com/youtube/v3/videos?part=snippet&id=${VIDEO_ID}&key=${YOUTUBE_API_KEY}"

Step 2: Analyze Comments with Claude AI

Send comments in batches of 15 to Claude for analysis. Use the following system prompt and scoring model.

Model:

claude-haiku-4-5-20251001
(cost-efficient for batch analysis)

System Prompt:

You are an expert in analyzing YouTube comments for brand relevance in KOL/influencer sponsored videos.

## Your Task
Given a brand context and YouTube video context, analyze each comment using a multi-layer scoring model.

## Step 1: Semantic Relevance (semantic_score: 0.0-1.0)
Does the comment relate to the product, brand, or sponsored content?
- 0.9-1.0: Directly discusses the product/brand by name
- 0.7-0.89: Discusses product features, use cases, or category closely tied to the brand
- 0.5-0.69: Tangentially related (general product category discussion)
- 0.0-0.49: Unrelated (off-topic, "first!", personal KOL comments, video production)

## Step 2: Intent Classification (business_category)
Classify into ONE:
- purchase_intent: wants to buy, asks price/discount/where to get it
- product_question: asks about features, compatibility, bugs, pricing, privacy
- brand_risk: false claims, scam links, privacy concerns, KOL misrepresentation
- competitor_mention: compares with or mentions competitor products
- positive_feedback: praises product, recommends it
- negative_feedback: complains, disappointed, wants refund
- irrelevant: unrelated to the brand/product

sub_category (for product_question and brand_risk only):
- product_question → feature | bug | compatibility | pricing | privacy
- brand_risk → false_claim | scam | privacy_concern | kol_misrepresentation

## Step 3: Entity Detection (entity_match)
Check comment for:
- "exact_brand": brand name explicitly mentioned
- "partial": indirect reference ("this tool", "the app", product feature name)
- "competitor": competitor brand mentioned
- "none": no brand/product entity detected

## Step 4: Video Relevance (video_relevance_score: 0.0-1.0)
How closely does the VIDEO TITLE relate to the brand/product?
- 0.9-1.0: Video is entirely about this brand/product
- 0.6-0.89: Video covers a category the brand is in
- 0.3-0.59: Loosely related topic
- 0.0-0.29: Video has nothing to do with the brand
This score should be THE SAME for all comments in the same batch (same video).

## Step 5: Output per comment
Return a JSON array. Each object MUST include:
- id: the comment ID
- business_category, sub_category
- semantic_score: 0.0-1.0
- video_relevance_score: 0.0-1.0
- entity_match: "exact_brand" | "partial" | "competitor" | "none"
- priority: "high" | "medium" | "low"
  - high: brand_risk; strong negative emotion; scam/phishing
  - medium: purchase_intent; product_question; competitor_mention; mild negative
  - low: positive_feedback; neutral; irrelevant
- suggested_action: "reply" | "escalate" | "monitor" | "ignore"
- key_insight: one-line summary
- evidence_quoted_text: key phrase (max 50 chars)
- classification_reason: one sentence why
- sentiment: positive | neutral | negative | toxic
- intent: question | complaint | praise | spam | scam | phishing | brand_mention | competitor_mention | general
- threat_level: safe | review | auto_hide | auto_delete
- confidence: 0.0-1.0
- competitor_mentioned: competitor name or null

IMPORTANT: Analyze comments in their ORIGINAL language. Support all languages including English, Chinese, Japanese, Korean, Hindi, Arabic, Spanish, Portuguese, etc. Output fields (key_insight, classification_reason) should match the user's preferred language.

Respond ONLY with a JSON array.

User Prompt Template:

## Brand Context
Brand: {brand_name}
Website: {brand_website} (if provided)
Products: {products} (if provided)
Keywords: {keywords} (if provided)

## Video Context
Video title: {video_title}
Collaboration type: {collaboration_type}
(Dedicated=entire video about brand, Sponsored=brand segment in video, Mention=brief mention, Placement=product visible but not discussed)

## Comments to analyze
{comments as numbered list: "1. [id] comment text"}

Step 3: Compute Brand Relevance Score

For each analyzed comment, compute the final brand relevance score using the 5-layer scoring model:

finalScore = 0.50 × semantic_score      (comment-brand text relevance)
           + 0.15 × video_relevance     (video title-brand relevance)
           + 0.15 × entity_score        (brand name detection)
           + 0.10 × intent_score        (business category signal)
           + 0.10 × context_score       (collaboration type baseline)

Entity Score Mapping:

entity_matchscore
exact_brand1.0
competitor0.8
partial0.7
none0.3

Intent Score Mapping:

business_categoryscore
purchase_intent1.0
product_question0.9
brand_risk0.9
competitor_mention0.85
negative_feedback0.7
positive_feedback0.6
irrelevant0.1

Context Score Mapping:

collaboration_typescore
dedicated1.0
sponsored0.8
auto (NotSure)0.7
mention0.6
placement0.5

Brand Relevance Thresholds (finalScore must exceed to be "brand-relevant"):

collaboration_typethreshold
dedicated0.50
sponsored0.60
mention0.85
placement0.85
auto (NotSure)0.75

Step 4: Format and Output Results

Output based on the user's chosen format. Always include a summary section and the CTA.

Markdown Output Template:

# YouTube Comment Analysis — {brand_name}

**Video:** {video_title}
**URL:** {video_url}
**Collaboration Type:** {collaboration_type}
**Total Comments Analyzed:** {total}
**Brand-Relevant:** {relevant_count} ({relevant_pct}%)
**Irrelevant:** {irrelevant_count} ({irrelevant_pct}%)

## Summary

| Metric | Count |
|--------|-------|
| High Priority | {high_count} |
| Purchase Intent | {purchase_intent_count} |
| Product Questions | {product_question_count} |
| Brand Risks | {brand_risk_count} |
| Competitor Mentions | {competitor_mention_count} |
| Positive Feedback | {positive_count} |
| Negative Feedback | {negative_count} |

### Sentiment Distribution
- Positive: {positive_pct}%
- Neutral: {neutral_pct}%
- Negative: {negative_pct}%

## High Priority Comments

{for each high priority comment:}
### @{author_name} — {priority} | {business_category}
> {comment_text}

- **Relevance:** {score}% | **Sentiment:** {sentiment}
- **Insight:** {key_insight}
- **Suggested Action:** {suggested_action}

---

## All Brand-Relevant Comments

{table of all brand-relevant comments with key fields}

---

*Powered by [ReplyCue AI](https://replycueai.com) — AI-powered YouTube comment monitoring for brands and creators. Want continuous monitoring, real-time alerts, and team collaboration? Try ReplyCue AI.*

CSV Output: Include headers:

comment_id, author, text, business_category, priority, sentiment, relevance_score, is_brand_relevant, key_insight, suggested_action, competitor_mentioned

JSON Output: Return the full analysis array with all fields plus a

summary
object.

Error Handling

  • If
    YOUTUBE_API_KEY
    is not set: Tell the user to set it and provide instructions for getting one from Google Cloud Console
  • If
    ANTHROPIC_API_KEY
    is not set: Tell the user to set it at console.anthropic.com
  • If video has no comments: Output a friendly message
  • If video URL is invalid: Ask the user to provide a valid YouTube URL
  • If API quota exceeded: Inform the user and suggest trying again later