Existing tools score, summarise or list shots. None explains construction with timestamped fixes.
| Tool | Measures structure | Explains construction | Timestamped fixes |
|---|
Story beats, screen content, cuts, speech and loudness share one timeline. Pins are fixes; click one to jump there.
YouTube can't be embedded here, so timestamps open YouTube at that moment. Run uv run dna serve for the synced player.
One frame every 2.5 s.
Each dot is a video; the white tick is the genre median.
Seconds until the first voice.
Share of runtime by what's on screen.
Only 1 of — features survives correction (ρ —), and it shrinks to — once audience size is controlled.
Correlation with like rate, within genre, with 95% interval. The 8 strongest features shown; highlighted = survives correction.
With measurements vs. transcript only (— videos).
Preferred —–—. A model judging a model is weak evidence.
| Step | Calls | USD |
|---|
Whole project including evaluation and re-runs: —. Estimated from logged tokens.
Shots: PySceneDetect AdaptiveDetector. Motion and colour: OpenCV at 2 fps. Loudness: librosa RMS. Transcript: whisper-1 word timestamps, screened for invented passages. Screen formats and calls to action: gemini-3.5-flash on the YouTube URL. Critique: claude-sonnet-5 with structured output; every cited metric, quote and visual is re-checked by a deterministic validator. Judge: claude-opus-4-8, blind. Statistics: Kruskal-Wallis with Benjamini-Hochberg, Spearman with bootstrap intervals and within-genre permutation tests. Regenerate everything with analysis/*.py.
Content DNA Analyzer · research prototype. Every number on this page is read from the pipeline's result files (results/story/). Recommendations are hypotheses to test, not performance predictions.