All posts

YouTube comment analysis: a method and the tools

November 8, 2026

Reading 50 comments gives you a feeling. Analyzing 5,000 gives you evidence. This is a method you can run on any channel, your own or a competitor's, with free tools or an API.

Step 1: decide the question

Pick one: What do viewers ask for? What do they complain about? How do they feel about a product shown in the video? Did a format change land well? The question decides your sample.

Step 2: sample the right comments

  • Top comments (sorted by relevance) show what the audience agrees with.
  • Newest comments show what people say now, after the first wave.
  • For a channel, take the last 10 to 20 videos so one viral video does not dominate.
  • Include replies only if you are studying debates. They double the volume and skew sentiment.

The Data API's commentThreads.list supports both sort orders and 100 threads per page at 1 unit. Google yt-dlp can collect comments with --write-comments. source

Step 3: clean

  1. Drop exact duplicates and comments under three words, unless you are counting emoji reactions.
  2. Drop the channel owner's own comments, and pinned promos.
  3. Flag spam patterns: links, "check my channel", repeated text across videos.
  4. Keep the like count. A comment with 2,000 likes speaks for many people.

Step 4: sentiment

For a quick, free baseline, VADER is an MIT-licensed, rule-based sentiment tool "specifically attuned to sentiments expressed in social media". Its README classifies a compound score of 0.05 or more as positive, -0.05 or less as negative, and anything between as neutral. VADER

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
an = SentimentIntensityAnalyzer()

def label(text):
    c = an.polarity_scores(text)["compound"]
    return "pos" if c >= 0.05 else "neg" if c <= -0.05 else "neu"

Rule-based tools miss sarcasm and in-jokes. For nuance, have a language model label a sample of 200 comments, check 50 of them by hand, then run it on the rest.

Step 5: themes and questions

  • Questions: keep comments that contain "?" or start with how, what, why, where, can, does. These are your next video ideas or FAQ entries.
  • Themes: group comments by topic. A simple start is counting the top two-word phrases after removing stop words. Better is asking a model to assign each comment to one of 8 to 12 themes you define after reading a sample.
  • Products and names: count mentions of brands, tools and people. Spikes tell you what viewers noticed.

Step 6: weight and score

Weight each comment by its likes so popular opinions count more: weight = 1 + log10(1 + likes). Then report:

MetricFormula
Comment ratecomments / views
Weighted net sentiment(sum of pos weights minus sum of neg weights) / sum of all weights
Question sharequestion comments / all comments
Theme shareweighted comments in theme / all weighted comments

Compare these across videos, not as absolute numbers. A tutorial channel will always have a higher question share than a vlog.

Pitfalls

  • Language mix. Run language detection first and analyze each language on its own. English-only tools score other languages as neutral.
  • Emoji-only comments carry real sentiment. Map the common ones before you drop short comments.
  • Sorting bias. Top comments lean positive and funny. If you need complaints, also sample by newest.
  • Small samples. Below about 200 comments, one angry thread can swing the result. Report the count next to every number.

Step 7: write it up

One page: the question, the sample (videos, dates, comment counts), three findings with two or three quoted comments each, and one action. Quote comments without usernames.

Doing it with ScrapeIO

Pull the videos with the channel videos API, then the comments for each with the YouTube comments API and the comment replies API. If you work in Claude Code or Cursor, the hosted MCP server at /mcp lets the agent fetch comments and label them in one session; setup is on the agents page.

Sources

Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.

100 free credits, no card. Credits never expire.

Get API key