← StoryTeardown

TASK GUIDE / UPDATED AUGUST 2026

Video to shot list: build an editable table from your own footage

Searches for a video to shot list tool hide two different jobs. Script-first generators plan a shoot from a screenplay. This page covers the other direction: reading a finished video you own, detecting its cuts, and turning them into a shot table you can edit and export.

Direct answer

To turn a video into a shot list, run shot boundary detection on a video you own or are licensed to analyze, review each detected cut, then record timecodes, shot size, camera movement, action, dialogue, and story beat per shot. StoryTeardown runs cut detection in the browser, keeps semantic drafts editable, and exports the reviewed table as CSV.

The direction matters before the tool

A shot list that plans a shoot and a shot list that documents an edit look similar and are built oppositely. The first starts from a script and imagines coverage. The second starts from pixels and recovers what was actually cut. Mixing them produces tables that answer nobody's question, so pick the direction first and the tool comparison second.

Rights and capability boundary
Analysis is for video you own or are licensed to use. Detected cuts are candidates for your judgment, not final verdicts, and AI-drafted fields are editable starting points clearly separated from your edits.

The fields a real shot table holds

These are the columns StoryTeardown fills, and who fills them. The split is the honest part: machines measure, models draft, and you decide.

FieldFilled byWhat it holds
shotDetectorShot number, in cut order.
startDetectorStart timecode for the candidate segment.
endDetectorEnd timecode for the candidate segment.
duration_secondsDetectorHold length of the shot.
cut_scoreDetectorHow strong the frame change at the cut was.
shot_sizeAI draft, editableClose-up, medium, wide, and similar framing.
camera_movementAI draft, editableStatic, push-in, handheld, and similar motion.
charactersAI draft, editableWho is visible or speaking in the shot.
actionAI draft, editableWhat happens on screen, in plain prose.
dialogueAI draft, editableSpoken lines or sound cues attached to the shot.
story_beatAI draft, editableThe story job the shot performs, such as setup or turn.
hookAI draft, editableThe question or reveal that keeps attention.
notesYouYour production or review notes.
semantic_providerSystemThe service that produced the semantic draft.
semantic_modelSystemThe model that produced the semantic draft.
semantic_confidenceSystemThe model-reported confidence value.
semantic_evidenceAI draft, editableA short observable reason with a timestamp.
field_sourcesSystemRecords which fields are AI drafts and which you edited.

Example rows, labeled as examples

Three rows from our labeled illustrative example, a vertical drama cold open written by hand to show the shape of a finished table. They are demo data, not model output.

#TimeSizeMovementActionStory beat
100:00–00:03Close-upStaticSteam rises from a fresh pour; her hand steadies the cup as the doorbell rings once.Hook: routine interrupted.
200:03–00:12MediumSlow push-inMorning rush montage: three orders, one spilled sleeve, a tip jar with two coins.Setup: ordinary shift, empty pockets.
300:12–00:20Extreme close-upStaticHer eyes lift first; recognition lands before the customer is fully in frame.Catalyst: the ghost walks in.

Hand-written illustrative data, rights-safe by design, also used on the product demo path. Not model output.

The CSV you actually receive

The shot list exports as CSV with the header row below, so the table opens cleanly in any spreadsheet tool and keeps the per-field source record.

shot,start,end,duration_seconds,cut_score,shot_size,camera_movement,characters,action,dialogue,story_beat,hook,notes,semantic_provider,semantic_model,semantic_confidence,semantic_evidence,field_sources
1,00:00.000,00:03.000,3.000,,Close-up,Static,Barista,"Steam rises from a fresh pour; her hand steadies the cup as the doorbell rings once.","(SFX) Door chime.","Hook: routine interrupted.",,,,,,,"{""action"":""human""}"

One example row, abbreviated for width. Empty cut_score means the shot opens the video, so there is no measured cut.

Cuts are candidates until you judge them

On a public-domain Méliès film from 1900, our Stable detection pass found 18 strong change points while the Balanced pass proposed 57 candidates. Film history records the real shot count as one, because most detected changes are dissolve tricks, not cuts. Every detector produces this gap. The workflow that survives contact with real footage is the one that lets you review candidates instead of trusting them.

See the full detected table for that film, including the judgment pass.

Five steps from video to shot list

Step 1: Confirm your rights to the video. Use footage your team owns or is licensed to analyze. StoryTeardown asks for this confirmation before any analysis starts, and it is not a library or downloader for other people's videos.

Step 2: Run cut detection locally. The browser reads the file and marks frame-change peaks as candidate cuts. The source video is not uploaded for this step.

Step 3: Judge the candidates. Review each candidate cut against the picture, delete false positives such as flashes and dissolves, and split any cuts the detector missed.

Step 4: Fill the craft fields. For each confirmed shot, review or correct shot size, camera movement, characters, action, dialogue, story beat, hook, and notes. AI-drafted fields stay editable and their source is recorded per field.

Step 5: Export the shot list. Export the finished table as CSV and keep editing if the review continues. The same analysis can also produce the script document described on the video to screenplay page.

FAQ

Can I turn any video into a shot list?

No. The workflow is built for video you own or have explicit permission to analyze, and it asks you to confirm that before analysis. It does not fetch videos from platforms or host a public library.

Is the shot list editable or locked output?

Editable. Detector fields are measurements, craft fields start as AI drafts, and every field can be corrected in the workspace. Each field records whether it is still an AI draft or has been edited by you, and exports carry that state.

How is this different from a shot list generator?

A generator plans shots from a script before filming. This workflow reads a finished edit and records the shots that were actually made, with timecodes. The comparison page lists tools from both directions.

Sources and further reading

Where to go next