SafeView AI — Watch on your terms
Inspiration
A viewer may enjoy an entire film but still want to avoid a few sensitive moments. Traditional parental controls usually make a binary decision: allow the whole video or block it completely. They rarely give viewers precise, personal control over individual scenes.
That inspired SafeView AI: a content-aware video player that helps people watch user-authorized videos according to their own comfort preferences. Instead of censoring everyone with one universal rule, SafeView lets each viewer decide what should happen when sensitive content appears.
What it does
The current hackathon prototype processes user-authorized videos between 5 and 10 minutes long. This bounded scope keeps progressive multimodal analysis practical within the available processing time and API budget.
SafeView analyzes a video for six configurable categories:
- Adult content
- Violence
- Profanity
- Drugs
- Alcohol
- Gambling
For every detected moment, it returns timestamps, confidence, evidence, and an explanation. Before playback, the viewer chooses a default action for each category:
- Skip
- Blur
- Mute
- Warn
- Watch normally
During playback, SafeView automatically applies the configured action. A compact upcoming-content notice allows an optional one-time override, but the viewer never has to stop and answer a prompt. If no override is selected, SafeView immediately follows the preset.
Adjacent detections are grouped into understandable playback occurrences, while the original evidence remains visible for transparency. Overlapping Skip intervals are merged into one smooth forward jump rather than several disruptive seeks.
How I built it
The frontend uses React, TypeScript, and Vite, with the native HTML5 video player preserved for familiar and accessible controls. Videos can be previewed locally before the user explicitly selects Analyze with SafeView.
The backend is built with Python and FastAPI. FFprobe validates the media, while FFmpeg extracts timestamped frames and optional mono audio. SafeView sends these focused inputs instead of the original MP4 to OpenAI services.
Whisper produces timestamped transcription, and GPT-5.6 combines the visual frames and transcript to generate structured content detections. The application then validates, sorts, filters, and deduplicates the results before exposing them to the playback engine.
Analysis is progressive, so playback does not need to wait for the entire video. SafeView measures actual playable footage ahead rather than merely counting analyzed source time:
$$
\text{Playable runway}
\text{Analyzed footage ahead}
\left|\bigcup \text{effective Skip intervals}\right| $$
Unknown footage never counts as ready. This prevents playback from entering content that has not yet been analyzed and avoids rapid skip-and-buffer loops when much of the analyzed footage is configured to be skipped.
I designed the product behavior and used OpenAI Codex as a coding collaborator for implementation, repository-level review, focused debugging, automated tests, and durable project documentation.
Challenges
The hardest challenge was converting imperfect AI detections into deterministic media behavior.
Multiple detections can overlap, several pieces of evidence can describe the same scene, and different categories can require different actions at the same time. The playback engine therefore had to group related detections without deleting the detailed evidence, merge Skip intervals safely, compose Blur and Mute actions, and remain stable after seeking or replaying.
Progressive analysis created another challenge. Raw analyzed duration is not the same as playable duration when large sections will be skipped. SafeView therefore calculates the union of resolved Skip intervals and subtracts it only once.
I also worked under a very limited API budget. That encouraged a deliberately efficient pipeline: bounded sampling, explicit analysis initiation, no automatic retries, deterministic mocks for development, and non-live tests wherever possible.
Accomplishments
I am proud that SafeView is more than a detection report. It connects multimodal AI analysis to a working playback experience.
The project includes:
- Progressive multimodal video analysis
- Timestamped and evidence-backed detections
- Six independently configurable categories
- Five playback actions
- Automatic preset execution
- One-time occurrence overrides
- Deterministic overlapping-action handling
- Smooth merged Skip behavior
- Protected playback that never enters unknown footage
- Detailed evidence for transparency
- A responsive, video-first interface
What I learned
I learned that model output is only one part of an AI product. GPT-5.6 can identify and explain sensitive moments, but the application still needs carefully designed state management to turn those detections into predictable playback.
I also learned that content sensitivity is personal. SafeView should assist viewers rather than claim to make a perfect or universal judgment. Preserving evidence, exposing preferences, and allowing overrides are therefore central to the design.
Codex was especially valuable for reviewing interactions across the repository, identifying edge cases, extending tests, and keeping implementation decisions documented while the project evolved quickly.
What's next
Next, I would evaluate SafeView against a broader consented test set, improve boundary precision, and collect viewer feedback about category defaults and warnings. Future versions could add saved preference profiles, stronger on-device preprocessing, multilingual detection, and integrations with authorized streaming or media-library platforms.
SafeView is an assistive content-awareness prototype—not a claim of perfect detection—but it demonstrates a more personal way to experience video: the viewer decides, and the player adapts.
Log in or sign up for Devpost to join the conversation.