Changelog

YouTube Intelligence Goes Live

Every watch review on YouTube. Every brand mention. Every signal, now structured.

The Instagram data told us how brands present themselves. What we needed next was what the collector community actually says about them — not in captions, but on camera, unprompted, in a full review.

That's what this update delivers.

We've mapped YouTube's watch review landscape and connected it to the database. Every channel that covers watches is tracked, from the large established reviewers to the smaller voices that focus almost entirely on microbrands. We take all of them. A 200-subscriber channel doing nothing but sub-$500 independents matters. The data doesn't filter by audience size.

Every video gets transcribed and then processed by the enrichment pipeline. What comes back isn't a summary. The AI reads each review and extracts structured fields — the same fields, every time, for every brand mentioned. Here's what a processed segment looks like:

brand_id:              brand_xxxx_01
model_name:            Model A 39mm Field Watch
reviewer_sentiment:    positive
ai_sentiment_price:    very_positive
ai_sentiment_quality:  positive

yt_usp:                "Swiss movement at a price point that makes no sense"
yt_who_is_it_for:      "First serious watch buyer, daily wear, doesn't want to worry about it"
yt_trend_reason:       "Growing Reddit presence, three major reviewers in 60 days"
yt_pros:               ["movement quality", "dial legibility", "price-to-spec ratio"]
yt_cons:               ["crown placement", "no display caseback"]
yt_improvement_suggestions: ["add a seconds subdial option", "offer NATO strap version"]
yt_compared_to:        ["Brand B ref. 40", "Brand C entry model"]

ai_recommendation:     "buy"
ai_microbrand_relevant: true
brand_signals:         { craft_signature: 0.91, trust_signal: 0.88, origin_story: 0.74 }
brand_id:              brand_xxxx_01
model_name:            Model A 39mm Field Watch
reviewer_sentiment:    positive
ai_sentiment_price:    very_positive
ai_sentiment_quality:  positive

yt_usp:                "Swiss movement at a price point that makes no sense"
yt_who_is_it_for:      "First serious watch buyer, daily wear, doesn't want to worry about it"
yt_trend_reason:       "Growing Reddit presence, three major reviewers in 60 days"
yt_pros:               ["movement quality", "dial legibility", "price-to-spec ratio"]
yt_cons:               ["crown placement", "no display caseback"]
yt_improvement_suggestions: ["add a seconds subdial option", "offer NATO strap version"]
yt_compared_to:        ["Brand B ref. 40", "Brand C entry model"]

ai_recommendation:     "buy"
ai_microbrand_relevant: true
brand_signals:         { craft_signature: 0.91, trust_signal: 0.88, origin_story: 0.74 }
brand_id:              brand_xxxx_01
model_name:            Model A 39mm Field Watch
reviewer_sentiment:    positive
ai_sentiment_price:    very_positive
ai_sentiment_quality:  positive

yt_usp:                "Swiss movement at a price point that makes no sense"
yt_who_is_it_for:      "First serious watch buyer, daily wear, doesn't want to worry about it"
yt_trend_reason:       "Growing Reddit presence, three major reviewers in 60 days"
yt_pros:               ["movement quality", "dial legibility", "price-to-spec ratio"]
yt_cons:               ["crown placement", "no display caseback"]
yt_improvement_suggestions: ["add a seconds subdial option", "offer NATO strap version"]
yt_compared_to:        ["Brand B ref. 40", "Brand C entry model"]

ai_recommendation:     "buy"
ai_microbrand_relevant: true
brand_signals:         { craft_signature: 0.91, trust_signal: 0.88, origin_story: 0.74 }

Every field comes from the transcript. Nothing is assumed. The improvement suggestions are what the reviewer said out loud. The USP is the phrase they actually used. The comparison brands are the ones they named.

When you have this for hundreds of reviews across hundreds of brands, patterns become visible. Which brands consistently get flagged as good value. Which ones keep getting compared to the same competitor. Which ones reviewers recommend but always follow with the same caveat.

That's what the database now holds.

What's New

  • YouTube channel mapping — watch-relevant channels identified and tracked across all tiers, including microbrand-focused reviewers

  • Full transcript indexing — every review transcribed and stored, searchable by brand name, model, keyword

  • AI enrichment pipeline — each review processed into structured fields: reviewer_sentiment, ai_sentiment_price, ai_sentiment_quality, ai_recommendation, yt_usp, yt_pros, yt_cons, yt_who_is_it_for, yt_improvement_suggestions, yt_trend_reason, yt_compared_to

  • Brand mention tagging — every transcript segment mapped to a brand_id with timestamp start and end, so the exact moment of mention is tracked

  • Brand DNA signals live — seven-cluster JSONB scoring per segment: craft_signature, origin_story, founder_story, trust_signal, heritage_revival, collector_psychology, category_gap

  • ai_microbrand_relevant flag — every video tagged automatically for microbrand relevance

Other Updates

  • Physical spec extraction added: yt_case_size_mm, yt_movement, yt_dial_color, yt_crystal, yt_thickness_mm, yt_lug_to_lug_mm

  • yt_compared_to array tracks which competitor brands appear in the same review

  • comment_analysis JSONB field added to youtube_reviews for later use

  • Reviewer profiles stored with channel metadata and content focus

Fixes

  • Fixed brand name detection missing hyphenated names in transcripts

  • Resolved duplicate segment entries when a brand is mentioned multiple times in one video

  • Corrected sentiment scoring on short segments under 30 words

  • Fixed missing brand_id on segments where a brand alias was used instead of primary name

Changelog