Skip to main content
The action layer for video

Paste a video. Build from it.

Paste a YouTube URL. UVAI takes what is inside the video — transcript, typed events, action items, and AI-driven execution — and builds from it. YouTube tells you what's there. UVAI acts on it.

Open sourceMIT licensedSelf-hostableOpenAPI includedGemini + OpenAIFastAPI backendNext.js dashboardDocker readyOpen sourceMIT licensedSelf-hostableOpenAPI includedGemini + OpenAIFastAPI backendNext.js dashboardDocker ready
Pipeline running
uvai.run/job_a4f2
youtube.com/watch?v=dQw4w9WgXcQAnalyzing
TranscriptFetching captions…
Typed events
Action items
AI analysis
Video chat

What UVAI does

Everything you need to
extract value from video.

01 — Transcript pipeline

Verbatim + timestamped.

YouTube captions first, speech-to-text fallback when captions are missing. Every word, every timestamp.

transcript.txtREADY
0:00Welcome back, everyone. Today we are diving into
0:04the architecture decisions behind our new API design,
0:08starting with the schema layer and event sourcing.
0:13First, let me show you how the typed event extraction
0:17handles ambiguous decisions in long-form content…

~3s

Avg transcript time

9

Workflow templates

5+

Agent analysis passes

100%

Open source

02 — Typed events

Structured output.

Decisions, tasks, topics, insights — returned as schema-bound JSON.

decisionAdopt event sourcing for schema layer0:08
taskReview typed event extraction spec0:17
topicAPI design — schema layer0:22
insightEvent sourcing removes dual-write risk0:31

03 — Agent analysis

Multi-agent depth.

Gemini passes for summary, intent, strategy, and video-aware chat.

SummaryThis video covers event sourcing architecture decisions, with a focus on typed schema design and eliminating dual-write consistency risks.
“What action items came from the schema discussion?”

How it works

From URL to usable output.

Three steps. No configuration needed for the first run.

Step 01

Paste a YouTube URL

Use the hosted dashboard or self-host with your own Gemini and OpenAI keys. No setup required to try it.

youtube.com/watch?v=...

Step 02

Watch the pipeline run

Transcription, structured extraction, and AI analysis run as a coordinated job with real-time SSE status updates.

SSE status → live progress

Step 03

Use the result

Read the transcript, export structured events, review action items, or open video chat and ask any follow-up questions.

Export JSON / chat / share

Workflow starting points

Templates that match
real use cases.

UVAI ships nine workflow templates. Browse the rest in the dashboard.

Popular

Tutorial → project plan

Extract the implementation path from a technical tutorial and scaffold a deployable project with code-oriented outputs.

EngineeringScaffold

Conference talk → action items

Capture decisions, follow-ups, and concrete next steps from long-form business or technical talks.

BusinessTasks

Podcast → blog post

Turn a long discussion into a structured draft with themes, quotes, and a clear content outline.

ContentDrafting

Lecture → study notes

Compress educational videos into notes, key ideas, and review material without losing source context.

EducationNotes

Built for operators and developers

Open where it matters.

  • FastAPI backend

    Python

    Use the API directly, inspect the OpenAPI contract, or extend the processing routes with your own logic.

  • Next.js 15 dashboard

    TypeScript

    A working hosted interface for URL input, templates, status, results, and video chat. Fork or deploy as-is.

  • Self-hostable deployment

    Docker

    Docker, Cloud Run, Railway, and Vercel configs ship with the repo. Run it on your own infrastructure.

  • MIT licensed

    Open source

    EventRelay is the open-source repo name; UVAI is the live product brand. Use, fork, or contribute freely.

quick_start.py
# Quick startpip install eventelay from eventelay import UVAIClient client = UVAIClient(  gemini_key="your-key",  openai_key="your-key") result = await client.process(  url="https://youtube.com/watch?v=...") print(result.transcript)print(result.events)   # typed JSONprint(result.actions)  # task list

Inbound

Send the workflow
you want automated.

Share the type of video, the output you need, and where the result should go. The draft opens in your mail client for you to review before sending.

Privacy note: this page does not submit to our backend. The draft is handed directly to your local email app.

Workflow request

Four fields. Enough to start a useful conversation.