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:
- Extract the transcript — using a multi-strategy pipeline (YouTube captions → custom HTML scraper → yt-dlp subtitles → Whisper audio transcription → metadata fallback)
- Identify factual claims — AI separates verifiable assertions from opinions using strict and relaxed extraction modes
- 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)
- Score the bullshit level — a 0–100 Truth Score based on verified vs. falsified claims
- 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
- groq
- llama
- next.js
- node.js
- react
- tailwind
- tavily
- typescript
- whisper
Log in or sign up for Devpost to join the conversation.