01
Production · Live on verisightai.ai
- Turn video into
- verified
- , publish-safe content.
- VeriSight AI is not a transcription tool. Transcription is just the input. The product is trust
- — source-backed claims, confidence-aware outputs, and contradiction warnings.
- Python · FastAPI
- Gemini 2.5 Pro/Flash
- React 19 · Tailwind
- MongoDB · GridFS
- Stripe Payments
- Whisper STT
- YouTube · Vimeo · Loom
- 27 Iterations · 88+ Tests
- See It Live
- Explore the Stack
02
Product Identity
- Not another summariser.
- A trust layer
- for AI content.
- Every other tool in this space stops at the transcript. VeriSight starts there and goes further — verifying claims, flagging contradictions, and ensuring every published output is source-backed.
- Most tools sell
- VeriSight sells
- Transcription / subtitles
- Verification-first content intelligence
- Note-taking
- Source-backed claims
- Generic AI summaries
- Confidence-aware outputs
- AI writers
- Contradiction warnings & publish-safety
03
Pipeline
- End-to-end in 8 stages.
- From URL submission to publish-ready content with trust signals — fully automated, never fabricated.
- 01 / INPUT
- Source Validation
- Accepts YouTube, Vimeo, Loom URLs or direct media uploads. Rights confirmation, plan gates, quota checks run before anything else.
- 02 / ACQUIRE
- Transcript Orchestrator
- Prioritised strategy cascade: captions → Whisper audio STT → audio cleanup. Multi-adapter fallback with rotating egress proxies. Never fabricates.
- 03 / DERIVE
- Shared Derived Representation
- Single Gemini Flash call produces summary, insights, notable quotes, and claim candidates — building a reusable representation for all downstream outputs.
- 04 / VERIFY
- Fact-Check Engine
- Each claim verified against live web search (DuckDuckGo + Wikipedia). Confidence scores, verification status, and contradiction flags assigned per claim.
- 05 / TRUST
- Trust Signal Surfacing
- Badges, average confidence score, contradiction warnings. Advisory popup triggered when average confidence falls below 50%.
- 06 / OUTPUT
- Multi-Format Delivery
- 5 social platforms × 3 variants, newsroom article, research brief. Lazy generation to minimise cost. Polish pass via Gemini Pro with 6 editorial styles.
- 07 / CACHE
- Global Result Cache
- 30-day global dedupe: any previously-analyzed video is instantly cloned for the next user, saving AI cost and 3–10 minutes of wait time.
- 08 / EXPORT
- Gated Exports
- TXT, PDF, DOCX exports honour plan tier and watermarking rules. Per-job premium unlock ($1.50) opens all export formats for a single analysis.
04
Verification Contract
- Hard-coded confidence rules.
- No hallucination, no guessing.
- Server-side rules are non-negotiable. The LLM cannot override them. Confidence values are clamped and enforced post-generation — the policy is a hard contract, not a prompt suggestion.
- ✓ verified
- 1.0
- Exact confidence — green badge. Verified against live sources.
- ◑ partially_verified
- 0.10–0.90
- Clamped range — amber badge. Partially supported by evidence.
- ? unclear
- ≤ 0.20
- Capped — red badge. No clear supporting evidence found.
- ✗ contradicted
- 0.0
- Exact zero — rose badge. Active contradicting evidence present.
- ◷ needs_review
- ≤ 0.10
- Capped — slate badge. Requires human editorial judgement.
05
Interactive Preview
- See the verification engine.
- Paste a video URL and watch VeriSight classify and confidence-score extracted claims in real time.
- verisightai.ai/analyze
- Analyze for Trust Signals
- CLAIM VERIFICATION RESULTS · 3 claims extracted
- ✓ VERIFIED
- "Global AI investment exceeded $300 billion in 2024, with compute infrastructure accounting for the majority of spend."
- confidence: 1.00 · source: Reuters, Bloomberg · 2 corroborating references
- ◑ PARTIAL
- "Smaller open-source models now match GPT-4 on most enterprise benchmarks."
- confidence: 0.61 · source: Hugging Face leaderboard · benchmark-dependent
- ✗ CONTRADICTED
- "No major AI lab has faced regulatory fines to date."
- confidence: 0.00 · contradicted by: EU AI Act enforcement record, 2025
- ⚠ TRUST ADVISORY · avg confidence 54% · 1 contradicted claim detected · review before publishing
06
Engineering
- Production-grade from day one.
- Every architectural decision is documented, tested, and iterable. 27 shipped iterations with zero breaking regressions.
- Backend
- FastAPI + Python
- FastAPI 0.110
- Pydantic v2
- asyncio
- Motor (async Mongo)
- Uvicorn
- BackgroundTasks
- AI / LLM
- Gemini 2.5 Dual-Tier
- gemini-2.5-flash
- gemini-2.5-pro
- Whisper STT
- google-genai SDK
- liteLLM
- token budgeting
- Search & Verification
- Live Fact-Check Engine
- DuckDuckGo Search
- Wikipedia API
- yt-dlp
- BeautifulSoup4
- rotating egress
- sha256 claim cache
- Database & Storage
- MongoDB + GridFS
- MongoDB Atlas
- GridFS attachments
- compound indexes
- 30-day result cache
- analytics_events
- Auth & Payments
- JWT + Stripe
- PyJWT
- bcrypt
- magic-link email
- Stripe Checkout
- webhook verification
- idempotent fulfil
- Frontend
- React 19 + shadcn/ui
- React 19
- React Router 7
- Tailwind CSS 3
- Radix UI primitives
- Recharts
- CRACO + Webpack
- Exports & Docs
- Multi-Format Output
- fpdf2 (PDF)
- python-docx
- ReportLab
- watermark engine
- unicode e2e tested
- Ops & Monitoring
- Production Hardened
- Sentry SDK
- Hostinger SMTP
- /health/deep endpoint
- CORS lockdown
- DMCA compliance
- rotate_secrets.py
- backend/services/transcript/orchestrator.py
- # Transcript acquisition — prioritised strategy cascade, never fabricates
- class
- TranscriptOrchestrator
- : def
- __init__
- (self): self
- .adapters = [ PublicCaptionAdapter(), # native captions first (free, fast)
- SessionBackedAdapter(), # browser-context extraction
- RotatingEgressAdapter(), # rotating IPs for geo-blocked sources
- AudioSTTAdapter(engine= "whisper"
- ), # Whisper fallback for silent caption tracks
- SecondarySTTAdapter(), # secondary provider for long-form content
- AlternateExtractorAdapter(), # yt-dlp last resort
- ] async def
- acquire
- (self, source: Source) -> TranscriptResult: for
- adapter in
- self
- .adapters: if not
- adapter.can_handle(source): continue
- result = await
- adapter.extract(source) if
- result.quality_grade >= QualityGrade.ACCEPTABLE: return
- result.with_provenance(adapter.label) raise
- TranscriptUnavailableError( "All adapters exhausted — not fabricating"
- )
07
Quality Assurance
- 88+ tests. Zero regressions across 27 iterations.
- Every feature ships with a full pytest suite. Adjacent tests run on every iteration to catch regressions before they reach production.
- PASSED
- test_premium_unlock.py
- — 9 cases: article, brief, polish, pdf, docx on premium_unlocked; 4 free-tier gate sanity checks
- test_iter6_verisight.py
- — 17 cases: trust advisory, contradiction warnings, confidence rule enforcement
- test_orchestrator_api.py
- — 10 cases: adapter cascade, quality grading, provenance tracking, fabrication guard
- test_compliance_dmca.py
- — URL suppression, takedown flow, re-submission blocking
- test_stripe_webhook_security.py
- — signature verification, bad payload, missing header, idempotency
- test_video_cache_dedupe.py
- — 4 cases: cache hit, fresh-URL miss, TTL-expired, incomplete prior
- test_polish_article.py
- — 5 cases: free block, no article 409, bad style 400, happy path, rate limit 429
- test_admin_metrics.py
- — 25 cases: all 11 dashboard sections, date ranges, KPI shapes, route guard
- test_cost_optimization.py
- — budget cap, per-user monthly limits, token estimation accuracy
- test_export_unicode_e2e.py
- — PDF/DOCX exports with Arabic, CJK, and emoji filenames + body content
- test_support_tickets.py
- — 23 cases: GridFS attachments, admin fetch, resolve + email send
- test_secondary_stt.py
- — Whisper long-form, engine fallback, 16-min free tier cap enforcement
- test_factcheck_confidence_rules.py
- — hard contract: server-side clamping, post-LLM enforcement
- test_cors_required_in_prod.py
- — wildcard rejection, regex fallback, production domain lockdown
- test_production_config_validator.py
- — boot refusal, missing keys, localhost Mongo rejection, JWT length
- 88 passed
- in 14 test files · 0 failures · 0 warnings · adjacent regression suite green on every iteration
08
Plans & Pricing
- Simple. Transparent. Pay-per-job available.
- Every plan grants access to the full verification engine. Higher tiers unlock volume, long-form content, and API access.
- Free
- $0
- forever
- 1 analysis / day · 3 / week
- Watermarked copy export
- Whisper ≤ 16 min
- Social posts (5 platforms)
- $1.00 AI budget cap
- Get Started
- Starter
- $19
- / month
- 40 analyses / month
- TXT export (no watermark)
- Unlimited Whisper
- Article + research brief
- $8.00 AI budget cap
- Start Starter
- Pro
- $49
- 130 analyses / month
- PDF + DOCX export
- 1 long-form job / month (≥60 min)
- Editorial polish (6 styles)
- Instant cache badge
- $30.00 AI budget cap
- Go Pro
- Agency
- $149
- 450 analyses / month
- All export formats
- 5 long-form jobs / month
- API access + 5 seats
- $100.00 AI budget cap
- Contact Sales
- Need just one job? $1.50 per-job credit
- — unlocks all Pro features for a single analysis. No subscription required.
09
For Developers
- Built to be extended.
- Clean architecture, modular services, comprehensive admin tooling, and a health check system that tells you exactly what's wrong — not just that something is.
- 🔒
- JWT Auth + Magic Links
- bcrypt-hashed passwords, 64-char JWT secrets, email-based passwordless login. Admin bootstrap endpoint gated by BOOTSTRAP_TOKEN for secure recovery.
- 💳
- Battle-Tested Stripe Integration
- Direct stripe.Webhook.construct_event() bypassing the StripeObject shim pitfalls. Idempotent fulfillment via receipt_sent_at flags. Diagnostic UI shows per-session Stripe status.
- 📊
- 11-Section Admin Dashboard
- Founder · Executive · Traffic · Funnel · Segments · Plans · Usage · Trust · Revenue · Exports · Health — with 4 date-range presets, KPI cards, and inline SVG sparklines.
- ⚕️
- Deep Health Endpoint
- /api/health/deep checks MongoDB, Stripe, SMTP, JWT length, CORS config, and more. Reports degraded state with per-component detail — not just a binary OK/fail.
- 🛡️
- DMCA Compliance Built In
- URL suppression list, takedown flow, re-submission blocking, and compliance audit trail. Fact-check cache keyed on claim SHA-256 to prevent stale verdicts.
- 🔄
- Cost Controls at Every Layer
- Two-tier LLM routing (Flash for cleanup, Pro for verdicts). Per-user monthly budget caps. Per-claim fact-check caching with 30-day TTL. Token estimation before every call.
- POST /api/jobs — submit a video for verification
- # Submit a YouTube URL for verification-first content extraction
- import
- httpx response = httpx. post
- ( "https://verisightai.ai/api/jobs"
- , headers={ "Authorization"
- : f"Bearer {token}"
- }, json={ "source_url"
- : "https://youtube.com/watch?v=dQw4w9WgXcQ"
- , "rights_confirmed"
- : True
- , } ) job = response.json() # job.id → poll GET /api/jobs/{id} until status == "complete"
- # job.fact_checks[0].status → "verified" | "contradicted" | "unclear"
- # job.fact_checks[0].confidence → 0.0–1.0, server-enforced confidence rules
- # job.posts.twitter[0] → platform-ready post, 3 variants
- # job.article → full newsroom article (lazy, call POST /api/jobs/{id}/article)
10
Veri Sight
- AI
- Turn video into verified, publish-safe content.
- Launch App
- How It Works
- Tech Stack
- Pricing
- For Developers
- Support
- © 2026 VeriSight AI · Built with FastAPI · React 19 · Gemini 2.5 · MongoDB · Stripe · verisightai.ai
Complete original text content
- Production · Live on verisightai.ai
- Turn video into
- verified
- , publish-safe content.
- VeriSight AI is not a transcription tool. Transcription is just the input. The product is trust
- — source-backed claims, confidence-aware outputs, and contradiction warnings.
- Python · FastAPI
- Gemini 2.5 Pro/Flash
- React 19 · Tailwind
- MongoDB · GridFS
- Stripe Payments
- Whisper STT
- YouTube · Vimeo · Loom
- 27 Iterations · 88+ Tests
- See It Live
- Explore the Stack
- Product Identity
- Not another summariser.
- A trust layer
- for AI content.
- Every other tool in this space stops at the transcript. VeriSight starts there and goes further — verifying claims, flagging contradictions, and ensuring every published output is source-backed.
- Most tools sell
- VeriSight sells
- Transcription / subtitles
- Verification-first content intelligence
- Note-taking
- Source-backed claims
- Generic AI summaries
- Confidence-aware outputs
- AI writers
- Contradiction warnings & publish-safety
- Pipeline
- End-to-end in 8 stages.
- From URL submission to publish-ready content with trust signals — fully automated, never fabricated.
- 01 / INPUT
- Source Validation
- Accepts YouTube, Vimeo, Loom URLs or direct media uploads. Rights confirmation, plan gates, quota checks run before anything else.
- 02 / ACQUIRE
- Transcript Orchestrator
- Prioritised strategy cascade: captions → Whisper audio STT → audio cleanup. Multi-adapter fallback with rotating egress proxies. Never fabricates.
- 03 / DERIVE
- Shared Derived Representation
- Single Gemini Flash call produces summary, insights, notable quotes, and claim candidates — building a reusable representation for all downstream outputs.
- 04 / VERIFY
- Fact-Check Engine
- Each claim verified against live web search (DuckDuckGo + Wikipedia). Confidence scores, verification status, and contradiction flags assigned per claim.
- 05 / TRUST
- Trust Signal Surfacing
- Badges, average confidence score, contradiction warnings. Advisory popup triggered when average confidence falls below 50%.
- 06 / OUTPUT
- Multi-Format Delivery
- 5 social platforms × 3 variants, newsroom article, research brief. Lazy generation to minimise cost. Polish pass via Gemini Pro with 6 editorial styles.
- 07 / CACHE
- Global Result Cache
- 30-day global dedupe: any previously-analyzed video is instantly cloned for the next user, saving AI cost and 3–10 minutes of wait time.
- 08 / EXPORT
- Gated Exports
- TXT, PDF, DOCX exports honour plan tier and watermarking rules. Per-job premium unlock ($1.50) opens all export formats for a single analysis.
- Verification Contract
- Hard-coded confidence rules.
- No hallucination, no guessing.
- Server-side rules are non-negotiable. The LLM cannot override them. Confidence values are clamped and enforced post-generation — the policy is a hard contract, not a prompt suggestion.
- ✓ verified
- 1.0
- Exact confidence — green badge. Verified against live sources.
- ◑ partially_verified
- 0.10–0.90
- Clamped range — amber badge. Partially supported by evidence.
- ? unclear
- ≤ 0.20
- Capped — red badge. No clear supporting evidence found.
- ✗ contradicted
- 0.0
- Exact zero — rose badge. Active contradicting evidence present.
- ◷ needs_review
- ≤ 0.10
- Capped — slate badge. Requires human editorial judgement.
- Interactive Preview
- See the verification engine.
- Paste a video URL and watch VeriSight classify and confidence-score extracted claims in real time.
- verisightai.ai/analyze
- Analyze for Trust Signals
- CLAIM VERIFICATION RESULTS · 3 claims extracted
- ✓ VERIFIED
- "Global AI investment exceeded $300 billion in 2024, with compute infrastructure accounting for the majority of spend."
- confidence: 1.00 · source: Reuters, Bloomberg · 2 corroborating references
- ◑ PARTIAL
- "Smaller open-source models now match GPT-4 on most enterprise benchmarks."
- confidence: 0.61 · source: Hugging Face leaderboard · benchmark-dependent
- ✗ CONTRADICTED
- "No major AI lab has faced regulatory fines to date."
- confidence: 0.00 · contradicted by: EU AI Act enforcement record, 2025
- ⚠ TRUST ADVISORY · avg confidence 54% · 1 contradicted claim detected · review before publishing
- Engineering
- Production-grade from day one.
- Every architectural decision is documented, tested, and iterable. 27 shipped iterations with zero breaking regressions.
- Backend
- FastAPI + Python
- FastAPI 0.110
- Pydantic v2
- asyncio
- Motor (async Mongo)
- Uvicorn
- BackgroundTasks
- AI / LLM
- Gemini 2.5 Dual-Tier
- gemini-2.5-flash
- gemini-2.5-pro
- google-genai SDK
- liteLLM
- token budgeting
- Search & Verification
- Live Fact-Check Engine
- DuckDuckGo Search
- Wikipedia API
- yt-dlp
- BeautifulSoup4
- rotating egress
- sha256 claim cache
- Database & Storage
- MongoDB + GridFS
- MongoDB Atlas
- GridFS attachments
- compound indexes
- 30-day result cache
- analytics_events
- Auth & Payments
- JWT + Stripe
- PyJWT
- bcrypt
- magic-link email
- Stripe Checkout
- webhook verification
- idempotent fulfil
- Frontend
- React 19 + shadcn/ui
- React 19
- React Router 7
- Tailwind CSS 3
- Radix UI primitives
- Recharts
- CRACO + Webpack
- Exports & Docs
- Multi-Format Output
- fpdf2 (PDF)
- python-docx
- ReportLab
- watermark engine
- unicode e2e tested
- Ops & Monitoring
- Production Hardened
- Sentry SDK
- Hostinger SMTP
- /health/deep endpoint
- CORS lockdown
- DMCA compliance
- rotate_secrets.py
- backend/services/transcript/orchestrator.py
- # Transcript acquisition — prioritised strategy cascade, never fabricates
- class
- TranscriptOrchestrator
- : def
- __init__
- (self): self
- .adapters = [ PublicCaptionAdapter(), # native captions first (free, fast)
- SessionBackedAdapter(), # browser-context extraction
- RotatingEgressAdapter(), # rotating IPs for geo-blocked sources
- AudioSTTAdapter(engine= "whisper"
- ), # Whisper fallback for silent caption tracks
- SecondarySTTAdapter(), # secondary provider for long-form content
- AlternateExtractorAdapter(), # yt-dlp last resort
- ] async def
- acquire
- (self, source: Source) -> TranscriptResult: for
- adapter in
- self
- .adapters: if not
- adapter.can_handle(source): continue
- result = await
- adapter.extract(source) if
- result.quality_grade >= QualityGrade.ACCEPTABLE: return
- result.with_provenance(adapter.label) raise
- TranscriptUnavailableError( "All adapters exhausted — not fabricating"
- )
- Quality Assurance
- 88+ tests. Zero regressions across 27 iterations.
- Every feature ships with a full pytest suite. Adjacent tests run on every iteration to catch regressions before they reach production.
- PASSED
- test_premium_unlock.py
- — 9 cases: article, brief, polish, pdf, docx on premium_unlocked; 4 free-tier gate sanity checks
- test_iter6_verisight.py
- — 17 cases: trust advisory, contradiction warnings, confidence rule enforcement
- test_orchestrator_api.py
- — 10 cases: adapter cascade, quality grading, provenance tracking, fabrication guard
- test_compliance_dmca.py
- — URL suppression, takedown flow, re-submission blocking
- test_stripe_webhook_security.py
- — signature verification, bad payload, missing header, idempotency
- test_video_cache_dedupe.py
- — 4 cases: cache hit, fresh-URL miss, TTL-expired, incomplete prior
- test_polish_article.py
- — 5 cases: free block, no article 409, bad style 400, happy path, rate limit 429
- test_admin_metrics.py
- — 25 cases: all 11 dashboard sections, date ranges, KPI shapes, route guard
- test_cost_optimization.py
- — budget cap, per-user monthly limits, token estimation accuracy
- test_export_unicode_e2e.py
- — PDF/DOCX exports with Arabic, CJK, and emoji filenames + body content
- test_support_tickets.py
- — 23 cases: GridFS attachments, admin fetch, resolve + email send
- test_secondary_stt.py
- — Whisper long-form, engine fallback, 16-min free tier cap enforcement
- test_factcheck_confidence_rules.py
- — hard contract: server-side clamping, post-LLM enforcement
- test_cors_required_in_prod.py
- — wildcard rejection, regex fallback, production domain lockdown
- test_production_config_validator.py
- — boot refusal, missing keys, localhost Mongo rejection, JWT length
- 88 passed
- in 14 test files · 0 failures · 0 warnings · adjacent regression suite green on every iteration
- Plans & Pricing
- Simple. Transparent. Pay-per-job available.
- Every plan grants access to the full verification engine. Higher tiers unlock volume, long-form content, and API access.
- Free
- $0
- forever
- 1 analysis / day · 3 / week
- Watermarked copy export
- Whisper ≤ 16 min
- Social posts (5 platforms)
- $1.00 AI budget cap
- Get Started
- Starter
- $19
- / month
- 40 analyses / month
- TXT export (no watermark)
- Unlimited Whisper
- Article + research brief
- $8.00 AI budget cap
- Start Starter
- Pro
- $49
- 130 analyses / month
- PDF + DOCX export
- 1 long-form job / month (≥60 min)
- Editorial polish (6 styles)
- Instant cache badge
- $30.00 AI budget cap
- Go Pro
- Agency
- $149
- 450 analyses / month
- All export formats
- 5 long-form jobs / month
- API access + 5 seats
- $100.00 AI budget cap
- Contact Sales
- Need just one job? $1.50 per-job credit
- — unlocks all Pro features for a single analysis. No subscription required.
- For Developers
- Built to be extended.
- Clean architecture, modular services, comprehensive admin tooling, and a health check system that tells you exactly what's wrong — not just that something is.
- 🔒
- JWT Auth + Magic Links
- bcrypt-hashed passwords, 64-char JWT secrets, email-based passwordless login. Admin bootstrap endpoint gated by BOOTSTRAP_TOKEN for secure recovery.
- 💳
- Battle-Tested Stripe Integration
- Direct stripe.Webhook.construct_event() bypassing the StripeObject shim pitfalls. Idempotent fulfillment via receipt_sent_at flags. Diagnostic UI shows per-session Stripe status.
- 📊
- 11-Section Admin Dashboard
- Founder · Executive · Traffic · Funnel · Segments · Plans · Usage · Trust · Revenue · Exports · Health — with 4 date-range presets, KPI cards, and inline SVG sparklines.
- ⚕️
- Deep Health Endpoint
- /api/health/deep checks MongoDB, Stripe, SMTP, JWT length, CORS config, and more. Reports degraded state with per-component detail — not just a binary OK/fail.
- 🛡️
- DMCA Compliance Built In
- URL suppression list, takedown flow, re-submission blocking, and compliance audit trail. Fact-check cache keyed on claim SHA-256 to prevent stale verdicts.
- 🔄
- Cost Controls at Every Layer
- Two-tier LLM routing (Flash for cleanup, Pro for verdicts). Per-user monthly budget caps. Per-claim fact-check caching with 30-day TTL. Token estimation before every call.
- POST /api/jobs — submit a video for verification
- # Submit a YouTube URL for verification-first content extraction
- import
- httpx response = httpx. post
- ( "https://verisightai.ai/api/jobs"
- , headers={ "Authorization"
- : f"Bearer {token}"
- }, json={ "source_url"
- : "https://youtube.com/watch?v=dQw4w9WgXcQ"
- , "rights_confirmed"
- : True
- , } ) job = response.json() # job.id → poll GET /api/jobs/{id} until status == "complete"
- # job.fact_checks[0].status → "verified" | "contradicted" | "unclear"
- # job.fact_checks[0].confidence → 0.0–1.0, server-enforced confidence rules
- # job.posts.twitter[0] → platform-ready post, 3 variants
- # job.article → full newsroom article (lazy, call POST /api/jobs/{id}/article)
- Veri Sight
- AI
- Turn video into verified, publish-safe content.
- Launch App
- How It Works
- Tech Stack
- Pricing
- Support
- © 2026 VeriSight AI · Built with FastAPI · React 19 · Gemini 2.5 · MongoDB · Stripe · verisightai.ai