Inspiration

Misinformation spreads 6x faster than truth on social media. YouTube alone serves over 1 billion hours of video daily and there's no easy way to fact-check what you're watching. I asked myself: what if AI could watch a video and tell you exactly which claims are true, false, or unverified in seconds? That's how Veritas was born: an AI-powered bullshit detector for YouTube.

What it does

Paste any YouTube URL and Veritas will:

  1. Extract the transcript — using a multi-strategy pipeline (YouTube captions → custom HTML scraper → yt-dlp subtitles → Whisper audio transcription → metadata fallback)
  2. Identify factual claims — AI separates verifiable assertions from opinions using strict and relaxed extraction modes
  3. Fact-check each claim — cross-references claims against trusted web sources via Tavily search API, with domain trust scoring (deprioritizing Reddit/Quora, prioritizing Reuters/AP/BLS)
  4. Score the bullshit level — a 0–100 Truth Score based on verified vs. falsified claims
  5. Detect manipulation tactics — analyzes the rhetoric using a radar chart of 8 propaganda tactics (Appeal to Emotion, Cherry-Picking, Loaded Language, Strawman, etc.) The result is a comprehensive, visual report with an interactive claim timeline, expandable reasoning, source links, and a manipulation radar.

How I built it

  • Frontend: Next.js 16 + React 19 + Tailwind CSS v4 + Framer Motion for smooth animations
  • AI Pipeline: Vercel AI SDK with tiered model strategy — heavy models (Llama 70B) for claim extraction and manipulation analysis, light models (Llama 8B) for individual claim verification
  • Transcript Pipeline: 5-strategy fallback chain ensuring we can analyze almost any YouTube video, regardless of caption availability
  • Fact-checking: Tavily Search API with advanced search depth, domain trust ranking, and AI-synthesized answers
  • Resilience: Robust JSON repair for truncated LLM outputs, rate-limit cooldown tracking, exponential backoff, and automatic model fallback During development, we used AI coding assistants to accelerate the process: Gemini 3 for UI design, GPT-3 Codex xHigh for general development support, and Claude Opus 4.6 for final code review and quality assurance.

Challenges I faced

  • YouTube blocks scrapers aggressively — I had to build a 5-layer fallback system: library → custom HTML scraper → yt-dlp subtitles → Whisper audio transcription → metadata fallback
  • Groq free tier rate limits — I split API calls across two model pools (70B + 8B) to maximize throughput within token quotas, and added intelligent cooldown tracking
  • LLM output reliability — Groq sometimes returns truncated JSON due to token limits. I built a multi-strategy JSON repair system (balanced-brace extraction, bracket repair, regex salvaging) that recovers usable data from malformed responses
  • Claim quality — early versions extracted trivial claims ("he woke up at 6am"). I tuned prompts to prioritize hard, falsifiable facts: economic stats, legal assertions, scientific claims

What I learned

  • Building resilient AI pipelines means assuming everything will faill and having a chain of fallbacks ready
  • Rate limit management is as important as the core logic when using free-tier AI APIs
  • Prompt engineering is an iterative art: the difference between extracting 10 garbage claims vs. 10 meaningful ones is in the system prompt details

What's next for Veritas

  • Real-time browser extension that fact-checks while you watch
  • Multi-language support (currently optimized for English)
  • Historical claim tracking and creator credibility scores
  • Community-sourced verification layer## Inspiration

Built With

Share this project:

Updates