Skip to content
Replit - 2nd Place

FrameKind

An accessibility review agent for film editors. Find missing sound captions, rushed dialogue and timing errors, review each proposed repair against the picture, then export a better caption file.

Core trick

Pairs a Gemini visual review with timed-text rules to flag missing sound captions and rushed dialogue, then exports SRT and WebVTT after editor approval.

Tags

Built with

fastapiffmpeggeminigoogle-adkgoogle-cloudpythonreactsqlalchemyvite

Description

Inspiration A film can have subtitles and still lose part of its story. A phone rings off-screen, a speaker is never identified, or dialogue flashes past too quickly to read. I built FrameKind to give editors a practical review room for those gaps. What it does FrameKind compares a short film with its existing captions. It flags timing and readability issues, missing dialogue, sound captions, and speaker context. An editor can jump to the evidence, approve or reject a proposed repair, then export SRT, WebVTT, JSON, or an HTML review report. The original captions remain unchanged. The instant sample uses authored reference annotations and an original illustrated scene with Google-generated voices. Custom live reviews analyze the uploaded media. Caption-only reviews clearly leave audio and visual dimensions unassessed. How I built it The app uses React and Vite for the review workspace, FastAPI for uploads and progress events, and SQLAlchemy for run history and saved decisions. An eight-step Google ADK workflow coordinates ingestion, transcription, sound detection, visual review, timed-text rules, alignment, semantic checks, and repair planning. Gemini 2.5 Flash and Pro run on Google Cloud Vertex AI. Small media files can travel inline, with Cloud Storage supported as an alternative. The first version was built with Google Antigravity. Replit Agent helped inspect the repository and verify its runtime and database setup. The app is publicly hosted on Replit with Postgres persistence. The repository records development tools separately from runtime services. Challenges The hard part was making each proposed repair traceable and safe to apply. Timing changes and text changes must compose without mutating the original file. Repeated exports must agree. Real multimodal results also exposed cases that the authored sample did not cover, including one audio-description cue overlapping multiple speech segments. What I learned A useful review agent needs boundaries as well as model intelligence. Evidence can be incomplete, thresholds depend on the delivery profile and the editor should retain the final decision. FrameKind treats its scores as review aids, not certification. What's next I want to test FrameKind with working caption editors and Deaf and hard-of-hearing viewers, improve speaker labeling and add configurable delivery profiles. Longer films will need a durable job queue and a review workflow that works scene by scene.
Abhinav0905/Google_All_Agentic_Cinema★ 00 forksPythonApache-2.0Created Sep 9, 2026 · last push Sep 9, 2026

README excerpt

# FrameKind

**A better cut. For every audience.**

FrameKind helps film editors find missing sound captions, rushed dialogue and timing errors before delivery. Review each finding against the picture, approve a suggested repair and export SRT, WebVTT or a review report. Editors keep the final decision.

**[Open FrameKind](https://google-all-agentic-cinema--abhinav0905.replit.app)** and choose **Step into a sample review** for the authored demonstration.

Revision `c0fc1f3` is deployed with a fix for terminated idle database connections. The sample's approved decision and identical SRT export survived republishing, a fresh browser live review completed all eight steps, and review creation returned HTTP 201 before and after 180.6 seconds of client idle time.

## Try it locally

Requires Python 3.11 or 3.12, Node 20+ and FFmpeg/FFprobe. Replit deploys with Python 3.11; the supported range is bounded so its universal dependency resolver does not target untested future Python versions.

```bash
python3.11 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
npm ci --prefix web
npm run build --prefix web
uvicorn api.main:app --host 0.0.0.0 --port 8000
```

Open http://localhost:8000. Click **Step into a sample review**. The built-in sample works without cloud credentials. Its transcript, sound events and visual observations are authored test fixtures, not evidence of a live Gemini call. Custom caption-only runs check timed text and mark untested media dimensions as not 

Team