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 analysisYOUTUBE_API_KEY— Your YouTube Data API v3 key for fetching comments
Input Parameters
The user should provide:
- YouTube Video URL (required) — e.g.,
https://www.youtube.com/watch?v=VIDEO_ID - Brand Name (required) — The brand/product to analyze relevance for
- Collaboration Type (optional, default: "auto") — One of:
dedicated— Entire video is about this brand/productsponsored— Brand segment within the videomention— Brief mention of the brandplacement— Product visible but not discussedauto— Let AI determine relevance thresholds
- Brand Context (optional) — Additional context: website URL, product names, keywords
- Output Format (optional, default: "markdown") —
markdown,csv, orjson - 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_match | score |
|---|---|
| exact_brand | 1.0 |
| competitor | 0.8 |
| partial | 0.7 |
| none | 0.3 |
Intent Score Mapping:
| business_category | score |
|---|---|
| purchase_intent | 1.0 |
| product_question | 0.9 |
| brand_risk | 0.9 |
| competitor_mention | 0.85 |
| negative_feedback | 0.7 |
| positive_feedback | 0.6 |
| irrelevant | 0.1 |
Context Score Mapping:
| collaboration_type | score |
|---|---|
| dedicated | 1.0 |
| sponsored | 0.8 |
| auto (NotSure) | 0.7 |
| mention | 0.6 |
| placement | 0.5 |
Brand Relevance Thresholds (finalScore must exceed to be "brand-relevant"):
| collaboration_type | threshold |
|---|---|
| dedicated | 0.50 |
| sponsored | 0.60 |
| mention | 0.85 |
| placement | 0.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_KEYis not set: Tell the user to set it and provide instructions for getting one from Google Cloud Console - If
ANTHROPIC_API_KEYis 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
Source: molly554/replycueai_public — distributed by TomeVault.