ShotPrompt

Video to JSON Prompt Generator

Upload a clip up to 60 seconds and the JSON tab opens with the structured prompt ready to copy. The same run also gives timed shot cards and a full text prompt.

Video
Free: 3 analyses per day. No signup.

Frames are analyzed by an AI model (Gemma, running on Cloudflare Workers AI). It is not a human. Your video file is not uploaded.

Coming soon

We use your email only to write to you once. Privacy Policy

Why use a JSON prompt

  • Repeatable: the same fields in the same order every time, so you can change one value and run it again.
  • Easy to script: parse the output in any language and loop over the shots.
  • Easy to edit: swap a lighting value or a camera move without rewriting a paragraph.
  • Tool-dependent: some video tools and workflows accept structured prompts and others take text only. Use the Full prompt tab where text is required.

What the fields hold

FieldWhat it holds
styleThe overall look of the clip: genre, palette, mood
shotsAn ordered list with one entry per shot
start, endThe time range of the shot, in seconds
descriptionWhat is in frame and what happens
cameraShot size, angle and movement
lightingSource, quality and color of the light
promptA text prompt for that single shot

The JSON also carries the target model and the clip length at the top, and each shot has an index. The shape is the same on every run; only the text inside changes.

A sketch of the shape

This is an illustration of the idea, not output from a real clip:

{
  "style": "handheld street footage, warm evening light",
  "shots": [
    {
      "start": 0,
      "end": 4,
      "description": "A cyclist rides toward the camera on a tree-lined road",
      "camera": "low angle, static",
      "lighting": "low sun from behind, long shadows"
    }
  ]
}

Keeping the JSON useful

  • Keep keys lowercase and consistent between clips so your scripts do not break.
  • Store the target next to the JSON, since the wording of the prompts depends on it.
  • Edit values, not structure, when you adapt a prompt. Add a field only if your tool reads it.
  • Check that the JSON still parses after hand edits. A missing comma is the usual cause of errors.

Reading the style field

The style value is one line that sums up the look of the whole clip. Use it as the opening of every shot prompt so that separate generations keep a similar look.

Which target to pick

The target affects how the prompts are worded, not the idea of the JSON. Choose the model you plan to generate with. If you are not sure yet, leave it on Generic. Each run is a separate analysis. The JSON tab opens first on this page, and the Shots and Full prompt tabs are one click away.

Ways to use the JSON

  1. Keep one file per clip and diff two versions to see which setting you changed.
  2. Loop over the shots and send each one’s prompt to a video model as a separate request.
  3. Load the shots into a spreadsheet to plan an edit, one row per shot.
  4. Paste it as is into a tool that takes structured prompts, and use the Full prompt tab for the rest.

Limits

The JSON is built from still frames sampled once per second, so it does not hold sound, and a cut shorter than a second can be missed. It is an AI-generated description that can be wrong. Back to the video to prompt generator, or see Sora prompts from video and Veo 3 prompts from video.

Try it on your clip.

Time-coded shots, a full prompt and JSON in one run. Free, no signup.

Analyze a video