save_video_analysis

Save a video beat sheet

Store your beat sheet for an analysed video. Read measure_video first.

Emit exactly one shot object per shot in the bundle, with the same index — a beat sheet whose indexes do not match the measured shots is rejected and nothing is stored.

image_prompt and motion_prompt should describe the shot for a DIFFERENT subject: that is what makes the format reusable. Costs no credits.

Scope

Behaviour

Writes
Creates or changes items in the caller's own account.
Can delete or overwrite
Can delete, overwrite, cancel or withdraw something the caller already has, so a host should confirm it.
Stays in the account
Stays inside the caller's private Kuro account: any media provider it calls acts on Kuro's account, and the result is visible to no one else.
Idempotent
Calling it again with the same arguments has no further effect.

Credits

What the tool's description says about credits, verbatim.

Inputs

Example call

A tools/call request with the required arguments only, each a placeholder read off the schema. Replace them before sending.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "save_video_analysis",
    "arguments": {
      "upload_id": "00000000-0000-4000-8000-000000000000",
      "beat_sheet": {
        "format_summary": "<format_summary>",
        "hook": "<hook>",
        "structure": "<structure>",
        "tags": [
          "<tags>"
        ],
        "shots": [
          {
            "index": 0,
            "role": "hook",
            "description": "<description>",
            "shot_size": "extreme_wide",
            "camera": "static",
            "setting": "<setting>",
            "on_screen_text": "<on_screen_text>",
            "narration": "<narration>",
            "sound": "<sound>"
          }
        ],
        "beats": [
          {
            "role": "hook",
            "shot_indexes": [
              0
            ],
            "title": "<title>",
            "intent": "<intent>"
          }
        ]
      }
    }
  }
}

Input schema

As the server sends it in tools/list.

{
  "type": "object",
  "properties": {
    "upload_id": {
      "type": "string",
      "format": "uuid"
    },
    "beat_sheet": {
      "type": "object",
      "properties": {
        "format_summary": {
          "type": "string",
          "minLength": 1,
          "maxLength": 600
        },
        "hook": {
          "type": "string",
          "minLength": 1,
          "maxLength": 400
        },
        "structure": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1200
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 30
          },
          "maxItems": 12
        },
        "shots": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "index": {
                "type": "integer",
                "minimum": 0
              },
              "role": {
                "type": "string",
                "enum": [
                  "hook",
                  "setup",
                  "build",
                  "proof",
                  "payoff",
                  "cta"
                ]
              },
              "description": {
                "type": "string",
                "minLength": 1,
                "maxLength": 600
              },
              "shot_size": {
                "type": "string",
                "enum": [
                  "extreme_wide",
                  "wide",
                  "medium_wide",
                  "medium",
                  "medium_close",
                  "close",
                  "extreme_close",
                  "insert"
                ]
              },
              "camera": {
                "type": "string",
                "enum": [
                  "static",
                  "handheld",
                  "pan",
                  "tilt",
                  "push_in",
                  "pull_out",
                  "tracking",
                  "orbit",
                  "crane",
                  "whip",
                  "pov",
                  "drone"
                ]
              },
              "setting": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "on_screen_text": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "narration": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "sound": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "image_prompt": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2000
              },
              "motion_prompt": {
                "type": "string",
                "minLength": 1,
                "maxLength": 6000
              }
            },
            "required": [
              "index",
              "role",
              "description",
              "shot_size",
              "camera",
              "setting",
              "on_screen_text",
              "narration",
              "sound"
            ],
            "additionalProperties": false
          },
          "minItems": 1,
          "maxItems": 60
        },
        "beats": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "role": {
                "$ref": "#/properties/beat_sheet/properties/shots/items/properties/role"
              },
              "shot_indexes": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0
                },
                "minItems": 1,
                "maxItems": 60
              },
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "intent": {
                "type": "string",
                "minLength": 1,
                "maxLength": 600
              }
            },
            "required": [
              "role",
              "shot_indexes",
              "title",
              "intent"
            ],
            "additionalProperties": false
          },
          "minItems": 1,
          "maxItems": 60
        }
      },
      "required": [
        "format_summary",
        "hook",
        "structure",
        "tags",
        "shots",
        "beats"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "upload_id",
    "beat_sheet"
  ],
  "additionalProperties": false
}

Related tools

Every tool· This page as Markdown