Inspiration

The modern news cycle is relentless. Every day, hundreds of video broadcasts are published — each packed with figures, claims, events, and bias. Yet consuming them requires the same manual, slow, human effort. We wanted to flip that: a single YouTube link that autonomously produces a structured intelligence brief in under 30 seconds.

What it does

NewsForge converts a raw news video URL into a verified intelligence feed — fully autonomously.

Paste any YouTube news broadcast URL and click Analyze Broadcast. The pipeline springs to life:

  1. Video Understanding — Reka Vision extracts a full transcript and answers six parallel analytical queries: events, sentiment, locations, key claims, notable quotes, and topic tags.

  2. NLP Structuring — Fastino GLiNER 2 runs four concurrent extraction tasks: Named Entity Recognition (persons, organizations, locations, dates), sentiment classification, media bias classification, and structured event extraction with timestamps, categories, and severity scores.

  3. Claim Verification — Yutori Research dispatches up to 5 parallel deep-web research tasks, one per extracted claim, using 100+ MCP tools to return verdicts (verified, disputed, unclear) with cited sources.

The result is an 8-metric intelligence dashboard with credibility scoring, alert level, entity cloud, sentiment timeline, topic distribution, bias indicator, broadcast mood, and story count — all rendered live via Server-Sent Events.

How we built it

Frontend: Next.js 16 (React 19.2) + TypeScript + Tailwind CSS v4 + Zustand. A custom useSSEStream hook reads the raw SSE byte stream directly from FastAPI, bypassing Next.js proxy buffering for true real-time delivery.

Backend: FastAPI + Python 3 with httpx for async HTTP and sse-starlette for streaming. The orchestrator runs maximum parallelism via asyncio.gather:

Stage 1 — Reka upload + indexing       (sequential, ~10s)
Stage 2 — 6× Reka QA prompts           (fully concurrent)
Stage 3 — 4× Fastino + 5× Yutori      (concurrent, start after Stage 2)

All 15 AI API calls are in-flight simultaneously wherever the dependency graph allows.

Challenges we ran into

SSE buffering. Next.js route handlers buffer responses, killing real-time streaming. Fixed by bypassing the Next.js API layer entirely — the frontend calls http://localhost:8000 directly.

API shape discovery. Each sponsor API had undocumented edge cases: Reka's chat_response key, Fastino's singular result.category, Yutori's 202 status on task creation.

Parallelism with partial failures. Used asyncio.gather(..., return_exceptions=True) so the dashboard always renders whatever succeeded.

Claim extraction from free text. Built a robust text splitter that handles numbered lists, dash-prefixed bullets, and filters fragments.

Accomplishments that we're proud of

  • True end-to-end autonomy — one URL click triggers 15 parallel AI API calls with zero manual steps
  • Sub-30s turnaround for a full intelligence brief on real news broadcasts
  • Live streaming terminal UI — users can watch each pipeline stage complete in real-time
  • Credibility scoring grounded in actual claim verification, not heuristics
  • Demo mode — full animated simulation without API keys

What we learned

  • Autonomous agents shine on well-defined extraction tasks — the Reka → Fastino → Yutori assembly line creates clean agent-to-agent handoffs
  • SSE is underrated — much better UX than polling for long-running AI pipelines
  • Parallelism multiplies value — sequential execution of 15 API calls would make the app unusable
  • API contract assumptions are expensive — always test status codes, response shapes, and auth formats

What's next for News Forge

  • Live broadcast monitoring — ingest RSS/YouTube feeds and emit alerts when credibility drops
  • Cross-source corroboration — compare claim verdicts across multiple broadcasts
  • Temporal sentiment tracking — plot $\text{sentiment}(t)$ across full broadcast timelines
  • Export as structured JSON/RSS — pipe intelligence feeds directly into CMS systems
  • Multi-language support — leverage Reka's multilingual capabilities for Arabic, Spanish, Mandarin

Built With

Share this project:

Updates