Skip to main content
Glama

Create a matte

create.matte
Idempotent

A solid or gradient picture (PNG, any length on a timeline): backgrounds, slugs, colour washes with clip.set_blend. Gradients work like CSS: angle 180 runs top to bottom; radial reaches the corners; colours may carry alpha (#RRGGBBAA). Long-running like every create.* tool, but quick.

Input Schema

NameRequiredDescriptionDefault
nameNo
colorNoA solid colour
widthNo
heightNo
gradientNo
idempotency_keyNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "analyses": {
      -        "description": "Summaries of media.analyze results (counts, not data); include puts each in full at the top level",
      -        "properties": {
      -          "beats": {
      -            "properties": {
      -              "beats": {
      -                "type": "number"
      -              },
      -              "bpm": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "bpm",
      -              "beats"
      -            ],
      -            "type": "object"
      -          },
      -          "colour": {
      -            "properties": {
      -              "frames": {
      -                "type": "number"
      -              },
      -              "regions": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              }
      -            },
      -            "required": [
      -              "frames",
      -              "regions"
      -            ],
      -            "type": "object"
      -          },
      -          "faces": {
      -            "properties": {
      -              "frames_with_faces": {
      -                "type": "number"
      -              },
      -              "rate": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "rate",
      -              "frames_with_faces"
      -            ],
      -            "type": "object"
      -          },
      -          "look": {
      -            "description": "frames and questions: the latest run",
      -            "properties": {
      -              "frames": {
      -                "type": "number"
      -              },
      -              "questions": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "runs": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "runs",
      -              "frames",
      -              "questions"
      -            ],
      -            "type": "object"
      -          },
      -          "picture": {
      -            "properties": {
      -              "frames": {
      -                "type": "number"
      -              },
      -              "from": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "frames",
      -              "from"
      -            ],
      -            "type": "object"
      -          },
      -          "sounds": {
      -            "description": "heard: the sounds the latest run found at or above its min_probability",
      -            "properties": {
      -              "heard": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "min_probability": {
      -                "type": "number"
      -              },
      -              "model": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "model",
      -              "min_probability",
      -              "heard"
      -            ],
      -            "type": "object"
      -          },
      -          "speakers": {
      -            "properties": {
      -              "model": {
      -                "type": "string"
      -              },
      -              "speakers": {
      -                "type": "number"
      -              },
      -              "turns": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "model",
      -              "speakers",
      -              "turns"
      -            ],
      -            "type": "object"
      -          },
      -          "speech": {
      -            "properties": {
      -              "frame_seconds": {
      -                "type": "number"
      -              },
      -              "frames": {
      -                "type": "number"
      -              },
      -              "model": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "model",
      -              "frames",
      -              "frame_seconds"
      -            ],
      -            "type": "object"
      -          },
      -          "transcript": {
      -            "properties": {
      -              "language": {
      -                "type": "string"
      -              },
      -              "model": {
      -                "type": "string"
      -              },
      -              "words": {
      -                "description": "How many words; the words themselves are in transcript.words",
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "model",
      -              "language",
      -              "words"
      -            ],
      -            "type": "object"
      -          },
      -          "voice": {
      -            "additionalProperties": {},
      -            "description": "frames, and the summary media.analyze voice gives",
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "analysis": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "channels": {
      -                "description": "Each channel at import",
      -                "items": {
      -                  "properties": {
      -                    "channel": {
      -                      "exclusiveMinimum": 0,
      -                      "type": "integer"
      -                    },
      -                    "noise_floor_dbfs": {
      -                      "type": [
      -                        "number",
      -                        "null"
      -                      ]
      -                    },
      -                    "peak_dbfs": {
      -                      "type": [
      -                        "number",
      -                        "null"
      -                      ]
      -                    },
      -                    "rms_dbfs": {
      -                      "type": [
      -                        "number",
      -                        "null"
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "channel",
      -                    "rms_dbfs",
      -                    "peak_dbfs",
      -                    "noise_floor_dbfs"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "loudness_lufs": {
      -                "description": "Integrated loudness at import",
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              }
      -            },
      -            "required": [
      -              "loudness_lufs"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "beats": {
      -        "properties": {
      -          "beats": {
      -            "items": {
      -              "type": "number"
      -            },
      -            "type": "array"
      -          },
      -          "bpm": {
      -            "type": "number"
      -          },
      -          "downbeats": {
      -            "items": {
      -              "type": "number"
      -            },
      -            "type": "array"
      -          },
      -          "strengths": {
      -            "description": "Per beat: its onset strength, 0–1 of the strongest in the sound",
      -            "items": {
      -              "type": "number"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "bpm",
      -          "beats",
      -          "downbeats"
      -        ],
      -        "type": "object"
      -      },
      -      "codecs": {
      -        "properties": {
      -          "audio": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "video": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "video",
      -          "audio"
      -        ],
      -        "type": "object"
      -      },
      -      "conform": {
      -        "description": "Why a mezzanine was made (vfr, rotation, hdr, codec); empty when not needed",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "created_at": {
      -        "description": "When it was imported or made",
      -        "type": "string"
      -      },
      -      "duration_seconds": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "error": {
      -        "properties": {
      -          "code": {
      -            "enum": [
      -              "bad_request",
      -              "no_audio",
      -              "not_found",
      -              "expired",
      -              "media_not_ready",
      -              "media_offline",
      -              "engine_error",
      -              "render_failed",
      -              "interrupted",
      -              "stalled",
      -              "cancelled",
      -              "credential_required",
      -              "credential_invalid",
      -              "output_exists",
      -              "path_not_allowed",
      -              "limit_exceeded",
      -              "quota_exceeded",
      -              "subscription_required",
      -              "email_unverified",
      -              "service_unavailable",
      -              "server_busy"
      -            ],
      -            "type": "string"
      -          },
      -          "detail": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "hint": {
      -            "type": "string"
      -          },
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "expires_at": {
      -        "description": "When url and page_url stop working",
      -        "type": "string"
      -      },
      -      "extension": {
      -        "description": "The extension its format takes (.png, .mp4), from the file itself, not its name",
      -        "type": "string"
      -      },
      -      "faces": {
      -        "properties": {
      -          "frames": {
      -            "items": {
      -              "properties": {
      -                "faces": {
      -                  "items": {
      -                    "description": "Top-left corner x, y and size w, h, fractions of the picture (centre: x + w/2, y + h/2); score 0–1",
      -                    "properties": {
      -                      "h": {
      -                        "type": "number"
      -                      },
      -                      "score": {
      -                        "type": "number"
      -                      },
      -                      "w": {
      -                        "type": "number"
      -                      },
      -                      "x": {
      -                        "type": "number"
      -                      },
      -                      "y": {
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "x",
      -                      "y",
      -                      "w",
      -                      "h",
      -                      "score"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "type": "array"
      -                },
      -                "time": {
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "time",
      -                "faces"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "rate": {
      -            "type": "number"
      -          }
      -        },
      -        "required": [
      -          "rate",
      -          "frames"
      -        ],
      -        "type": "object"
      -      },
      -      "fingerprint": {
      -        "description": "Identity of the file (BLAKE3 of its size and first, middle and last 4 MB), as export.video gives",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "font_family": {
      -        "description": "Fonts: the family; use font_media_id in a text style to set text in it",
      -        "type": "string"
      -      },
      -      "fps": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "den": {
      -                "type": "number"
      -              },
      -              "num": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "num",
      -              "den"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "has_audio": {
      -        "type": "boolean"
      -      },
      -      "has_video": {
      -        "type": "boolean"
      -      },
      -      "height": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "job": {
      -        "description": "media.get, while importing or being made: the job doing it",
      -        "properties": {
      -          "job_id": {
      -            "description": "Job handle; the same value is the MCP task id",
      -            "pattern": "^j_[0-9a-z]{26}$",
      -            "type": "string"
      -          },
      -          "progress": {
      -            "type": "number"
      -          },
      -          "seconds_left": {
      -            "type": "number"
      -          },
      -          "status": {
      -            "enum": [
      -              "working",
      -              "completed",
      -              "failed",
      -              "cancelled"
      -            ],
      -            "type": "string"
      -          },
      -          "status_message": {
      -            "type": "string"
      -          },
      -          "tool": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "job_id",
      -          "tool",
      -          "status"
      -        ],
      -        "type": "object"
      -      },
      -      "kind": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "video",
      -              "audio",
      -              "image",
      -              "font",
      -              "lut"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "look": {
      -        "properties": {
      -          "runs": {
      -            "items": {
      -              "properties": {
      -                "frames": {
      -                  "items": {
      -                    "properties": {
      -                      "answers": {
      -                        "additionalProperties": {
      -                          "additionalProperties": {},
      -                          "propertyNames": {
      -                            "type": "string"
      -                          },
      -                          "type": "object"
      -                        },
      -                        "propertyNames": {
      -                          "type": "string"
      -                        },
      -                        "type": "object"
      -                      },
      -                      "time": {
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "time",
      -                      "answers"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "type": "array"
      -                },
      -                "id": {
      -                  "type": "string"
      -                },
      -                "model": {
      -                  "type": "string"
      -                },
      -                "questions": {
      -                  "additionalProperties": {},
      -                  "propertyNames": {
      -                    "type": "string"
      -                  },
      -                  "type": "object"
      -                },
      -                "state": {
      -                  "additionalProperties": {},
      -                  "propertyNames": {
      -                    "type": "string"
      -                  },
      -                  "type": "object"
      -                },
      -                "with_previous": {
      -                  "type": "boolean"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "model",
      -                "questions",
      -                "with_previous",
      -                "frames"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "runs"
      -        ],
      -        "type": "object"
      -      },
      -      "media_id": {
      -        "description": "Media handle from media.import or a create.* tool",
      -        "pattern": "^m_[0-9a-z]{26}$",
      -        "type": "string"
      -      },
      -      "mime_type": {
      -        "description": "Its MIME type, likewise",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "origin": {
      -        "description": "Where it came from, to tell one version from another: the import source, the export of which timeline, or the create.* tool and the media it was made from",
      -        "properties": {
      -          "attached": {
      -            "description": "url: the file the user attached in the chat, passed as media.import file",
      -            "type": "boolean"
      -          },
      -          "file_name": {
      -            "description": "upload: the name the file was sent with",
      -            "type": "string"
      -          },
      -          "frame": {
      -            "description": "still: the frame",
      -            "type": "number"
      -          },
      -          "from": {
      -            "description": "upload: a file the user sent; url: downloaded; path: a media root; render: an export.video; created: a create.* tool; still: a frame of a video or an edit",
      -            "enum": [
      -              "upload",
      -              "url",
      -              "path",
      -              "render",
      -              "created",
      -              "still"
      -            ],
      -            "type": "string"
      -          },
      -          "job_id": {
      -            "description": "render: the export.video job; created: the create.* job",
      -            "pattern": "^j_[0-9a-z]{26}$",
      -            "type": "string"
      -          },
      -          "media_id": {
      -            "description": "still: the video the frame is from",
      -            "pattern": "^m_[0-9a-z]{26}$",
      -            "type": "string"
      -          },
      -          "media_ids": {
      -            "description": "created: the media it was made from (a cutout's source, a page's assets)",
      -            "items": {
      -              "description": "Media handle from media.import or a create.* tool",
      -              "pattern": "^m_[0-9a-z]{26}$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "path": {
      -            "description": "path: the file it was imported from",
      -            "type": "string"
      -          },
      -          "preset": {
      -            "description": "render: the export preset",
      -            "type": "string"
      -          },
      -          "range": {
      -            "description": "render: the frames exported, when not the whole timeline",
      -            "properties": {
      -              "end": {
      -                "type": "number"
      -              },
      -              "start": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "start",
      -              "end"
      -            ],
      -            "type": "object"
      -          },
      -          "recipe": {
      -            "description": "created: a hash of what it was made from; the same recipe makes the same media",
      -            "type": "string"
      -          },
      -          "sources": {
      -            "description": "render: where each stretch of this file comes from, per track, read from the timeline when it was exported (kept after the timeline expires). With a speed curve, source_in and source_out are the clip's whole source range",
      -            "items": {
      -              "properties": {
      -                "end": {
      -                  "type": "number"
      -                },
      -                "kind": {
      -                  "enum": [
      -                    "video",
      -                    "audio"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_id": {
      -                  "description": "The media this stretch plays",
      -                  "pattern": "^m_[0-9a-z]{26}$",
      -                  "type": "string"
      -                },
      -                "source_in": {
      -                  "description": "Seconds into that media",
      -                  "type": "number"
      -                },
      -                "source_out": {
      -                  "type": "number"
      -                },
      -                "speed": {
      -                  "additionalProperties": {},
      -                  "description": "The clip's speed change, as clip.set_speed set it",
      -                  "propertyNames": {
      -                    "type": "string"
      -                  },
      -                  "type": "object"
      -                },
      -                "start": {
      -                  "description": "Seconds into this file",
      -                  "type": "number"
      -                },
      -                "track_id": {
      -                  "description": "Track of the timeline; outer/inner inside a nested one",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "track_id",
      -                "kind",
      -                "start",
      -                "end",
      -                "media_id",
      -                "source_in",
      -                "source_out"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "timeline_id": {
      -            "description": "render: the timeline that was exported; still: the edit the frame is from",
      -            "pattern": "^tl_[0-9a-f]{32}$",
      -            "type": "string"
      -          },
      -          "tool": {
      -            "description": "created: the create.* tool that made it",
      -            "type": "string"
      -          },
      -          "upload_id": {
      -            "description": "Upload handle from media.upload",
      -            "pattern": "^u_[0-9a-z]{26}$",
      -            "type": "string"
      -          },
      -          "url": {
      -            "description": "url: the address it was downloaded from, without its query string",
      -            "type": "string"
      -          },
      -          "via": {
      -            "description": "upload: sent through a media.upload link, dropped on the account page, or a data: URI",
      -            "enum": [
      -              "media.upload",
      -              "account_page",
      -              "data_uri"
      -            ],
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "from"
      -        ],
      -        "type": "object"
      -      },
      -      "page_url": {
      -        "description": "media.get: a page that plays or shows the file in any browser, with no sign-in, to give a person; works until expires_at",
      -        "type": "string"
      -      },
      -      "pages": {
      -        "additionalProperties": {
      -          "properties": {
      -            "first": {
      -              "description": "Index in the whole list of the first item returned (transcript: the word index clip.add source {words} takes)",
      -              "type": "integer"
      -            },
      -            "list": {
      -              "description": "The list paged: transcript.words, beats.beats, faces.frames, speech.probabilities (one per frame_seconds from `from`), speakers.turns, voice.frames, colour.frames, picture.columns (every column alike), or look runs[].frames (each run is cut the same way; first and the counts are the latest run's)",
      -              "type": "string"
      -            },
      -            "matching": {
      -              "description": "Items in the time range (the whole list without one)",
      -              "type": "integer"
      -            },
      -            "next_offset": {
      -              "anyOf": [
      -                {
      -                  "type": "integer"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "The offset that gives the next page of this range, or null at its end"
      -            },
      -            "returned": {
      -              "type": "integer"
      -            },
      -            "total": {
      -              "description": "Items in the whole list",
      -              "type": "integer"
      -            }
      -          },
      -          "required": [
      -            "list",
      -            "first",
      -            "returned",
      -            "matching",
      -            "total",
      -            "next_offset"
      -          ],
      -          "type": "object"
      -        },
      -        "description": "media.get with a range, offset or limit: per included analysis, which piece of its list came back",
      -        "propertyNames": {
      -          "enum": [
      -            "transcript",
      -            "beats",
      -            "faces",
      -            "look",
      -            "speech",
      -            "sounds",
      -            "speakers",
      -            "voice",
      -            "colour",
      -            "picture"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "object"
      -      },
      -      "probe": {
      -        "description": "media.get: everything FFprobe read from the file, as it gives it: the format and every stream (codec, pix_fmt, color_space, color_primaries, color_transfer, color_range, bit depth, sample rate, channel layout, tags, side data). Not for fonts and LUTs",
      -        "properties": {
      -          "format": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "streams": {
      -            "items": {
      -              "additionalProperties": {},
      -              "propertyNames": {
      -                "type": "string"
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "format",
      -          "streams"
      -        ],
      -        "type": "object"
      -      },
      -      "sound_seconds": {
      -        "description": "How long the sound runs; under duration_seconds, the end is soundless",
      -        "type": "number"
      -      },
      -      "sounds": {
      -        "description": "With include [\"sounds\"]: the latest media.analyze sounds run, every probability included",
      -        "properties": {
      -          "min_probability": {
      -            "type": "number"
      -          },
      -          "model": {
      -            "type": "string"
      -          },
      -          "peaks": {
      -            "additionalProperties": {
      -              "type": "number"
      -            },
      -            "description": "Per sound reported: the highest probability it reaches anywhere",
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "scores": {
      -            "description": "Every probability, for your own cut-off or arithmetic",
      -            "properties": {
      -              "start_seconds": {
      -                "description": "Where the first value starts: media seconds, or timeline seconds for a timeline",
      -                "type": "number"
      -              },
      -              "step_seconds": {
      -                "description": "Seconds each value covers: 0.04 (every frame) unless asked or too long",
      -                "type": "number"
      -              },
      -              "values": {
      -                "additionalProperties": {
      -                  "items": {
      -                    "type": "number"
      -                  },
      -                  "type": "array"
      -                },
      -                "description": "Per sound, the highest probability in each step, 0 to 1",
      -                "propertyNames": {
      -                  "type": "string"
      -                },
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "start_seconds",
      -              "step_seconds",
      -              "values"
      -            ],
      -            "type": "object"
      -          },
      -          "spans": {
      -            "additionalProperties": {
      -              "items": {
      -                "properties": {
      -                  "end": {
      -                    "description": "Where it ends, on the same clock",
      -                    "type": "number"
      -                  },
      -                  "peak_probability": {
      -                    "type": "number"
      -                  },
      -                  "peak_seconds": {
      -                    "description": "The middle of the most likely frame",
      -                    "type": "number"
      -                  },
      -                  "start": {
      -                    "description": "Where the run of matching 40 ms frames starts: media seconds, or timeline seconds for a timeline",
      -                    "type": "number"
      -                  }
      -                },
      -                "required": [
      -                  "start",
      -                  "end",
      -                  "peak_seconds",
      -                  "peak_probability"
      -                ],
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            "description": "Per sound: the runs of 40 ms frames at or above min_probability, in time order; empty when it never is",
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "model",
      -          "min_probability",
      -          "spans",
      -          "peaks"
      -        ],
      -        "type": "object"
      -      },
      -      "speech": {
      -        "description": "With include [\"speech\"]: the speech probability of every 32 ms frame",
      -        "properties": {
      -          "frame_seconds": {
      -            "description": "Each probability covers this long",
      -            "type": "number"
      -          },
      -          "from": {
      -            "description": "Seconds where the first probability starts",
      -            "type": "number"
      -          },
      -          "model": {
      -            "type": "string"
      -          },
      -          "probabilities": {
      -            "description": "Speech probability 0–1, one per frame, in order",
      -            "items": {
      -              "type": "number"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "model",
      -          "frame_seconds",
      -          "from",
      -          "probabilities"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "description": "importing: not probed yet; processing: usable in edits, proxy still rendering; ready; failed",
      -        "enum": [
      -          "importing",
      -          "processing",
      -          "ready",
      -          "failed"
      -        ],
      -        "type": "string"
      -      },
      -      "transcript": {
      -        "description": "With include [\"transcript\"]: every word as {text, start, end, confidence}",
      -        "properties": {
      -          "aligned_by": {
      -            "description": "The model that moved word edges to where the letters sound (English); null: the times are whisper's own, up to about a second off",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "from": {
      -            "description": "The stretch transcribed, if not all",
      -            "type": "number"
      -          },
      -          "language": {
      -            "type": "string"
      -          },
      -          "model": {
      -            "type": "string"
      -          },
      -          "text": {
      -            "type": "string"
      -          },
      -          "until": {
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "words": {
      -            "description": "Media seconds. Aligned words start and end within about 0.05 s of where their letters sound; an end on a soft consonant (s, t, k, f) or a breath can ring on up to about 0.1 s more. Short ums are often missing from the words; kind speech finds them as speech. A word \"-\" (or one starting with it) is whisper marking a new speaker, as subtitles do: a hint only; kind speakers measures who speaks when",
      -            "items": {
      -              "properties": {
      -                "confidence": {
      -                  "description": "0–1: how sure whisper is of the word itself",
      -                  "type": "number"
      -                },
      -                "end": {
      -                  "type": "number"
      -                },
      -                "speaker": {
      -                  "description": "Who says it, from the latest speakers run",
      -                  "type": [
      -                    "number",
      -                    "null"
      -                  ]
      -                },
      -                "start": {
      -                  "type": "number"
      -                },
      -                "text": {
      -                  "type": "string"
      -                },
      -                "timing_confidence": {
      -                  "description": "0–1: how clearly the letters were heard between start and end; null: not aligned (digits, symbols, other languages), times fitted between neighbours",
      -                  "type": [
      -                    "number",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "text",
      -                "start",
      -                "end",
      -                "confidence"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "model",
      -          "language",
      -          "text",
      -          "words"
      -        ],
      -        "type": "object"
      -      },
      -      "upload": {
      -        "description": "media.import {source: {upload}}: where to send the file. It imports once the last byte arrives (the PUT answers with the job_id); media.get says where it stands",
      -        "properties": {
      -          "expires_at": {
      -            "type": "string"
      -          },
      -          "max_bytes": {
      -            "type": "number"
      -          },
      -          "upload_id": {
      -            "description": "Upload handle from media.upload",
      -            "pattern": "^u_[0-9a-z]{26}$",
      -            "type": "string"
      -          },
      -          "url": {
      -            "description": "Signed: PUT the file here; no other credentials needed",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "upload_id",
      -          "url",
      -          "expires_at",
      -          "max_bytes"
      -        ],
      -        "type": "object"
      -      },
      -      "url": {
      -        "description": "media.get: a signed download of the file itself, once it has one",
      -        "type": "string"
      -      },
      -      "warnings": {
      -        "description": "create.motion and create.still: what went wrong in the page as it rendered (uncaught errors, console errors, files blocked or not found, tags never closed). It rendered anyway",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "width": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "media_id",
      -      "name",
      -      "status",
      -      "kind",
      -      "duration_seconds",
      -      "fps",
      -      "width",
      -      "height",
      -      "has_video",
      -      "has_audio",
      -      "codecs",
      -      "conform",
      -      "analysis"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "hint": {
      -        "type": "string"
      -      },
      -      "job_id": {
      -        "description": "Job handle; the same value is the MCP task id",
      -        "pattern": "^j_[0-9a-z]{26}$",
      -        "type": "string"
      -      },
      -      "media_id": {
      -        "description": "The media it is making; usable in edits once processing",
      -        "pattern": "^m_[0-9a-z]{26}$",
      -        "type": "string"
      -      },
      -      "status": {
      -        "enum": [
      -          "working",
      -          "completed",
      -          "failed",
      -          "cancelled"
      -        ],
      -        "type": "string"
      -      },
      -      "status_uri": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "job_id",
      -      "status",
      -      "status_uri",
      -      "hint"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "analyses": {
      +        "description": "Summaries of media.analyze results (counts, not data); include puts each in full at the top level",
      +        "properties": {
      +          "beats": {
      +            "properties": {
      +              "beats": {
      +                "type": "number"
      +              },
      +              "bpm": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "bpm",
      +              "beats"
      +            ],
      +            "type": "object"
      +          },
      +          "colour": {
      +            "properties": {
      +              "frames": {
      +                "type": "number"
      +              },
      +              "regions": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "required": [
      +              "frames",
      +              "regions"
      +            ],
      +            "type": "object"
      +          },
      +          "faces": {
      +            "properties": {
      +              "frames_with_faces": {
      +                "type": "number"
      +              },
      +              "rate": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "rate",
      +              "frames_with_faces"
      +            ],
      +            "type": "object"
      +          },
      +          "look": {
      +            "description": "frames and questions: the latest run",
      +            "properties": {
      +              "frames": {
      +                "type": "number"
      +              },
      +              "questions": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "runs": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "runs",
      +              "frames",
      +              "questions"
      +            ],
      +            "type": "object"
      +          },
      +          "picture": {
      +            "properties": {
      +              "frames": {
      +                "type": "number"
      +              },
      +              "from": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "frames",
      +              "from"
      +            ],
      +            "type": "object"
      +          },
      +          "sounds": {
      +            "description": "heard: the sounds the latest run found at or above its min_probability",
      +            "properties": {
      +              "heard": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "min_probability": {
      +                "type": "number"
      +              },
      +              "model": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "model",
      +              "min_probability",
      +              "heard"
      +            ],
      +            "type": "object"
      +          },
      +          "speakers": {
      +            "properties": {
      +              "model": {
      +                "type": "string"
      +              },
      +              "speakers": {
      +                "type": "number"
      +              },
      +              "turns": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "model",
      +              "speakers",
      +              "turns"
      +            ],
      +            "type": "object"
      +          },
      +          "speech": {
      +            "properties": {
      +              "frame_seconds": {
      +                "type": "number"
      +              },
      +              "frames": {
      +                "type": "number"
      +              },
      +              "model": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "model",
      +              "frames",
      +              "frame_seconds"
      +            ],
      +            "type": "object"
      +          },
      +          "transcript": {
      +            "properties": {
      +              "language": {
      +                "type": "string"
      +              },
      +              "model": {
      +                "type": "string"
      +              },
      +              "words": {
      +                "description": "How many words; the words themselves are in transcript.words",
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "model",
      +              "language",
      +              "words"
      +            ],
      +            "type": "object"
      +          },
      +          "voice": {
      +            "additionalProperties": {},
      +            "description": "frames, and the summary media.analyze voice gives",
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "analysis": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "channels": {
      +                "description": "Each channel at import",
      +                "items": {
      +                  "properties": {
      +                    "channel": {
      +                      "exclusiveMinimum": 0,
      +                      "type": "integer"
      +                    },
      +                    "noise_floor_dbfs": {
      +                      "type": [
      +                        "number",
      +                        "null"
      +                      ]
      +                    },
      +                    "peak_dbfs": {
      +                      "type": [
      +                        "number",
      +                        "null"
      +                      ]
      +                    },
      +                    "rms_dbfs": {
      +                      "type": [
      +                        "number",
      +                        "null"
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "channel",
      +                    "rms_dbfs",
      +                    "peak_dbfs",
      +                    "noise_floor_dbfs"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "loudness_lufs": {
      +                "description": "Integrated loudness at import",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "loudness_lufs"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "beats": {
      +        "properties": {
      +          "beats": {
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": "array"
      +          },
      +          "bpm": {
      +            "type": "number"
      +          },
      +          "downbeats": {
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": "array"
      +          },
      +          "strengths": {
      +            "description": "Per beat: its onset strength, 0–1 of the strongest in the sound",
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "bpm",
      +          "beats",
      +          "downbeats"
      +        ],
      +        "type": "object"
      +      },
      +      "codecs": {
      +        "properties": {
      +          "audio": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "video": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "video",
      +          "audio"
      +        ],
      +        "type": "object"
      +      },
      +      "conform": {
      +        "description": "Why a mezzanine was made (vfr, rotation, hdr, codec); empty when not needed",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "created_at": {
      +        "description": "When it was imported or made",
      +        "type": "string"
      +      },
      +      "duration_seconds": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "error": {
      +        "properties": {
      +          "code": {
      +            "enum": [
      +              "bad_request",
      +              "no_audio",
      +              "not_found",
      +              "expired",
      +              "media_not_ready",
      +              "media_offline",
      +              "engine_error",
      +              "render_failed",
      +              "interrupted",
      +              "stalled",
      +              "cancelled",
      +              "credential_required",
      +              "credential_invalid",
      +              "output_exists",
      +              "path_not_allowed",
      +              "limit_exceeded",
      +              "quota_exceeded",
      +              "subscription_required",
      +              "email_unverified",
      +              "service_unavailable",
      +              "server_busy"
      +            ],
      +            "type": "string"
      +          },
      +          "detail": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "hint": {
      +            "type": "string"
      +          },
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "expires_at": {
      +        "description": "When url and page_url stop working",
      +        "type": "string"
      +      },
      +      "extension": {
      +        "description": "The extension its format takes (.png, .mp4), from the file itself, not its name",
      +        "type": "string"
      +      },
      +      "faces": {
      +        "properties": {
      +          "frames": {
      +            "items": {
      +              "properties": {
      +                "faces": {
      +                  "items": {
      +                    "description": "Top-left corner x, y and size w, h, fractions of the picture (centre: x + w/2, y + h/2); score 0–1",
      +                    "properties": {
      +                      "h": {
      +                        "type": "number"
      +                      },
      +                      "score": {
      +                        "type": "number"
      +                      },
      +                      "w": {
      +                        "type": "number"
      +                      },
      +                      "x": {
      +                        "type": "number"
      +                      },
      +                      "y": {
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "x",
      +                      "y",
      +                      "w",
      +                      "h",
      +                      "score"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                },
      +                "time": {
      +                  "type": "number"
      +                }
      +              },
      +              "required": [
      +                "time",
      +                "faces"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "rate": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "rate",
      +          "frames"
      +        ],
      +        "type": "object"
      +      },
      +      "fingerprint": {
      +        "description": "Identity of the file (BLAKE3 of its size and first, middle and last 4 MB), as export.video gives",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "font_family": {
      +        "description": "Fonts: the family; use font_media_id in a text style to set text in it",
      +        "type": "string"
      +      },
      +      "fps": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "den": {
      +                "type": "number"
      +              },
      +              "num": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "num",
      +              "den"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "has_audio": {
      +        "type": "boolean"
      +      },
      +      "has_video": {
      +        "type": "boolean"
      +      },
      +      "height": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "job": {
      +        "description": "media.get, while importing or being made: the job doing it",
      +        "properties": {
      +          "job_id": {
      +            "description": "Job handle; the same value is the MCP task id",
      +            "pattern": "^j_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "progress": {
      +            "type": "number"
      +          },
      +          "seconds_left": {
      +            "type": "number"
      +          },
      +          "status": {
      +            "enum": [
      +              "working",
      +              "completed",
      +              "failed",
      +              "cancelled"
      +            ],
      +            "type": "string"
      +          },
      +          "status_message": {
      +            "type": "string"
      +          },
      +          "tool": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "job_id",
      +          "tool",
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "kind": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "video",
      +              "audio",
      +              "image",
      +              "font",
      +              "lut"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "look": {
      +        "properties": {
      +          "runs": {
      +            "items": {
      +              "properties": {
      +                "frames": {
      +                  "items": {
      +                    "properties": {
      +                      "answers": {
      +                        "additionalProperties": {
      +                          "additionalProperties": {},
      +                          "propertyNames": {
      +                            "type": "string"
      +                          },
      +                          "type": "object"
      +                        },
      +                        "propertyNames": {
      +                          "type": "string"
      +                        },
      +                        "type": "object"
      +                      },
      +                      "time": {
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "time",
      +                      "answers"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                },
      +                "id": {
      +                  "type": "string"
      +                },
      +                "model": {
      +                  "type": "string"
      +                },
      +                "questions": {
      +                  "additionalProperties": {},
      +                  "propertyNames": {
      +                    "type": "string"
      +                  },
      +                  "type": "object"
      +                },
      +                "state": {
      +                  "additionalProperties": {},
      +                  "propertyNames": {
      +                    "type": "string"
      +                  },
      +                  "type": "object"
      +                },
      +                "with_previous": {
      +                  "type": "boolean"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "model",
      +                "questions",
      +                "with_previous",
      +                "frames"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "runs"
      +        ],
      +        "type": "object"
      +      },
      +      "media_id": {
      +        "description": "Media handle from media.import or a create.* tool",
      +        "pattern": "^m_[0-9a-z]{26}$",
      +        "type": "string"
      +      },
      +      "mime_type": {
      +        "description": "Its MIME type, likewise",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "origin": {
      +        "description": "Where it came from, to tell one version from another: the import source, the export of which timeline, or the create.* tool and the media it was made from",
      +        "properties": {
      +          "attached": {
      +            "description": "url: the file the user attached in the chat, passed as media.import file",
      +            "type": "boolean"
      +          },
      +          "file_name": {
      +            "description": "upload: the name the file was sent with",
      +            "type": "string"
      +          },
      +          "frame": {
      +            "description": "still: the frame",
      +            "type": "number"
      +          },
      +          "from": {
      +            "description": "upload: a file the user sent; url: downloaded; path: a media root; render: an export.video; created: a create.* tool; still: a frame of a video or an edit",
      +            "enum": [
      +              "upload",
      +              "url",
      +              "path",
      +              "render",
      +              "created",
      +              "still"
      +            ],
      +            "type": "string"
      +          },
      +          "job_id": {
      +            "description": "render: the export.video job; created: the create.* job",
      +            "pattern": "^j_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "media_id": {
      +            "description": "still: the video the frame is from",
      +            "pattern": "^m_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "media_ids": {
      +            "description": "created: the media it was made from (a cutout's source, a page's assets)",
      +            "items": {
      +              "description": "Media handle from media.import or a create.* tool",
      +              "pattern": "^m_[0-9a-z]{26}$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "path": {
      +            "description": "path: the file it was imported from",
      +            "type": "string"
      +          },
      +          "preset": {
      +            "description": "render: the export preset",
      +            "type": "string"
      +          },
      +          "range": {
      +            "description": "render: the frames exported, when not the whole timeline",
      +            "properties": {
      +              "end": {
      +                "type": "number"
      +              },
      +              "start": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "start",
      +              "end"
      +            ],
      +            "type": "object"
      +          },
      +          "recipe": {
      +            "description": "created: a hash of what it was made from; the same recipe makes the same media",
      +            "type": "string"
      +          },
      +          "sources": {
      +            "description": "render: where each stretch of this file comes from, per track, read from the timeline when it was exported (kept after the timeline expires). With a speed curve, source_in and source_out are the clip's whole source range",
      +            "items": {
      +              "properties": {
      +                "end": {
      +                  "type": "number"
      +                },
      +                "kind": {
      +                  "enum": [
      +                    "video",
      +                    "audio"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_id": {
      +                  "description": "The media this stretch plays",
      +                  "pattern": "^m_[0-9a-z]{26}$",
      +                  "type": "string"
      +                },
      +                "source_in": {
      +                  "description": "Seconds into that media",
      +                  "type": "number"
      +                },
      +                "source_out": {
      +                  "type": "number"
      +                },
      +                "speed": {
      +                  "additionalProperties": {},
      +                  "description": "The clip's speed change, as clip.set_speed set it",
      +                  "propertyNames": {
      +                    "type": "string"
      +                  },
      +                  "type": "object"
      +                },
      +                "start": {
      +                  "description": "Seconds into this file",
      +                  "type": "number"
      +                },
      +                "track_id": {
      +                  "description": "Track of the timeline; outer/inner inside a nested one",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "track_id",
      +                "kind",
      +                "start",
      +                "end",
      +                "media_id",
      +                "source_in",
      +                "source_out"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "timeline_id": {
      +            "description": "render: the timeline that was exported; still: the edit the frame is from",
      +            "pattern": "^tl_[0-9a-f]{32}$",
      +            "type": "string"
      +          },
      +          "tool": {
      +            "description": "created: the create.* tool that made it",
      +            "type": "string"
      +          },
      +          "upload_id": {
      +            "description": "Upload handle from media.upload",
      +            "pattern": "^u_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "url: the address it was downloaded from, without its query string",
      +            "type": "string"
      +          },
      +          "via": {
      +            "description": "upload: sent through a media.upload link, dropped on the cuttingfloor site, or a data: URI",
      +            "enum": [
      +              "media.upload",
      +              "account_page",
      +              "data_uri"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "from"
      +        ],
      +        "type": "object"
      +      },
      +      "page_url": {
      +        "description": "media.get: a page that plays or shows the file in any browser, with no sign-in, to give a person; works until expires_at",
      +        "type": "string"
      +      },
      +      "pages": {
      +        "additionalProperties": {
      +          "properties": {
      +            "first": {
      +              "description": "Index in the whole list of the first item returned (transcript: the word index clip.add source {words} takes)",
      +              "type": "integer"
      +            },
      +            "list": {
      +              "description": "The list paged: transcript.words, beats.beats, faces.frames, speech.probabilities (one per frame_seconds from `from`), speakers.turns, voice.frames, colour.frames, picture.columns (every column alike), or look runs[].frames (each run is cut the same way; first and the counts are the latest run's)",
      +              "type": "string"
      +            },
      +            "matching": {
      +              "description": "Items in the time range (the whole list without one)",
      +              "type": "integer"
      +            },
      +            "next_offset": {
      +              "anyOf": [
      +                {
      +                  "type": "integer"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The offset that gives the next page of this range, or null at its end"
      +            },
      +            "returned": {
      +              "type": "integer"
      +            },
      +            "total": {
      +              "description": "Items in the whole list",
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "list",
      +            "first",
      +            "returned",
      +            "matching",
      +            "total",
      +            "next_offset"
      +          ],
      +          "type": "object"
      +        },
      +        "description": "media.get with a range, offset or limit: per included analysis, which piece of its list came back",
      +        "propertyNames": {
      +          "enum": [
      +            "transcript",
      +            "beats",
      +            "faces",
      +            "look",
      +            "speech",
      +            "sounds",
      +            "speakers",
      +            "voice",
      +            "colour",
      +            "picture"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "probe": {
      +        "description": "media.get: everything FFprobe read from the file, as it gives it: the format and every stream (codec, pix_fmt, color_space, color_primaries, color_transfer, color_range, bit depth, sample rate, channel layout, tags, side data). Not for fonts and LUTs",
      +        "properties": {
      +          "format": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "streams": {
      +            "items": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "format",
      +          "streams"
      +        ],
      +        "type": "object"
      +      },
      +      "sound_seconds": {
      +        "description": "How long the sound runs; under duration_seconds, the end is soundless",
      +        "type": "number"
      +      },
      +      "sounds": {
      +        "description": "With include [\"sounds\"]: the latest media.analyze sounds run, every probability included",
      +        "properties": {
      +          "min_probability": {
      +            "type": "number"
      +          },
      +          "model": {
      +            "type": "string"
      +          },
      +          "peaks": {
      +            "additionalProperties": {
      +              "type": "number"
      +            },
      +            "description": "Per sound reported: the highest probability it reaches anywhere",
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "scores": {
      +            "description": "Every probability, for your own cut-off or arithmetic",
      +            "properties": {
      +              "start_seconds": {
      +                "description": "Where the first value starts: media seconds, or timeline seconds for a timeline",
      +                "type": "number"
      +              },
      +              "step_seconds": {
      +                "description": "Seconds each value covers: 0.04 (every frame) unless asked or too long",
      +                "type": "number"
      +              },
      +              "values": {
      +                "additionalProperties": {
      +                  "items": {
      +                    "type": "number"
      +                  },
      +                  "type": "array"
      +                },
      +                "description": "Per sound, the highest probability in each step, 0 to 1",
      +                "propertyNames": {
      +                  "type": "string"
      +                },
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "start_seconds",
      +              "step_seconds",
      +              "values"
      +            ],
      +            "type": "object"
      +          },
      +          "spans": {
      +            "additionalProperties": {
      +              "items": {
      +                "properties": {
      +                  "end": {
      +                    "description": "Where it ends, on the same clock",
      +                    "type": "number"
      +                  },
      +                  "peak_probability": {
      +                    "type": "number"
      +                  },
      +                  "peak_seconds": {
      +                    "description": "The middle of the most likely frame",
      +                    "type": "number"
      +                  },
      +                  "start": {
      +                    "description": "Where the run of matching 40 ms frames starts: media seconds, or timeline seconds for a timeline",
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "start",
      +                  "end",
      +                  "peak_seconds",
      +                  "peak_probability"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "description": "Per sound: the runs of 40 ms frames at or above min_probability, in time order; empty when it never is",
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "model",
      +          "min_probability",
      +          "spans",
      +          "peaks"
      +        ],
      +        "type": "object"
      +      },
      +      "speech": {
      +        "description": "With include [\"speech\"]: the speech probability of every 32 ms frame",
      +        "properties": {
      +          "frame_seconds": {
      +            "description": "Each probability covers this long",
      +            "type": "number"
      +          },
      +          "from": {
      +            "description": "Seconds where the first probability starts",
      +            "type": "number"
      +          },
      +          "model": {
      +            "type": "string"
      +          },
      +          "probabilities": {
      +            "description": "Speech probability 0–1, one per frame, in order",
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "model",
      +          "frame_seconds",
      +          "from",
      +          "probabilities"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "description": "importing: not probed yet; processing: usable in edits, proxy still rendering; ready; failed",
      +        "enum": [
      +          "importing",
      +          "processing",
      +          "ready",
      +          "failed"
      +        ],
      +        "type": "string"
      +      },
      +      "transcript": {
      +        "description": "With include [\"transcript\"]: every word as {text, start, end, confidence}",
      +        "properties": {
      +          "aligned_by": {
      +            "description": "The model that moved word edges to where the letters sound (English); null: the times are whisper's own, up to about a second off",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "from": {
      +            "description": "The stretch transcribed, if not all",
      +            "type": "number"
      +          },
      +          "language": {
      +            "type": "string"
      +          },
      +          "model": {
      +            "type": "string"
      +          },
      +          "text": {
      +            "type": "string"
      +          },
      +          "until": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "words": {
      +            "description": "Media seconds. Aligned words start and end within about 0.05 s of where their letters sound; an end on a soft consonant (s, t, k, f) or a breath can ring on up to about 0.1 s more. Short ums are often missing from the words; kind speech finds them as speech. A word \"-\" (or one starting with it) is whisper marking a new speaker, as subtitles do: a hint only; kind speakers measures who speaks when",
      +            "items": {
      +              "properties": {
      +                "confidence": {
      +                  "description": "0–1: how sure whisper is of the word itself",
      +                  "type": "number"
      +                },
      +                "end": {
      +                  "type": "number"
      +                },
      +                "speaker": {
      +                  "description": "Who says it, from the latest speakers run",
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                },
      +                "start": {
      +                  "type": "number"
      +                },
      +                "text": {
      +                  "type": "string"
      +                },
      +                "timing_confidence": {
      +                  "description": "0–1: how clearly the letters were heard between start and end; null: not aligned (digits, symbols, other languages), times fitted between neighbours",
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "text",
      +                "start",
      +                "end",
      +                "confidence"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "model",
      +          "language",
      +          "text",
      +          "words"
      +        ],
      +        "type": "object"
      +      },
      +      "upload": {
      +        "description": "media.import {source: {upload}}: where to send the file. It imports once the last byte arrives (the PUT answers with the job_id); media.get says where it stands",
      +        "properties": {
      +          "expires_at": {
      +            "type": "string"
      +          },
      +          "max_bytes": {
      +            "type": "number"
      +          },
      +          "upload_id": {
      +            "description": "Upload handle from media.upload",
      +            "pattern": "^u_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "Signed: PUT the file here; no other credentials needed",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "upload_id",
      +          "url",
      +          "expires_at",
      +          "max_bytes"
      +        ],
      +        "type": "object"
      +      },
      +      "url": {
      +        "description": "media.get: a signed download of the file itself, once it has one",
      +        "type": "string"
      +      },
      +      "warnings": {
      +        "description": "create.motion and create.still: what went wrong in the page as it rendered (uncaught errors, console errors, files blocked or not found, tags never closed). It rendered anyway",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "width": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "media_id",
      +      "name",
      +      "status",
      +      "kind",
      +      "duration_seconds",
      +      "fps",
      +      "width",
      +      "height",
      +      "has_video",
      +      "has_audio",
      +      "codecs",
      +      "conform",
      +      "analysis"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "hint": {
      +        "type": "string"
      +      },
      +      "job_id": {
      +        "description": "Job handle; the same value is the MCP task id",
      +        "pattern": "^j_[0-9a-z]{26}$",
      +        "type": "string"
      +      },
      +      "media_id": {
      +        "description": "The media it is making; usable in edits once processing",
      +        "pattern": "^m_[0-9a-z]{26}$",
      +        "type": "string"
      +      },
      +      "status": {
      +        "enum": [
      +          "working",
      +          "completed",
      +          "failed",
      +          "cancelled"
      +        ],
      +        "type": "string"
      +      },
      +      "status_uri": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "job_id",
      +      "status",
      +      "status_uri",
      +      "hint"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "analyses": {
      -        "description": "Summaries of media.analyze results (counts, not data); include puts each in full at the top level",
      -        "properties": {
      -          "beats": {
      -            "properties": {
      -              "beats": {
      -                "type": "number"
      -              },
      -              "bpm": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "bpm",
      -              "beats"
      -            ],
      -            "type": "object"
      -          },
      -          "faces": {
      -            "properties": {
      -              "frames_with_faces": {
      -                "type": "number"
      -              },
      -              "rate": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "rate",
      -              "frames_with_faces"
      -            ],
      -            "type": "object"
      -          },
      -          "look": {
      -            "description": "frames and questions: the latest run",
      -            "properties": {
      -              "frames": {
      -                "type": "number"
      -              },
      -              "questions": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "runs": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "runs",
      -              "frames",
      -              "questions"
      -            ],
      -            "type": "object"
      -          },
      -          "sounds": {
      -            "description": "heard: the sounds the latest run found at or above its min_probability",
      -            "properties": {
      -              "heard": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "min_probability": {
      -                "type": "number"
      -              },
      -              "model": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "model",
      -              "min_probability",
      -              "heard"
      -            ],
      -            "type": "object"
      -          },
      -          "speech": {
      -            "properties": {
      -              "frame_seconds": {
      -                "type": "number"
      -              },
      -              "frames": {
      -                "type": "number"
      -              },
      -              "model": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "model",
      -              "frames",
      -              "frame_seconds"
      -            ],
      -            "type": "object"
      -          },
      -          "transcript": {
      -            "properties": {
      -              "language": {
      -                "type": "string"
      -              },
      -              "model": {
      -                "type": "string"
      -              },
      -              "words": {
      -                "description": "How many words; the words themselves are in transcript.words",
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "model",
      -              "language",
      -              "words"
      -            ],
      -            "type": "object"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "analysis": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "loudness_lufs": {
      -                "description": "Integrated loudness at import",
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              }
      -            },
      -            "required": [
      -              "loudness_lufs"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "beats": {
      -        "properties": {
      -          "beats": {
      -            "items": {
      -              "type": "number"
      -            },
      -            "type": "array"
      -          },
      -          "bpm": {
      -            "type": "number"
      -          },
      -          "downbeats": {
      -            "items": {
      -              "type": "number"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "bpm",
      -          "beats",
      -          "downbeats"
      -        ],
      -        "type": "object"
      -      },
      -      "codecs": {
      -        "properties": {
      -          "audio": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "video": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "video",
      -          "audio"
      -        ],
      -        "type": "object"
      -      },
      -      "conform": {
      -        "description": "Why a mezzanine was made (vfr, rotation, hdr, codec); empty when not needed",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "created_at": {
      -        "description": "When it was imported or made",
      -        "type": "string"
      -      },
      -      "duration_seconds": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "error": {
      -        "properties": {
      -          "code": {
      -            "enum": [
      -              "bad_request",
      -              "no_audio",
      -              "not_found",
      -              "expired",
      -              "media_not_ready",
      -              "media_offline",
      -              "engine_error",
      -              "render_failed",
      -              "interrupted",
      -              "cancelled",
      -              "credential_required",
      -              "credential_invalid",
      -              "output_exists",
      -              "path_not_allowed",
      -              "limit_exceeded",
      -              "quota_exceeded",
      -              "subscription_required",
      -              "email_unverified",
      -              "service_unavailable",
      -              "server_busy"
      -            ],
      -            "type": "string"
      -          },
      -          "detail": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "hint": {
      -            "type": "string"
      -          },
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "expires_at": {
      -        "description": "When url and page_url stop working",
      -        "type": "string"
      -      },
      -      "extension": {
      -        "description": "The extension its format takes (.png, .mp4), from the file itself, not its name",
      -        "type": "string"
      -      },
      -      "faces": {
      -        "properties": {
      -          "frames": {
      -            "items": {
      -              "properties": {
      -                "faces": {
      -                  "items": {
      -                    "properties": {
      -                      "h": {
      -                        "type": "number"
      -                      },
      -                      "score": {
      -                        "type": "number"
      -                      },
      -                      "w": {
      -                        "type": "number"
      -                      },
      -                      "x": {
      -                        "type": "number"
      -                      },
      -                      "y": {
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "x",
      -                      "y",
      -                      "w",
      -                      "h",
      -                      "score"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "type": "array"
      -                },
      -                "time": {
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "time",
      -                "faces"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "rate": {
      -            "type": "number"
      -          }
      -        },
      -        "required": [
      -          "rate",
      -          "frames"
      -        ],
      -        "type": "object"
      -      },
      -      "font_family": {
      -        "description": "Fonts: the family; use font_media_id in a text style to set text in it",
      -        "type": "string"
      -      },
      -      "fps": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "den": {
      -                "type": "number"
      -              },
      -              "num": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "num",
      -              "den"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "has_audio": {
      -        "type": "boolean"
      -      },
      -      "has_video": {
      -        "type": "boolean"
      -      },
      -      "height": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "kind": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "video",
      -              "audio",
      -              "image",
      -              "font",
      -              "lut"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "look": {
      -        "properties": {
      -          "runs": {
      -            "items": {
      -              "properties": {
      -                "frames": {
      -                  "items": {
      -                    "properties": {
      -                      "answers": {
      -                        "additionalProperties": {
      -                          "additionalProperties": {},
      -                          "propertyNames": {
      -                            "type": "string"
      -                          },
      -                          "type": "object"
      -                        },
      -                        "propertyNames": {
      -                          "type": "string"
      -                        },
      -                        "type": "object"
      -                      },
      -                      "time": {
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "time",
      -                      "answers"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "type": "array"
      -                },
      -                "id": {
      -                  "type": "string"
      -                },
      -                "model": {
      -                  "type": "string"
      -                },
      -                "questions": {
      -                  "additionalProperties": {},
      -                  "propertyNames": {
      -                    "type": "string"
      -                  },
      -                  "type": "object"
      -                },
      -                "state": {
      -                  "additionalProperties": {},
      -                  "propertyNames": {
      -                    "type": "string"
      -                  },
      -                  "type": "object"
      -                },
      -                "with_previous": {
      -                  "type": "boolean"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "model",
      -                "questions",
      -                "with_previous",
      -                "frames"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "runs"
      -        ],
      -        "type": "object"
      -      },
      -      "media_id": {
      -        "description": "Media handle from media.import or a create.* tool",
      -        "pattern": "^m_[0-9a-z]{26}$",
      -        "type": "string"
      -      },
      -      "mime_type": {
      -        "description": "Its MIME type, likewise",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "origin": {
      -        "description": "Where it came from, to tell one version from another: the import source, the export of which timeline, or the create.* tool and the media it was made from",
      -        "properties": {
      -          "attached": {
      -            "description": "url: the file the user attached in the chat, passed as media.import file",
      -            "type": "boolean"
      -          },
      -          "file_name": {
      -            "description": "upload: the name the file was sent with",
      -            "type": "string"
      -          },
      -          "from": {
      -            "description": "upload: a file the user sent; url: downloaded; path: a media root; render: an export.video; created: a create.* tool",
      -            "enum": [
      -              "upload",
      -              "url",
      -              "path",
      -              "render",
      -              "created"
      -            ],
      -            "type": "string"
      -          },
      -          "job_id": {
      -            "description": "render: the export.video job; created: the create.* job",
      -            "pattern": "^j_[0-9a-z]{26}$",
      -            "type": "string"
      -          },
      -          "media_ids": {
      -            "description": "created: the media it was made from (a cutout's source, a page's assets)",
      -            "items": {
      -              "description": "Media handle from media.import or a create.* tool",
      -              "pattern": "^m_[0-9a-z]{26}$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "path": {
      -            "description": "path: the file it was imported from",
      -            "type": "string"
      -          },
      -          "preset": {
      -            "description": "render: the export preset",
      -            "type": "string"
      -          },
      -          "range": {
      -            "description": "render: the frames exported, when not the whole timeline",
      -            "properties": {
      -              "end": {
      -                "type": "number"
      -              },
      -              "start": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "start",
      -              "end"
      -            ],
      -            "type": "object"
      -          },
      -          "recipe": {
      -            "description": "created: a hash of what it was made from; the same recipe makes the same media",
      -            "type": "string"
      -          },
      -          "sources": {
      -            "description": "render: where each stretch of this file comes from, per track, read from the timeline when it was exported (kept after the timeline expires). With a speed curve, source_in and source_out are the clip's whole source range",
      -            "items": {
      -              "properties": {
      -                "end": {
      -                  "type": "number"
      -                },
      -                "kind": {
      -                  "enum": [
      -                    "video",
      -                    "audio"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_id": {
      -                  "description": "The media this stretch plays",
      -                  "pattern": "^m_[0-9a-z]{26}$",
      -                  "type": "string"
      -                },
      -                "source_in": {
      -                  "description": "Seconds into that media",
      -                  "type": "number"
      -                },
      -                "source_out": {
      -                  "type": "number"
      -                },
      -                "speed": {
      -                  "additionalProperties": {},
      -                  "description": "The clip's speed change, as clip.set_speed set it",
      -                  "propertyNames": {
      -                    "type": "string"
      -                  },
      -                  "type": "object"
      -                },
      -                "start": {
      -                  "description": "Seconds into this file",
      -                  "type": "number"
      -                },
      -                "track_id": {
      -                  "description": "Track of the timeline; outer/inner inside a nested one",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "track_id",
      -                "kind",
      -                "start",
      -                "end",
      -                "media_id",
      -                "source_in",
      -                "source_out"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "timeline_id": {
      -            "description": "render: the timeline that was exported",
      -            "pattern": "^tl_[0-9a-f]{32}$",
      -            "type": "string"
      -          },
      -          "tool": {
      -            "description": "created: the create.* tool that made it",
      -            "type": "string"
      -          },
      -          "upload_id": {
      -            "description": "Upload handle from media.upload",
      -            "pattern": "^u_[0-9a-z]{26}$",
      -            "type": "string"
      -          },
      -          "url": {
      -            "description": "url: the address it was downloaded from, without its query string",
      -            "type": "string"
      -          },
      -          "via": {
      -            "description": "upload: sent through a media.upload link, dropped on the account page, or a data: URI",
      -            "enum": [
      -              "media.upload",
      -              "account_page",
      -              "data_uri"
      -            ],
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "from"
      -        ],
      -        "type": "object"
      -      },
      -      "page_url": {
      -        "description": "media.get: a page that plays or shows the file in any browser, with no sign-in, to give a person; works until expires_at",
      -        "type": "string"
      -      },
      -      "pages": {
      -        "additionalProperties": {
      -          "properties": {
      -            "first": {
      -              "description": "Index in the whole list of the first item returned (transcript: the word index clip.add source {words} takes)",
      -              "type": "integer"
      -            },
      -            "list": {
      -              "description": "The list paged: transcript.words, beats.beats, faces.frames, speech.probabilities (one per frame_seconds from `from`), or look runs[].frames (each run is cut the same way; first and the counts are the latest run's)",
      -              "type": "string"
      -            },
      -            "matching": {
      -              "description": "Items in the time range (the whole list without one)",
      -              "type": "integer"
      -            },
      -            "next_offset": {
      -              "anyOf": [
      -                {
      -                  "type": "integer"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "The offset that gives the next page of this range, or null at its end"
      -            },
      -            "returned": {
      -              "type": "integer"
      -            },
      -            "total": {
      -              "description": "Items in the whole list",
      -              "type": "integer"
      -            }
      -          },
      -          "required": [
      -            "list",
      -            "first",
      -            "returned",
      -            "matching",
      -            "total",
      -            "next_offset"
      -          ],
      -          "type": "object"
      -        },
      -        "description": "media.get with a range, offset or limit: per included analysis, which piece of its list came back",
      -        "propertyNames": {
      -          "enum": [
      -            "transcript",
      -            "beats",
      -            "faces",
      -            "look",
      -            "speech",
      -            "sounds"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "object"
      -      },
      -      "probe": {
      -        "description": "media.get: everything FFprobe read from the file, as it gives it: the format and every stream (codec, pix_fmt, color_space, color_primaries, color_transfer, color_range, bit depth, sample rate, channel layout, tags, side data). Not for fonts and LUTs",
      -        "properties": {
      -          "format": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "streams": {
      -            "items": {
      -              "additionalProperties": {},
      -              "propertyNames": {
      -                "type": "string"
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "format",
      -          "streams"
      -        ],
      -        "type": "object"
      -      },
      -      "sounds": {
      -        "description": "With include [\"sounds\"]: the latest media.analyze sounds run, every probability included",
      -        "properties": {
      -          "min_probability": {
      -            "type": "number"
      -          },
      -          "model": {
      -            "type": "string"
      -          },
      -          "peaks": {
      -            "additionalProperties": {
      -              "type": "number"
      -            },
      -            "description": "Per sound reported: the highest probability it reaches anywhere",
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "scores": {
      -            "description": "Every probability, for your own cut-off or arithmetic",
      -            "properties": {
      -              "start_seconds": {
      -                "description": "Where the first value starts: media seconds, or timeline seconds for a timeline",
      -                "type": "number"
      -              },
      -              "step_seconds": {
      -                "description": "Seconds each value covers: 0.04 (every frame) unless asked or too long",
      -                "type": "number"
      -              },
      -              "values": {
      -                "additionalProperties": {
      -                  "items": {
      -                    "type": "number"
      -                  },
      -                  "type": "array"
      -                },
      -                "description": "Per sound, the highest probability in each step, 0 to 1",
      -                "propertyNames": {
      -                  "type": "string"
      -                },
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "start_seconds",
      -              "step_seconds",
      -              "values"
      -            ],
      -            "type": "object"
      -          },
      -          "spans": {
      -            "additionalProperties": {
      -              "items": {
      -                "properties": {
      -                  "end": {
      -                    "description": "Where it ends, on the same clock",
      -                    "type": "number"
      -                  },
      -                  "peak_probability": {
      -                    "type": "number"
      -                  },
      -                  "peak_seconds": {
      -                    "description": "The middle of the most likely frame",
      -                    "type": "number"
      -                  },
      -                  "start": {
      -                    "description": "Where the run of matching 40 ms frames starts: media seconds, or timeline seconds for a timeline",
      -                    "type": "number"
      -                  }
      -                },
      -                "required": [
      -                  "start",
      -                  "end",
      -                  "peak_seconds",
      -                  "peak_probability"
      -                ],
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            "description": "Per sound: the runs of 40 ms frames at or above min_probability, in time order; empty when it never is",
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "model",
      -          "min_probability",
      -          "spans",
      -          "peaks"
      -        ],
      -        "type": "object"
      -      },
      -      "speech": {
      -        "description": "With include [\"speech\"]: the speech probability of every 32 ms frame",
      -        "properties": {
      -          "frame_seconds": {
      -            "description": "Each probability covers this long",
      -            "type": "number"
      -          },
      -          "from": {
      -            "description": "Seconds where the first probability starts",
      -            "type": "number"
      -          },
      -          "model": {
      -            "type": "string"
      -          },
      -          "probabilities": {
      -            "description": "Speech probability 0–1, one per frame, in order",
      -            "items": {
      -              "type": "number"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "model",
      -          "frame_seconds",
      -          "from",
      -          "probabilities"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "description": "importing: not probed yet; processing: usable in edits, proxy still rendering; ready; failed",
      -        "enum": [
      -          "importing",
      -          "processing",
      -          "ready",
      -          "failed"
      -        ],
      -        "type": "string"
      -      },
      -      "transcript": {
      -        "description": "With include [\"transcript\"]: every word as {text, start, end, confidence}",
      -        "properties": {
      -          "aligned_by": {
      -            "description": "The model that moved word edges to where the letters sound (English); null: the times are whisper's own, up to about a second off",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "language": {
      -            "type": "string"
      -          },
      -          "model": {
      -            "type": "string"
      -          },
      -          "text": {
      -            "type": "string"
      -          },
      -          "words": {
      -            "description": "Media seconds. Aligned words start and end within about 0.05 s of where their letters sound; an end on a soft consonant (s, t, k, f) or a breath can ring on up to about 0.1 s more. Short ums are often missing from the words; kind speech finds them as speech",
      -            "items": {
      -              "properties": {
      -                "confidence": {
      -                  "description": "0–1: how sure whisper is of the word itself",
      -                  "type": "number"
      -                },
      -                "end": {
      -                  "type": "number"
      -                },
      -                "start": {
      -                  "type": "number"
      -                },
      -                "text": {
      -                  "type": "string"
      -                },
      -                "timing_confidence": {
      -                  "description": "0–1: how clearly the letters were heard between start and end; null: not aligned (digits, symbols, other languages), times fitted between neighbours",
      -                  "type": [
      -                    "number",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "text",
      -                "start",
      -                "end",
      -                "confidence"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "model",
      -          "language",
      -          "text",
      -          "words"
      -        ],
      -        "type": "object"
      -      },
      -      "upload": {
      -        "description": "media.import {source: {upload}}: where to send the file. It imports once the last byte arrives (the PUT answers with the job_id); media.get says where it stands",
      -        "properties": {
      -          "expires_at": {
      -            "type": "string"
      -          },
      -          "max_bytes": {
      -            "type": "number"
      -          },
      -          "upload_id": {
      -            "description": "Upload handle from media.upload",
      -            "pattern": "^u_[0-9a-z]{26}$",
      -            "type": "string"
      -          },
      -          "url": {
      -            "description": "Signed: PUT the file here; no other credentials needed",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "upload_id",
      -          "url",
      -          "expires_at",
      -          "max_bytes"
      -        ],
      -        "type": "object"
      -      },
      -      "url": {
      -        "description": "media.get: a signed download of the file itself, once it has one",
      -        "type": "string"
      -      },
      -      "warnings": {
      -        "description": "create.motion and create.still: what went wrong in the page as it rendered (uncaught errors, console errors, files blocked or not found, tags never closed). It rendered anyway",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "width": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "media_id",
      -      "name",
      -      "status",
      -      "kind",
      -      "duration_seconds",
      -      "fps",
      -      "width",
      -      "height",
      -      "has_video",
      -      "has_audio",
      -      "codecs",
      -      "conform",
      -      "analysis"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "hint": {
      -        "type": "string"
      -      },
      -      "job_id": {
      -        "description": "Job handle; the same value is the MCP task id",
      -        "pattern": "^j_[0-9a-z]{26}$",
      -        "type": "string"
      -      },
      -      "media_id": {
      -        "description": "The media it is making; usable in edits once processing",
      -        "pattern": "^m_[0-9a-z]{26}$",
      -        "type": "string"
      -      },
      -      "status": {
      -        "enum": [
      -          "working",
      -          "completed",
      -          "failed",
      -          "cancelled"
      -        ],
      -        "type": "string"
      -      },
      -      "status_uri": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "job_id",
      -      "status",
      -      "status_uri",
      -      "hint"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "analyses": {
      +        "description": "Summaries of media.analyze results (counts, not data); include puts each in full at the top level",
      +        "properties": {
      +          "beats": {
      +            "properties": {
      +              "beats": {
      +                "type": "number"
      +              },
      +              "bpm": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "bpm",
      +              "beats"
      +            ],
      +            "type": "object"
      +          },
      +          "colour": {
      +            "properties": {
      +              "frames": {
      +                "type": "number"
      +              },
      +              "regions": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "required": [
      +              "frames",
      +              "regions"
      +            ],
      +            "type": "object"
      +          },
      +          "faces": {
      +            "properties": {
      +              "frames_with_faces": {
      +                "type": "number"
      +              },
      +              "rate": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "rate",
      +              "frames_with_faces"
      +            ],
      +            "type": "object"
      +          },
      +          "look": {
      +            "description": "frames and questions: the latest run",
      +            "properties": {
      +              "frames": {
      +                "type": "number"
      +              },
      +              "questions": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "runs": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "runs",
      +              "frames",
      +              "questions"
      +            ],
      +            "type": "object"
      +          },
      +          "picture": {
      +            "properties": {
      +              "frames": {
      +                "type": "number"
      +              },
      +              "from": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "frames",
      +              "from"
      +            ],
      +            "type": "object"
      +          },
      +          "sounds": {
      +            "description": "heard: the sounds the latest run found at or above its min_probability",
      +            "properties": {
      +              "heard": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "min_probability": {
      +                "type": "number"
      +              },
      +              "model": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "model",
      +              "min_probability",
      +              "heard"
      +            ],
      +            "type": "object"
      +          },
      +          "speakers": {
      +            "properties": {
      +              "model": {
      +                "type": "string"
      +              },
      +              "speakers": {
      +                "type": "number"
      +              },
      +              "turns": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "model",
      +              "speakers",
      +              "turns"
      +            ],
      +            "type": "object"
      +          },
      +          "speech": {
      +            "properties": {
      +              "frame_seconds": {
      +                "type": "number"
      +              },
      +              "frames": {
      +                "type": "number"
      +              },
      +              "model": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "model",
      +              "frames",
      +              "frame_seconds"
      +            ],
      +            "type": "object"
      +          },
      +          "transcript": {
      +            "properties": {
      +              "language": {
      +                "type": "string"
      +              },
      +              "model": {
      +                "type": "string"
      +              },
      +              "words": {
      +                "description": "How many words; the words themselves are in transcript.words",
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "model",
      +              "language",
      +              "words"
      +            ],
      +            "type": "object"
      +          },
      +          "voice": {
      +            "additionalProperties": {},
      +            "description": "frames, and the summary media.analyze voice gives",
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "analysis": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "channels": {
      +                "description": "Each channel at import",
      +                "items": {
      +                  "properties": {
      +                    "channel": {
      +                      "exclusiveMinimum": 0,
      +                      "type": "integer"
      +                    },
      +                    "noise_floor_dbfs": {
      +                      "type": [
      +                        "number",
      +                        "null"
      +                      ]
      +                    },
      +                    "peak_dbfs": {
      +                      "type": [
      +                        "number",
      +                        "null"
      +                      ]
      +                    },
      +                    "rms_dbfs": {
      +                      "type": [
      +                        "number",
      +                        "null"
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "channel",
      +                    "rms_dbfs",
      +                    "peak_dbfs",
      +                    "noise_floor_dbfs"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "loudness_lufs": {
      +                "description": "Integrated loudness at import",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "loudness_lufs"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "beats": {
      +        "properties": {
      +          "beats": {
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": "array"
      +          },
      +          "bpm": {
      +            "type": "number"
      +          },
      +          "downbeats": {
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": "array"
      +          },
      +          "strengths": {
      +            "description": "Per beat: its onset strength, 0–1 of the strongest in the sound",
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "bpm",
      +          "beats",
      +          "downbeats"
      +        ],
      +        "type": "object"
      +      },
      +      "codecs": {
      +        "properties": {
      +          "audio": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "video": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "video",
      +          "audio"
      +        ],
      +        "type": "object"
      +      },
      +      "conform": {
      +        "description": "Why a mezzanine was made (vfr, rotation, hdr, codec); empty when not needed",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "created_at": {
      +        "description": "When it was imported or made",
      +        "type": "string"
      +      },
      +      "duration_seconds": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "error": {
      +        "properties": {
      +          "code": {
      +            "enum": [
      +              "bad_request",
      +              "no_audio",
      +              "not_found",
      +              "expired",
      +              "media_not_ready",
      +              "media_offline",
      +              "engine_error",
      +              "render_failed",
      +              "interrupted",
      +              "stalled",
      +              "cancelled",
      +              "credential_required",
      +              "credential_invalid",
      +              "output_exists",
      +              "path_not_allowed",
      +              "limit_exceeded",
      +              "quota_exceeded",
      +              "subscription_required",
      +              "email_unverified",
      +              "service_unavailable",
      +              "server_busy"
      +            ],
      +            "type": "string"
      +          },
      +          "detail": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "hint": {
      +            "type": "string"
      +          },
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "expires_at": {
      +        "description": "When url and page_url stop working",
      +        "type": "string"
      +      },
      +      "extension": {
      +        "description": "The extension its format takes (.png, .mp4), from the file itself, not its name",
      +        "type": "string"
      +      },
      +      "faces": {
      +        "properties": {
      +          "frames": {
      +            "items": {
      +              "properties": {
      +                "faces": {
      +                  "items": {
      +                    "description": "Top-left corner x, y and size w, h, fractions of the picture (centre: x + w/2, y + h/2); score 0–1",
      +                    "properties": {
      +                      "h": {
      +                        "type": "number"
      +                      },
      +                      "score": {
      +                        "type": "number"
      +                      },
      +                      "w": {
      +                        "type": "number"
      +                      },
      +                      "x": {
      +                        "type": "number"
      +                      },
      +                      "y": {
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "x",
      +                      "y",
      +                      "w",
      +                      "h",
      +                      "score"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                },
      +                "time": {
      +                  "type": "number"
      +                }
      +              },
      +              "required": [
      +                "time",
      +                "faces"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "rate": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "rate",
      +          "frames"
      +        ],
      +        "type": "object"
      +      },
      +      "fingerprint": {
      +        "description": "Identity of the file (BLAKE3 of its size and first, middle and last 4 MB), as export.video gives",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "font_family": {
      +        "description": "Fonts: the family; use font_media_id in a text style to set text in it",
      +        "type": "string"
      +      },
      +      "fps": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "den": {
      +                "type": "number"
      +              },
      +              "num": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "num",
      +              "den"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "has_audio": {
      +        "type": "boolean"
      +      },
      +      "has_video": {
      +        "type": "boolean"
      +      },
      +      "height": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "job": {
      +        "description": "media.get, while importing or being made: the job doing it",
      +        "properties": {
      +          "job_id": {
      +            "description": "Job handle; the same value is the MCP task id",
      +            "pattern": "^j_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "progress": {
      +            "type": "number"
      +          },
      +          "seconds_left": {
      +            "type": "number"
      +          },
      +          "status": {
      +            "enum": [
      +              "working",
      +              "completed",
      +              "failed",
      +              "cancelled"
      +            ],
      +            "type": "string"
      +          },
      +          "status_message": {
      +            "type": "string"
      +          },
      +          "tool": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "job_id",
      +          "tool",
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "kind": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "video",
      +              "audio",
      +              "image",
      +              "font",
      +              "lut"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "look": {
      +        "properties": {
      +          "runs": {
      +            "items": {
      +              "properties": {
      +                "frames": {
      +                  "items": {
      +                    "properties": {
      +                      "answers": {
      +                        "additionalProperties": {
      +                          "additionalProperties": {},
      +                          "propertyNames": {
      +                            "type": "string"
      +                          },
      +                          "type": "object"
      +                        },
      +                        "propertyNames": {
      +                          "type": "string"
      +                        },
      +                        "type": "object"
      +                      },
      +                      "time": {
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "time",
      +                      "answers"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                },
      +                "id": {
      +                  "type": "string"
      +                },
      +                "model": {
      +                  "type": "string"
      +                },
      +                "questions": {
      +                  "additionalProperties": {},
      +                  "propertyNames": {
      +                    "type": "string"
      +                  },
      +                  "type": "object"
      +                },
      +                "state": {
      +                  "additionalProperties": {},
      +                  "propertyNames": {
      +                    "type": "string"
      +                  },
      +                  "type": "object"
      +                },
      +                "with_previous": {
      +                  "type": "boolean"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "model",
      +                "questions",
      +                "with_previous",
      +                "frames"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "runs"
      +        ],
      +        "type": "object"
      +      },
      +      "media_id": {
      +        "description": "Media handle from media.import or a create.* tool",
      +        "pattern": "^m_[0-9a-z]{26}$",
      +        "type": "string"
      +      },
      +      "mime_type": {
      +        "description": "Its MIME type, likewise",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "origin": {
      +        "description": "Where it came from, to tell one version from another: the import source, the export of which timeline, or the create.* tool and the media it was made from",
      +        "properties": {
      +          "attached": {
      +            "description": "url: the file the user attached in the chat, passed as media.import file",
      +            "type": "boolean"
      +          },
      +          "file_name": {
      +            "description": "upload: the name the file was sent with",
      +            "type": "string"
      +          },
      +          "frame": {
      +            "description": "still: the frame",
      +            "type": "number"
      +          },
      +          "from": {
      +            "description": "upload: a file the user sent; url: downloaded; path: a media root; render: an export.video; created: a create.* tool; still: a frame of a video or an edit",
      +            "enum": [
      +              "upload",
      +              "url",
      +              "path",
      +              "render",
      +              "created",
      +              "still"
      +            ],
      +            "type": "string"
      +          },
      +          "job_id": {
      +            "description": "render: the export.video job; created: the create.* job",
      +            "pattern": "^j_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "media_id": {
      +            "description": "still: the video the frame is from",
      +            "pattern": "^m_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "media_ids": {
      +            "description": "created: the media it was made from (a cutout's source, a page's assets)",
      +            "items": {
      +              "description": "Media handle from media.import or a create.* tool",
      +              "pattern": "^m_[0-9a-z]{26}$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "path": {
      +            "description": "path: the file it was imported from",
      +            "type": "string"
      +          },
      +          "preset": {
      +            "description": "render: the export preset",
      +            "type": "string"
      +          },
      +          "range": {
      +            "description": "render: the frames exported, when not the whole timeline",
      +            "properties": {
      +              "end": {
      +                "type": "number"
      +              },
      +              "start": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "start",
      +              "end"
      +            ],
      +            "type": "object"
      +          },
      +          "recipe": {
      +            "description": "created: a hash of what it was made from; the same recipe makes the same media",
      +            "type": "string"
      +          },
      +          "sources": {
      +            "description": "render: where each stretch of this file comes from, per track, read from the timeline when it was exported (kept after the timeline expires). With a speed curve, source_in and source_out are the clip's whole source range",
      +            "items": {
      +              "properties": {
      +                "end": {
      +                  "type": "number"
      +                },
      +                "kind": {
      +                  "enum": [
      +                    "video",
      +                    "audio"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_id": {
      +                  "description": "The media this stretch plays",
      +                  "pattern": "^m_[0-9a-z]{26}$",
      +                  "type": "string"
      +                },
      +                "source_in": {
      +                  "description": "Seconds into that media",
      +                  "type": "number"
      +                },
      +                "source_out": {
      +                  "type": "number"
      +                },
      +                "speed": {
      +                  "additionalProperties": {},
      +                  "description": "The clip's speed change, as clip.set_speed set it",
      +                  "propertyNames": {
      +                    "type": "string"
      +                  },
      +                  "type": "object"
      +                },
      +                "start": {
      +                  "description": "Seconds into this file",
      +                  "type": "number"
      +                },
      +                "track_id": {
      +                  "description": "Track of the timeline; outer/inner inside a nested one",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "track_id",
      +                "kind",
      +                "start",
      +                "end",
      +                "media_id",
      +                "source_in",
      +                "source_out"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "timeline_id": {
      +            "description": "render: the timeline that was exported; still: the edit the frame is from",
      +            "pattern": "^tl_[0-9a-f]{32}$",
      +            "type": "string"
      +          },
      +          "tool": {
      +            "description": "created: the create.* tool that made it",
      +            "type": "string"
      +          },
      +          "upload_id": {
      +            "description": "Upload handle from media.upload",
      +            "pattern": "^u_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "url: the address it was downloaded from, without its query string",
      +            "type": "string"
      +          },
      +          "via": {
      +            "description": "upload: sent through a media.upload link, dropped on the account page, or a data: URI",
      +            "enum": [
      +              "media.upload",
      +              "account_page",
      +              "data_uri"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "from"
      +        ],
      +        "type": "object"
      +      },
      +      "page_url": {
      +        "description": "media.get: a page that plays or shows the file in any browser, with no sign-in, to give a person; works until expires_at",
      +        "type": "string"
      +      },
      +      "pages": {
      +        "additionalProperties": {
      +          "properties": {
      +            "first": {
      +              "description": "Index in the whole list of the first item returned (transcript: the word index clip.add source {words} takes)",
      +              "type": "integer"
      +            },
      +            "list": {
      +              "description": "The list paged: transcript.words, beats.beats, faces.frames, speech.probabilities (one per frame_seconds from `from`), speakers.turns, voice.frames, colour.frames, picture.columns (every column alike), or look runs[].frames (each run is cut the same way; first and the counts are the latest run's)",
      +              "type": "string"
      +            },
      +            "matching": {
      +              "description": "Items in the time range (the whole list without one)",
      +              "type": "integer"
      +            },
      +            "next_offset": {
      +              "anyOf": [
      +                {
      +                  "type": "integer"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The offset that gives the next page of this range, or null at its end"
      +            },
      +            "returned": {
      +              "type": "integer"
      +            },
      +            "total": {
      +              "description": "Items in the whole list",
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "list",
      +            "first",
      +            "returned",
      +            "matching",
      +            "total",
      +            "next_offset"
      +          ],
      +          "type": "object"
      +        },
      +        "description": "media.get with a range, offset or limit: per included analysis, which piece of its list came back",
      +        "propertyNames": {
      +          "enum": [
      +            "transcript",
      +            "beats",
      +            "faces",
      +            "look",
      +            "speech",
      +            "sounds",
      +            "speakers",
      +            "voice",
      +            "colour",
      +            "picture"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "probe": {
      +        "description": "media.get: everything FFprobe read from the file, as it gives it: the format and every stream (codec, pix_fmt, color_space, color_primaries, color_transfer, color_range, bit depth, sample rate, channel layout, tags, side data). Not for fonts and LUTs",
      +        "properties": {
      +          "format": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "streams": {
      +            "items": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "format",
      +          "streams"
      +        ],
      +        "type": "object"
      +      },
      +      "sound_seconds": {
      +        "description": "How long the sound runs; under duration_seconds, the end is soundless",
      +        "type": "number"
      +      },
      +      "sounds": {
      +        "description": "With include [\"sounds\"]: the latest media.analyze sounds run, every probability included",
      +        "properties": {
      +          "min_probability": {
      +            "type": "number"
      +          },
      +          "model": {
      +            "type": "string"
      +          },
      +          "peaks": {
      +            "additionalProperties": {
      +              "type": "number"
      +            },
      +            "description": "Per sound reported: the highest probability it reaches anywhere",
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "scores": {
      +            "description": "Every probability, for your own cut-off or arithmetic",
      +            "properties": {
      +              "start_seconds": {
      +                "description": "Where the first value starts: media seconds, or timeline seconds for a timeline",
      +                "type": "number"
      +              },
      +              "step_seconds": {
      +                "description": "Seconds each value covers: 0.04 (every frame) unless asked or too long",
      +                "type": "number"
      +              },
      +              "values": {
      +                "additionalProperties": {
      +                  "items": {
      +                    "type": "number"
      +                  },
      +                  "type": "array"
      +                },
      +                "description": "Per sound, the highest probability in each step, 0 to 1",
      +                "propertyNames": {
      +                  "type": "string"
      +                },
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "start_seconds",
      +              "step_seconds",
      +              "values"
      +            ],
      +            "type": "object"
      +          },
      +          "spans": {
      +            "additionalProperties": {
      +              "items": {
      +                "properties": {
      +                  "end": {
      +                    "description": "Where it ends, on the same clock",
      +                    "type": "number"
      +                  },
      +                  "peak_probability": {
      +                    "type": "number"
      +                  },
      +                  "peak_seconds": {
      +                    "description": "The middle of the most likely frame",
      +                    "type": "number"
      +                  },
      +                  "start": {
      +                    "description": "Where the run of matching 40 ms frames starts: media seconds, or timeline seconds for a timeline",
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "start",
      +                  "end",
      +                  "peak_seconds",
      +                  "peak_probability"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "description": "Per sound: the runs of 40 ms frames at or above min_probability, in time order; empty when it never is",
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "model",
      +          "min_probability",
      +          "spans",
      +          "peaks"
      +        ],
      +        "type": "object"
      +      },
      +      "speech": {
      +        "description": "With include [\"speech\"]: the speech probability of every 32 ms frame",
      +        "properties": {
      +          "frame_seconds": {
      +            "description": "Each probability covers this long",
      +            "type": "number"
      +          },
      +          "from": {
      +            "description": "Seconds where the first probability starts",
      +            "type": "number"
      +          },
      +          "model": {
      +            "type": "string"
      +          },
      +          "probabilities": {
      +            "description": "Speech probability 0–1, one per frame, in order",
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "model",
      +          "frame_seconds",
      +          "from",
      +          "probabilities"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "description": "importing: not probed yet; processing: usable in edits, proxy still rendering; ready; failed",
      +        "enum": [
      +          "importing",
      +          "processing",
      +          "ready",
      +          "failed"
      +        ],
      +        "type": "string"
      +      },
      +      "transcript": {
      +        "description": "With include [\"transcript\"]: every word as {text, start, end, confidence}",
      +        "properties": {
      +          "aligned_by": {
      +            "description": "The model that moved word edges to where the letters sound (English); null: the times are whisper's own, up to about a second off",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "from": {
      +            "description": "The stretch transcribed, if not all",
      +            "type": "number"
      +          },
      +          "language": {
      +            "type": "string"
      +          },
      +          "model": {
      +            "type": "string"
      +          },
      +          "text": {
      +            "type": "string"
      +          },
      +          "until": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "words": {
      +            "description": "Media seconds. Aligned words start and end within about 0.05 s of where their letters sound; an end on a soft consonant (s, t, k, f) or a breath can ring on up to about 0.1 s more. Short ums are often missing from the words; kind speech finds them as speech. A word \"-\" (or one starting with it) is whisper marking a new speaker, as subtitles do: a hint only; kind speakers measures who speaks when",
      +            "items": {
      +              "properties": {
      +                "confidence": {
      +                  "description": "0–1: how sure whisper is of the word itself",
      +                  "type": "number"
      +                },
      +                "end": {
      +                  "type": "number"
      +                },
      +                "speaker": {
      +                  "description": "Who says it, from the latest speakers run",
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                },
      +                "start": {
      +                  "type": "number"
      +                },
      +                "text": {
      +                  "type": "string"
      +                },
      +                "timing_confidence": {
      +                  "description": "0–1: how clearly the letters were heard between start and end; null: not aligned (digits, symbols, other languages), times fitted between neighbours",
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "text",
      +                "start",
      +                "end",
      +                "confidence"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "model",
      +          "language",
      +          "text",
      +          "words"
      +        ],
      +        "type": "object"
      +      },
      +      "upload": {
      +        "description": "media.import {source: {upload}}: where to send the file. It imports once the last byte arrives (the PUT answers with the job_id); media.get says where it stands",
      +        "properties": {
      +          "expires_at": {
      +            "type": "string"
      +          },
      +          "max_bytes": {
      +            "type": "number"
      +          },
      +          "upload_id": {
      +            "description": "Upload handle from media.upload",
      +            "pattern": "^u_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "Signed: PUT the file here; no other credentials needed",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "upload_id",
      +          "url",
      +          "expires_at",
      +          "max_bytes"
      +        ],
      +        "type": "object"
      +      },
      +      "url": {
      +        "description": "media.get: a signed download of the file itself, once it has one",
      +        "type": "string"
      +      },
      +      "warnings": {
      +        "description": "create.motion and create.still: what went wrong in the page as it rendered (uncaught errors, console errors, files blocked or not found, tags never closed). It rendered anyway",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "width": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "media_id",
      +      "name",
      +      "status",
      +      "kind",
      +      "duration_seconds",
      +      "fps",
      +      "width",
      +      "height",
      +      "has_video",
      +      "has_audio",
      +      "codecs",
      +      "conform",
      +      "analysis"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "hint": {
      +        "type": "string"
      +      },
      +      "job_id": {
      +        "description": "Job handle; the same value is the MCP task id",
      +        "pattern": "^j_[0-9a-z]{26}$",
      +        "type": "string"
      +      },
      +      "media_id": {
      +        "description": "The media it is making; usable in edits once processing",
      +        "pattern": "^m_[0-9a-z]{26}$",
      +        "type": "string"
      +      },
      +      "status": {
      +        "enum": [
      +          "working",
      +          "completed",
      +          "failed",
      +          "cancelled"
      +        ],
      +        "type": "string"
      +      },
      +      "status_uri": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "job_id",
      +      "status",
      +      "status_uri",
      +      "hint"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "analyses": {
      -        "description": "Summaries of media.analyze results (counts, not data); include puts each in full at the top level",
      -        "properties": {
      -          "beats": {
      -            "properties": {
      -              "beats": {
      -                "type": "number"
      -              },
      -              "bpm": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "bpm",
      -              "beats"
      -            ],
      -            "type": "object"
      -          },
      -          "faces": {
      -            "properties": {
      -              "frames_with_faces": {
      -                "type": "number"
      -              },
      -              "rate": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "rate",
      -              "frames_with_faces"
      -            ],
      -            "type": "object"
      -          },
      -          "look": {
      -            "description": "frames and questions: the latest run",
      -            "properties": {
      -              "frames": {
      -                "type": "number"
      -              },
      -              "questions": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "runs": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "runs",
      -              "frames",
      -              "questions"
      -            ],
      -            "type": "object"
      -          },
      -          "sounds": {
      -            "description": "heard: the sounds the latest run found at or above its min_probability",
      -            "properties": {
      -              "heard": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "min_probability": {
      -                "type": "number"
      -              },
      -              "model": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "model",
      -              "min_probability",
      -              "heard"
      -            ],
      -            "type": "object"
      -          },
      -          "speech": {
      -            "properties": {
      -              "frame_seconds": {
      -                "type": "number"
      -              },
      -              "frames": {
      -                "type": "number"
      -              },
      -              "model": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "model",
      -              "frames",
      -              "frame_seconds"
      -            ],
      -            "type": "object"
      -          },
      -          "transcript": {
      -            "properties": {
      -              "language": {
      -                "type": "string"
      -              },
      -              "model": {
      -                "type": "string"
      -              },
      -              "words": {
      -                "description": "How many words; the words themselves are in transcript.words",
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "model",
      -              "language",
      -              "words"
      -            ],
      -            "type": "object"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "analysis": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "loudness_lufs": {
      -                "description": "Integrated loudness at import",
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              }
      -            },
      -            "required": [
      -              "loudness_lufs"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "beats": {
      -        "properties": {
      -          "beats": {
      -            "items": {
      -              "type": "number"
      -            },
      -            "type": "array"
      -          },
      -          "bpm": {
      -            "type": "number"
      -          },
      -          "downbeats": {
      -            "items": {
      -              "type": "number"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "bpm",
      -          "beats",
      -          "downbeats"
      -        ],
      -        "type": "object"
      -      },
      -      "codecs": {
      -        "properties": {
      -          "audio": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "video": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "video",
      -          "audio"
      -        ],
      -        "type": "object"
      -      },
      -      "conform": {
      -        "description": "Why a mezzanine was made (vfr, rotation, hdr, codec); empty when not needed",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "created_at": {
      -        "description": "When it was imported or made",
      -        "type": "string"
      -      },
      -      "duration_seconds": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "error": {
      -        "properties": {
      -          "code": {
      -            "enum": [
      -              "bad_request",
      -              "no_audio",
      -              "not_found",
      -              "expired",
      -              "media_not_ready",
      -              "media_offline",
      -              "engine_error",
      -              "render_failed",
      -              "interrupted",
      -              "cancelled",
      -              "credential_required",
      -              "credential_invalid",
      -              "output_exists",
      -              "path_not_allowed",
      -              "limit_exceeded",
      -              "quota_exceeded",
      -              "subscription_required",
      -              "email_unverified",
      -              "service_unavailable",
      -              "server_busy"
      -            ],
      -            "type": "string"
      -          },
      -          "detail": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "hint": {
      -            "type": "string"
      -          },
      -          "message": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "expires_at": {
      -        "description": "When url and page_url stop working",
      -        "type": "string"
      -      },
      -      "extension": {
      -        "description": "The extension its format takes (.png, .mp4), from the file itself, not its name",
      -        "type": "string"
      -      },
      -      "faces": {
      -        "properties": {
      -          "frames": {
      -            "items": {
      -              "properties": {
      -                "faces": {
      -                  "items": {
      -                    "properties": {
      -                      "h": {
      -                        "type": "number"
      -                      },
      -                      "score": {
      -                        "type": "number"
      -                      },
      -                      "w": {
      -                        "type": "number"
      -                      },
      -                      "x": {
      -                        "type": "number"
      -                      },
      -                      "y": {
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "x",
      -                      "y",
      -                      "w",
      -                      "h",
      -                      "score"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "type": "array"
      -                },
      -                "time": {
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "time",
      -                "faces"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "rate": {
      -            "type": "number"
      -          }
      -        },
      -        "required": [
      -          "rate",
      -          "frames"
      -        ],
      -        "type": "object"
      -      },
      -      "font_family": {
      -        "description": "Fonts: the family; use font_media_id in a text style to set text in it",
      -        "type": "string"
      -      },
      -      "fps": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "den": {
      -                "type": "number"
      -              },
      -              "num": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "num",
      -              "den"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "has_audio": {
      -        "type": "boolean"
      -      },
      -      "has_video": {
      -        "type": "boolean"
      -      },
      -      "height": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "kind": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "video",
      -              "audio",
      -              "image",
      -              "font",
      -              "lut"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "look": {
      -        "properties": {
      -          "runs": {
      -            "items": {
      -              "properties": {
      -                "frames": {
      -                  "items": {
      -                    "properties": {
      -                      "answers": {
      -                        "additionalProperties": {
      -                          "additionalProperties": {},
      -                          "propertyNames": {
      -                            "type": "string"
      -                          },
      -                          "type": "object"
      -                        },
      -                        "propertyNames": {
      -                          "type": "string"
      -                        },
      -                        "type": "object"
      -                      },
      -                      "time": {
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "time",
      -                      "answers"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "type": "array"
      -                },
      -                "id": {
      -                  "type": "string"
      -                },
      -                "model": {
      -                  "type": "string"
      -                },
      -                "questions": {
      -                  "additionalProperties": {},
      -                  "propertyNames": {
      -                    "type": "string"
      -                  },
      -                  "type": "object"
      -                },
      -                "state": {
      -                  "additionalProperties": {},
      -                  "propertyNames": {
      -                    "type": "string"
      -                  },
      -                  "type": "object"
      -                },
      -                "with_previous": {
      -                  "type": "boolean"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "model",
      -                "questions",
      -                "with_previous",
      -                "frames"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "runs"
      -        ],
      -        "type": "object"
      -      },
      -      "media_id": {
      -        "description": "Media handle from media.import or a create.* tool",
      -        "pattern": "^m_[0-9a-z]{26}$",
      -        "type": "string"
      -      },
      -      "mime_type": {
      -        "description": "Its MIME type, likewise",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "origin": {
      -        "description": "Where it came from, to tell one version from another: the import source, the export of which timeline, or the create.* tool and the media it was made from",
      -        "properties": {
      -          "attached": {
      -            "description": "url: the file the user attached in the chat, passed as media.import file",
      -            "type": "boolean"
      -          },
      -          "file_name": {
      -            "description": "upload: the name the file was sent with",
      -            "type": "string"
      -          },
      -          "from": {
      -            "description": "upload: a file the user sent; url: downloaded; path: a media root; render: an export.video; created: a create.* tool",
      -            "enum": [
      -              "upload",
      -              "url",
      -              "path",
      -              "render",
      -              "created"
      -            ],
      -            "type": "string"
      -          },
      -          "job_id": {
      -            "description": "render: the export.video job; created: the create.* job",
      -            "pattern": "^j_[0-9a-z]{26}$",
      -            "type": "string"
      -          },
      -          "media_ids": {
      -            "description": "created: the media it was made from (a cutout's source, a page's assets)",
      -            "items": {
      -              "description": "Media handle from media.import or a create.* tool",
      -              "pattern": "^m_[0-9a-z]{26}$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "path": {
      -            "description": "path: the file it was imported from",
      -            "type": "string"
      -          },
      -          "preset": {
      -            "description": "render: the export preset",
      -            "type": "string"
      -          },
      -          "range": {
      -            "description": "render: the frames exported, when not the whole timeline",
      -            "properties": {
      -              "end": {
      -                "type": "number"
      -              },
      -              "start": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "start",
      -              "end"
      -            ],
      -            "type": "object"
      -          },
      -          "recipe": {
      -            "description": "created: a hash of what it was made from; the same recipe makes the same media",
      -            "type": "string"
      -          },
      -          "sources": {
      -            "description": "render: where each stretch of this file comes from, per track, read from the timeline when it was exported (kept after the timeline expires). With a speed curve, source_in and source_out are the clip's whole source range",
      -            "items": {
      -              "properties": {
      -                "end": {
      -                  "type": "number"
      -                },
      -                "kind": {
      -                  "enum": [
      -                    "video",
      -                    "audio"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_id": {
      -                  "description": "The media this stretch plays",
      -                  "pattern": "^m_[0-9a-z]{26}$",
      -                  "type": "string"
      -                },
      -                "source_in": {
      -                  "description": "Seconds into that media",
      -                  "type": "number"
      -                },
      -                "source_out": {
      -                  "type": "number"
      -                },
      -                "speed": {
      -                  "additionalProperties": {},
      -                  "description": "The clip's speed change, as clip.set_speed set it",
      -                  "propertyNames": {
      -                    "type": "string"
      -                  },
      -                  "type": "object"
      -                },
      -                "start": {
      -                  "description": "Seconds into this file",
      -                  "type": "number"
      -                },
      -                "track_id": {
      -                  "description": "Track of the timeline; outer/inner inside a nested one",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "track_id",
      -                "kind",
      -                "start",
      -                "end",
      -                "media_id",
      -                "source_in",
      -                "source_out"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "timeline_id": {
      -            "description": "render: the timeline that was exported",
      -            "pattern": "^tl_[0-9a-f]{32}$",
      -            "type": "string"
      -          },
      -          "tool": {
      -            "description": "created: the create.* tool that made it",
      -            "type": "string"
      -          },
      -          "upload_id": {
      -            "description": "Upload handle from media.upload",
      -            "pattern": "^u_[0-9a-z]{26}$",
      -            "type": "string"
      -          },
      -          "url": {
      -            "description": "url: the address it was downloaded from, without its query string",
      -            "type": "string"
      -          },
      -          "via": {
      -            "description": "upload: sent through a media.upload link, dropped on the account page, or a data: URI",
      -            "enum": [
      -              "media.upload",
      -              "account_page",
      -              "data_uri"
      -            ],
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "from"
      -        ],
      -        "type": "object"
      -      },
      -      "page_url": {
      -        "description": "media.get: a page that plays or shows the file in any browser, with no sign-in, to give a person; works until expires_at",
      -        "type": "string"
      -      },
      -      "pages": {
      -        "additionalProperties": {
      -          "properties": {
      -            "first": {
      -              "description": "Index in the whole list of the first item returned (transcript: the word index clip.add source {words} takes)",
      -              "type": "integer"
      -            },
      -            "list": {
      -              "description": "The list paged: transcript.words, beats.beats, faces.frames, speech.probabilities (one per frame_seconds from `from`), or look runs[].frames (each run is cut the same way; first and the counts are the latest run's)",
      -              "type": "string"
      -            },
      -            "matching": {
      -              "description": "Items in the time range (the whole list without one)",
      -              "type": "integer"
      -            },
      -            "next_offset": {
      -              "anyOf": [
      -                {
      -                  "type": "integer"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "The offset that gives the next page of this range, or null at its end"
      -            },
      -            "returned": {
      -              "type": "integer"
      -            },
      -            "total": {
      -              "description": "Items in the whole list",
      -              "type": "integer"
      -            }
      -          },
      -          "required": [
      -            "list",
      -            "first",
      -            "returned",
      -            "matching",
      -            "total",
      -            "next_offset"
      -          ],
      -          "type": "object"
      -        },
      -        "description": "media.get with a range, offset or limit: per included analysis, which piece of its list came back",
      -        "propertyNames": {
      -          "enum": [
      -            "transcript",
      -            "beats",
      -            "faces",
      -            "look",
      -            "speech",
      -            "sounds"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "object"
      -      },
      -      "probe": {
      -        "description": "media.get: everything FFprobe read from the file, as it gives it: the format and every stream (codec, pix_fmt, color_space, color_primaries, color_transfer, color_range, bit depth, sample rate, channel layout, tags, side data). Not for fonts and LUTs",
      -        "properties": {
      -          "format": {
      -            "additionalProperties": {},
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "streams": {
      -            "items": {
      -              "additionalProperties": {},
      -              "propertyNames": {
      -                "type": "string"
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "format",
      -          "streams"
      -        ],
      -        "type": "object"
      -      },
      -      "sounds": {
      -        "description": "With include [\"sounds\"]: the latest media.analyze sounds run, every probability included",
      -        "properties": {
      -          "min_probability": {
      -            "type": "number"
      -          },
      -          "model": {
      -            "type": "string"
      -          },
      -          "peaks": {
      -            "additionalProperties": {
      -              "type": "number"
      -            },
      -            "description": "Per sound reported: the highest probability it reaches anywhere",
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          "scores": {
      -            "description": "Every probability, for your own cut-off or arithmetic",
      -            "properties": {
      -              "start_seconds": {
      -                "description": "Where the first value starts: media seconds, or timeline seconds for a timeline",
      -                "type": "number"
      -              },
      -              "step_seconds": {
      -                "description": "Seconds each value covers: 0.04 (every frame) unless asked or too long",
      -                "type": "number"
      -              },
      -              "values": {
      -                "additionalProperties": {
      -                  "items": {
      -                    "type": "number"
      -                  },
      -                  "type": "array"
      -                },
      -                "description": "Per sound, the highest probability in each step, 0 to 1",
      -                "propertyNames": {
      -                  "type": "string"
      -                },
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "start_seconds",
      -              "step_seconds",
      -              "values"
      -            ],
      -            "type": "object"
      -          },
      -          "spans": {
      -            "additionalProperties": {
      -              "items": {
      -                "properties": {
      -                  "end": {
      -                    "description": "Where it ends, on the same clock",
      -                    "type": "number"
      -                  },
      -                  "peak_probability": {
      -                    "type": "number"
      -                  },
      -                  "peak_seconds": {
      -                    "description": "The middle of the most likely frame",
      -                    "type": "number"
      -                  },
      -                  "start": {
      -                    "description": "Where the run of matching 40 ms frames starts: media seconds, or timeline seconds for a timeline",
      -                    "type": "number"
      -                  }
      -                },
      -                "required": [
      -                  "start",
      -                  "end",
      -                  "peak_seconds",
      -                  "peak_probability"
      -                ],
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            "description": "Per sound: the runs of 40 ms frames at or above min_probability, in time order; empty when it never is",
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "model",
      -          "min_probability",
      -          "spans",
      -          "peaks"
      -        ],
      -        "type": "object"
      -      },
      -      "speech": {
      -        "description": "With include [\"speech\"]: the speech probability of every 32 ms frame",
      -        "properties": {
      -          "frame_seconds": {
      -            "description": "Each probability covers this long",
      -            "type": "number"
      -          },
      -          "from": {
      -            "description": "Seconds where the first probability starts",
      -            "type": "number"
      -          },
      -          "model": {
      -            "type": "string"
      -          },
      -          "probabilities": {
      -            "description": "Speech probability 0–1, one per frame, in order",
      -            "items": {
      -              "type": "number"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "model",
      -          "frame_seconds",
      -          "from",
      -          "probabilities"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "description": "importing: not probed yet; processing: usable in edits, proxy still rendering; ready; failed",
      -        "enum": [
      -          "importing",
      -          "processing",
      -          "ready",
      -          "failed"
      -        ],
      -        "type": "string"
      -      },
      -      "transcript": {
      -        "description": "With include [\"transcript\"]: every word as {text, start, end, confidence}",
      -        "properties": {
      -          "aligned_by": {
      -            "description": "The model that moved word edges to where the letters sound (English); null: the times are whisper's own, up to about a second off",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "language": {
      -            "type": "string"
      -          },
      -          "model": {
      -            "type": "string"
      -          },
      -          "text": {
      -            "type": "string"
      -          },
      -          "words": {
      -            "description": "Media seconds. Aligned words start and end within about 0.05 s of where their letters sound; an end on a soft consonant (s, t, k, f) or a breath can ring on up to about 0.1 s more. Short ums are often missing from the words; kind speech finds them as speech",
      -            "items": {
      -              "properties": {
      -                "confidence": {
      -                  "description": "0–1: how sure whisper is of the word itself",
      -                  "type": "number"
      -                },
      -                "end": {
      -                  "type": "number"
      -                },
      -                "start": {
      -                  "type": "number"
      -                },
      -                "text": {
      -                  "type": "string"
      -                },
      -                "timing_confidence": {
      -                  "description": "0–1: how clearly the letters were heard between start and end; null: not aligned (digits, symbols, other languages), times fitted between neighbours",
      -                  "type": [
      -                    "number",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "text",
      -                "start",
      -                "end",
      -                "confidence"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "model",
      -          "language",
      -          "text",
      -          "words"
      -        ],
      -        "type": "object"
      -      },
      -      "upload": {
      -        "description": "media.import {source: {upload}}: where to send the file. It imports once the last byte arrives (the PUT answers with the job_id); media.get says where it stands",
      -        "properties": {
      -          "expires_at": {
      -            "type": "string"
      -          },
      -          "max_bytes": {
      -            "type": "number"
      -          },
      -          "upload_id": {
      -            "description": "Upload handle from media.upload",
      -            "pattern": "^u_[0-9a-z]{26}$",
      -            "type": "string"
      -          },
      -          "url": {
      -            "description": "Signed: PUT the file here; no other credentials needed",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "upload_id",
      -          "url",
      -          "expires_at",
      -          "max_bytes"
      -        ],
      -        "type": "object"
      -      },
      -      "url": {
      -        "description": "media.get: a signed download of the file itself, once it has one",
      -        "type": "string"
      -      },
      -      "width": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "media_id",
      -      "name",
      -      "status",
      -      "kind",
      -      "duration_seconds",
      -      "fps",
      -      "width",
      -      "height",
      -      "has_video",
      -      "has_audio",
      -      "codecs",
      -      "conform",
      -      "analysis"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "hint": {
      -        "type": "string"
      -      },
      -      "job_id": {
      -        "description": "Job handle; the same value is the MCP task id",
      -        "pattern": "^j_[0-9a-z]{26}$",
      -        "type": "string"
      -      },
      -      "media_id": {
      -        "description": "The media it is making; usable in edits once processing",
      -        "pattern": "^m_[0-9a-z]{26}$",
      -        "type": "string"
      -      },
      -      "status": {
      -        "enum": [
      -          "working",
      -          "completed",
      -          "failed",
      -          "cancelled"
      -        ],
      -        "type": "string"
      -      },
      -      "status_uri": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "job_id",
      -      "status",
      -      "status_uri",
      -      "hint"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "analyses": {
      +        "description": "Summaries of media.analyze results (counts, not data); include puts each in full at the top level",
      +        "properties": {
      +          "beats": {
      +            "properties": {
      +              "beats": {
      +                "type": "number"
      +              },
      +              "bpm": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "bpm",
      +              "beats"
      +            ],
      +            "type": "object"
      +          },
      +          "faces": {
      +            "properties": {
      +              "frames_with_faces": {
      +                "type": "number"
      +              },
      +              "rate": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "rate",
      +              "frames_with_faces"
      +            ],
      +            "type": "object"
      +          },
      +          "look": {
      +            "description": "frames and questions: the latest run",
      +            "properties": {
      +              "frames": {
      +                "type": "number"
      +              },
      +              "questions": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "runs": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "runs",
      +              "frames",
      +              "questions"
      +            ],
      +            "type": "object"
      +          },
      +          "sounds": {
      +            "description": "heard: the sounds the latest run found at or above its min_probability",
      +            "properties": {
      +              "heard": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "min_probability": {
      +                "type": "number"
      +              },
      +              "model": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "model",
      +              "min_probability",
      +              "heard"
      +            ],
      +            "type": "object"
      +          },
      +          "speech": {
      +            "properties": {
      +              "frame_seconds": {
      +                "type": "number"
      +              },
      +              "frames": {
      +                "type": "number"
      +              },
      +              "model": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "model",
      +              "frames",
      +              "frame_seconds"
      +            ],
      +            "type": "object"
      +          },
      +          "transcript": {
      +            "properties": {
      +              "language": {
      +                "type": "string"
      +              },
      +              "model": {
      +                "type": "string"
      +              },
      +              "words": {
      +                "description": "How many words; the words themselves are in transcript.words",
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "model",
      +              "language",
      +              "words"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "analysis": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "loudness_lufs": {
      +                "description": "Integrated loudness at import",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "loudness_lufs"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "beats": {
      +        "properties": {
      +          "beats": {
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": "array"
      +          },
      +          "bpm": {
      +            "type": "number"
      +          },
      +          "downbeats": {
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "bpm",
      +          "beats",
      +          "downbeats"
      +        ],
      +        "type": "object"
      +      },
      +      "codecs": {
      +        "properties": {
      +          "audio": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "video": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "video",
      +          "audio"
      +        ],
      +        "type": "object"
      +      },
      +      "conform": {
      +        "description": "Why a mezzanine was made (vfr, rotation, hdr, codec); empty when not needed",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "created_at": {
      +        "description": "When it was imported or made",
      +        "type": "string"
      +      },
      +      "duration_seconds": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "error": {
      +        "properties": {
      +          "code": {
      +            "enum": [
      +              "bad_request",
      +              "no_audio",
      +              "not_found",
      +              "expired",
      +              "media_not_ready",
      +              "media_offline",
      +              "engine_error",
      +              "render_failed",
      +              "interrupted",
      +              "cancelled",
      +              "credential_required",
      +              "credential_invalid",
      +              "output_exists",
      +              "path_not_allowed",
      +              "limit_exceeded",
      +              "quota_exceeded",
      +              "subscription_required",
      +              "email_unverified",
      +              "service_unavailable",
      +              "server_busy"
      +            ],
      +            "type": "string"
      +          },
      +          "detail": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "hint": {
      +            "type": "string"
      +          },
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "expires_at": {
      +        "description": "When url and page_url stop working",
      +        "type": "string"
      +      },
      +      "extension": {
      +        "description": "The extension its format takes (.png, .mp4), from the file itself, not its name",
      +        "type": "string"
      +      },
      +      "faces": {
      +        "properties": {
      +          "frames": {
      +            "items": {
      +              "properties": {
      +                "faces": {
      +                  "items": {
      +                    "properties": {
      +                      "h": {
      +                        "type": "number"
      +                      },
      +                      "score": {
      +                        "type": "number"
      +                      },
      +                      "w": {
      +                        "type": "number"
      +                      },
      +                      "x": {
      +                        "type": "number"
      +                      },
      +                      "y": {
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "x",
      +                      "y",
      +                      "w",
      +                      "h",
      +                      "score"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                },
      +                "time": {
      +                  "type": "number"
      +                }
      +              },
      +              "required": [
      +                "time",
      +                "faces"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "rate": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "rate",
      +          "frames"
      +        ],
      +        "type": "object"
      +      },
      +      "font_family": {
      +        "description": "Fonts: the family; use font_media_id in a text style to set text in it",
      +        "type": "string"
      +      },
      +      "fps": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "den": {
      +                "type": "number"
      +              },
      +              "num": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "num",
      +              "den"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "has_audio": {
      +        "type": "boolean"
      +      },
      +      "has_video": {
      +        "type": "boolean"
      +      },
      +      "height": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "kind": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "video",
      +              "audio",
      +              "image",
      +              "font",
      +              "lut"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "look": {
      +        "properties": {
      +          "runs": {
      +            "items": {
      +              "properties": {
      +                "frames": {
      +                  "items": {
      +                    "properties": {
      +                      "answers": {
      +                        "additionalProperties": {
      +                          "additionalProperties": {},
      +                          "propertyNames": {
      +                            "type": "string"
      +                          },
      +                          "type": "object"
      +                        },
      +                        "propertyNames": {
      +                          "type": "string"
      +                        },
      +                        "type": "object"
      +                      },
      +                      "time": {
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "time",
      +                      "answers"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                },
      +                "id": {
      +                  "type": "string"
      +                },
      +                "model": {
      +                  "type": "string"
      +                },
      +                "questions": {
      +                  "additionalProperties": {},
      +                  "propertyNames": {
      +                    "type": "string"
      +                  },
      +                  "type": "object"
      +                },
      +                "state": {
      +                  "additionalProperties": {},
      +                  "propertyNames": {
      +                    "type": "string"
      +                  },
      +                  "type": "object"
      +                },
      +                "with_previous": {
      +                  "type": "boolean"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "model",
      +                "questions",
      +                "with_previous",
      +                "frames"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "runs"
      +        ],
      +        "type": "object"
      +      },
      +      "media_id": {
      +        "description": "Media handle from media.import or a create.* tool",
      +        "pattern": "^m_[0-9a-z]{26}$",
      +        "type": "string"
      +      },
      +      "mime_type": {
      +        "description": "Its MIME type, likewise",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "origin": {
      +        "description": "Where it came from, to tell one version from another: the import source, the export of which timeline, or the create.* tool and the media it was made from",
      +        "properties": {
      +          "attached": {
      +            "description": "url: the file the user attached in the chat, passed as media.import file",
      +            "type": "boolean"
      +          },
      +          "file_name": {
      +            "description": "upload: the name the file was sent with",
      +            "type": "string"
      +          },
      +          "from": {
      +            "description": "upload: a file the user sent; url: downloaded; path: a media root; render: an export.video; created: a create.* tool",
      +            "enum": [
      +              "upload",
      +              "url",
      +              "path",
      +              "render",
      +              "created"
      +            ],
      +            "type": "string"
      +          },
      +          "job_id": {
      +            "description": "render: the export.video job; created: the create.* job",
      +            "pattern": "^j_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "media_ids": {
      +            "description": "created: the media it was made from (a cutout's source, a page's assets)",
      +            "items": {
      +              "description": "Media handle from media.import or a create.* tool",
      +              "pattern": "^m_[0-9a-z]{26}$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "path": {
      +            "description": "path: the file it was imported from",
      +            "type": "string"
      +          },
      +          "preset": {
      +            "description": "render: the export preset",
      +            "type": "string"
      +          },
      +          "range": {
      +            "description": "render: the frames exported, when not the whole timeline",
      +            "properties": {
      +              "end": {
      +                "type": "number"
      +              },
      +              "start": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "start",
      +              "end"
      +            ],
      +            "type": "object"
      +          },
      +          "recipe": {
      +            "description": "created: a hash of what it was made from; the same recipe makes the same media",
      +            "type": "string"
      +          },
      +          "sources": {
      +            "description": "render: where each stretch of this file comes from, per track, read from the timeline when it was exported (kept after the timeline expires). With a speed curve, source_in and source_out are the clip's whole source range",
      +            "items": {
      +              "properties": {
      +                "end": {
      +                  "type": "number"
      +                },
      +                "kind": {
      +                  "enum": [
      +                    "video",
      +                    "audio"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_id": {
      +                  "description": "The media this stretch plays",
      +                  "pattern": "^m_[0-9a-z]{26}$",
      +                  "type": "string"
      +                },
      +                "source_in": {
      +                  "description": "Seconds into that media",
      +                  "type": "number"
      +                },
      +                "source_out": {
      +                  "type": "number"
      +                },
      +                "speed": {
      +                  "additionalProperties": {},
      +                  "description": "The clip's speed change, as clip.set_speed set it",
      +                  "propertyNames": {
      +                    "type": "string"
      +                  },
      +                  "type": "object"
      +                },
      +                "start": {
      +                  "description": "Seconds into this file",
      +                  "type": "number"
      +                },
      +                "track_id": {
      +                  "description": "Track of the timeline; outer/inner inside a nested one",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "track_id",
      +                "kind",
      +                "start",
      +                "end",
      +                "media_id",
      +                "source_in",
      +                "source_out"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "timeline_id": {
      +            "description": "render: the timeline that was exported",
      +            "pattern": "^tl_[0-9a-f]{32}$",
      +            "type": "string"
      +          },
      +          "tool": {
      +            "description": "created: the create.* tool that made it",
      +            "type": "string"
      +          },
      +          "upload_id": {
      +            "description": "Upload handle from media.upload",
      +            "pattern": "^u_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "url: the address it was downloaded from, without its query string",
      +            "type": "string"
      +          },
      +          "via": {
      +            "description": "upload: sent through a media.upload link, dropped on the account page, or a data: URI",
      +            "enum": [
      +              "media.upload",
      +              "account_page",
      +              "data_uri"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "from"
      +        ],
      +        "type": "object"
      +      },
      +      "page_url": {
      +        "description": "media.get: a page that plays or shows the file in any browser, with no sign-in, to give a person; works until expires_at",
      +        "type": "string"
      +      },
      +      "pages": {
      +        "additionalProperties": {
      +          "properties": {
      +            "first": {
      +              "description": "Index in the whole list of the first item returned (transcript: the word index clip.add source {words} takes)",
      +              "type": "integer"
      +            },
      +            "list": {
      +              "description": "The list paged: transcript.words, beats.beats, faces.frames, speech.probabilities (one per frame_seconds from `from`), or look runs[].frames (each run is cut the same way; first and the counts are the latest run's)",
      +              "type": "string"
      +            },
      +            "matching": {
      +              "description": "Items in the time range (the whole list without one)",
      +              "type": "integer"
      +            },
      +            "next_offset": {
      +              "anyOf": [
      +                {
      +                  "type": "integer"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The offset that gives the next page of this range, or null at its end"
      +            },
      +            "returned": {
      +              "type": "integer"
      +            },
      +            "total": {
      +              "description": "Items in the whole list",
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "list",
      +            "first",
      +            "returned",
      +            "matching",
      +            "total",
      +            "next_offset"
      +          ],
      +          "type": "object"
      +        },
      +        "description": "media.get with a range, offset or limit: per included analysis, which piece of its list came back",
      +        "propertyNames": {
      +          "enum": [
      +            "transcript",
      +            "beats",
      +            "faces",
      +            "look",
      +            "speech",
      +            "sounds"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "probe": {
      +        "description": "media.get: everything FFprobe read from the file, as it gives it: the format and every stream (codec, pix_fmt, color_space, color_primaries, color_transfer, color_range, bit depth, sample rate, channel layout, tags, side data). Not for fonts and LUTs",
      +        "properties": {
      +          "format": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "streams": {
      +            "items": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "format",
      +          "streams"
      +        ],
      +        "type": "object"
      +      },
      +      "sounds": {
      +        "description": "With include [\"sounds\"]: the latest media.analyze sounds run, every probability included",
      +        "properties": {
      +          "min_probability": {
      +            "type": "number"
      +          },
      +          "model": {
      +            "type": "string"
      +          },
      +          "peaks": {
      +            "additionalProperties": {
      +              "type": "number"
      +            },
      +            "description": "Per sound reported: the highest probability it reaches anywhere",
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "scores": {
      +            "description": "Every probability, for your own cut-off or arithmetic",
      +            "properties": {
      +              "start_seconds": {
      +                "description": "Where the first value starts: media seconds, or timeline seconds for a timeline",
      +                "type": "number"
      +              },
      +              "step_seconds": {
      +                "description": "Seconds each value covers: 0.04 (every frame) unless asked or too long",
      +                "type": "number"
      +              },
      +              "values": {
      +                "additionalProperties": {
      +                  "items": {
      +                    "type": "number"
      +                  },
      +                  "type": "array"
      +                },
      +                "description": "Per sound, the highest probability in each step, 0 to 1",
      +                "propertyNames": {
      +                  "type": "string"
      +                },
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "start_seconds",
      +              "step_seconds",
      +              "values"
      +            ],
      +            "type": "object"
      +          },
      +          "spans": {
      +            "additionalProperties": {
      +              "items": {
      +                "properties": {
      +                  "end": {
      +                    "description": "Where it ends, on the same clock",
      +                    "type": "number"
      +                  },
      +                  "peak_probability": {
      +                    "type": "number"
      +                  },
      +                  "peak_seconds": {
      +                    "description": "The middle of the most likely frame",
      +                    "type": "number"
      +                  },
      +                  "start": {
      +                    "description": "Where the run of matching 40 ms frames starts: media seconds, or timeline seconds for a timeline",
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "start",
      +                  "end",
      +                  "peak_seconds",
      +                  "peak_probability"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "description": "Per sound: the runs of 40 ms frames at or above min_probability, in time order; empty when it never is",
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "model",
      +          "min_probability",
      +          "spans",
      +          "peaks"
      +        ],
      +        "type": "object"
      +      },
      +      "speech": {
      +        "description": "With include [\"speech\"]: the speech probability of every 32 ms frame",
      +        "properties": {
      +          "frame_seconds": {
      +            "description": "Each probability covers this long",
      +            "type": "number"
      +          },
      +          "from": {
      +            "description": "Seconds where the first probability starts",
      +            "type": "number"
      +          },
      +          "model": {
      +            "type": "string"
      +          },
      +          "probabilities": {
      +            "description": "Speech probability 0–1, one per frame, in order",
      +            "items": {
      +              "type": "number"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "model",
      +          "frame_seconds",
      +          "from",
      +          "probabilities"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "description": "importing: not probed yet; processing: usable in edits, proxy still rendering; ready; failed",
      +        "enum": [
      +          "importing",
      +          "processing",
      +          "ready",
      +          "failed"
      +        ],
      +        "type": "string"
      +      },
      +      "transcript": {
      +        "description": "With include [\"transcript\"]: every word as {text, start, end, confidence}",
      +        "properties": {
      +          "aligned_by": {
      +            "description": "The model that moved word edges to where the letters sound (English); null: the times are whisper's own, up to about a second off",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "language": {
      +            "type": "string"
      +          },
      +          "model": {
      +            "type": "string"
      +          },
      +          "text": {
      +            "type": "string"
      +          },
      +          "words": {
      +            "description": "Media seconds. Aligned words start and end within about 0.05 s of where their letters sound; an end on a soft consonant (s, t, k, f) or a breath can ring on up to about 0.1 s more. Short ums are often missing from the words; kind speech finds them as speech",
      +            "items": {
      +              "properties": {
      +                "confidence": {
      +                  "description": "0–1: how sure whisper is of the word itself",
      +                  "type": "number"
      +                },
      +                "end": {
      +                  "type": "number"
      +                },
      +                "start": {
      +                  "type": "number"
      +                },
      +                "text": {
      +                  "type": "string"
      +                },
      +                "timing_confidence": {
      +                  "description": "0–1: how clearly the letters were heard between start and end; null: not aligned (digits, symbols, other languages), times fitted between neighbours",
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "text",
      +                "start",
      +                "end",
      +                "confidence"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "model",
      +          "language",
      +          "text",
      +          "words"
      +        ],
      +        "type": "object"
      +      },
      +      "upload": {
      +        "description": "media.import {source: {upload}}: where to send the file. It imports once the last byte arrives (the PUT answers with the job_id); media.get says where it stands",
      +        "properties": {
      +          "expires_at": {
      +            "type": "string"
      +          },
      +          "max_bytes": {
      +            "type": "number"
      +          },
      +          "upload_id": {
      +            "description": "Upload handle from media.upload",
      +            "pattern": "^u_[0-9a-z]{26}$",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "Signed: PUT the file here; no other credentials needed",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "upload_id",
      +          "url",
      +          "expires_at",
      +          "max_bytes"
      +        ],
      +        "type": "object"
      +      },
      +      "url": {
      +        "description": "media.get: a signed download of the file itself, once it has one",
      +        "type": "string"
      +      },
      +      "warnings": {
      +        "description": "create.motion and create.still: what went wrong in the page as it rendered (uncaught errors, console errors, files blocked or not found, tags never closed). It rendered anyway",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "width": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "media_id",
      +      "name",
      +      "status",
      +      "kind",
      +      "duration_seconds",
      +      "fps",
      +      "width",
      +      "height",
      +      "has_video",
      +      "has_audio",
      +      "codecs",
      +      "conform",
      +      "analysis"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "hint": {
      +        "type": "string"
      +      },
      +      "job_id": {
      +        "description": "Job handle; the same value is the MCP task id",
      +        "pattern": "^j_[0-9a-z]{26}$",
      +        "type": "string"
      +      },
      +      "media_id": {
      +        "description": "The media it is making; usable in edits once processing",
      +        "pattern": "^m_[0-9a-z]{26}$",
      +        "type": "string"
      +      },
      +      "status": {
      +        "enum": [
      +          "working",
      +          "completed",
      +          "failed",
      +          "cancelled"
      +        ],
      +        "type": "string"
      +      },
      +      "status_uri": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "job_id",
      +      "status",
      +      "status_uri",
      +      "hint"
      +    ],
      +    "type": "object"
      +  }
      +]
  4. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.