# recordings_prepare_preview

Canonical HTML page: https://bitterclip.com/docs/assistants/tools/recordings_prepare_preview

Surface: app-only

Product release: 1dce717408a55fac1047e7d779177fa3ef8ede51
Public contract commit: 1ce47f7857ae3d9b6933fe83d5c33de3ae5efc64
Public contract SHA-256: 241d47d25e4b4c1dae9d2263793874d06fc4ba7bc3c78d4cf2bc63fbb32ed7dc
Descriptor SHA-256: 885d46f3ca3939dec2ace0cd6e93611c8b3f741f2d8f7a82e0adfe1452cc9a9e
Captured: 2026-09-24T16:39:30.100Z
Source: https://app.bitterclip.com/api/v1/mcp_descriptors.json

Idempotently prepare or repair the browser-playable preview for an existing video recording. Repeating the call while repair is active reuses that work. This does not re-transcribe the recording or change speaker, Moment, Clip, edit, Render, or Publish state. Returns immediately while media inspection or preview preparation continues.

The JSON blocks below are the exact MCP descriptor projections served by Rails for the named profiles at capture time. Security schemes and resource URIs may vary by connected host.

## App descriptor

```json
{
  "name": "recordings_prepare_preview",
  "title": "Prepare a recording preview",
  "description": "Idempotently prepare or repair the browser-playable preview for an existing video recording. Repeating the call while repair is active reuses that work. This does not re-transcribe the recording or change speaker, Moment, Clip, edit, Render, or Publish state. Returns immediately while media inspection or preview preparation continues.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "recording_id": {
        "type": "string",
        "description": "Recording public ID whose playable preview should be prepared."
      },
      "retry_media_evidence_execution_id": {
        "type": "string",
        "description": "Exact failed media-evidence execution returned by next_action. Supplying it is an explicit same-generation cell retry on the current admission pipeline; a retired predecessor pipeline or worker image (for example media-foundation-v1 while serving media-understanding-v1) is refused. Ordinary preview polling must omit it."
      },
      "repair_media_cell_poster_execution_id": {
        "type": "string",
        "description": "Exact current published media-evidence execution whose physically missing/corrupt poster should be restored from its immutable staged poster. This never reads source media or reruns provider work."
      }
    },
    "required": [
      "recording_id"
    ],
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "_meta": {
    "securitySchemes": [
      {
        "type": "noauth"
      }
    ],
    "ui": {
      "visibility": [
        "app"
      ]
    },
    "openai/widgetAccessible": true,
    "openai/visibility": "private"
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "recording_id": {
        "type": "string"
      },
      "preview": {
        "type": "object",
        "description": "Current preview state: ready, preparing, failed, or missing, plus a renewed media URL only when ready. A media-evidence-owned generation includes its exact typed blocker and never starts legacy probe or preview work."
      },
      "preserves": {
        "type": "object",
        "description": "Explicit confirmation that transcript, speaker, Moment, and Clip work is preserved."
      },
      "outcome": {
        "type": "string",
        "description": "Present as refused when the Recording generation is owned by the media-evidence pipeline."
      },
      "reason": {
        "type": "string",
        "description": "Typed refusal reason when legacy preview repair is fenced, or media_cell_recovery_pipeline_retired / media_cell_recovery_worker_image_retired when same-generation retry is closed."
      },
      "next_action": {
        "type": "object",
        "description": "Typed wait, explicit media-evidence retry on the current admission pipeline, or replace_recording when the predecessor pipeline or worker image is retired."
      },
      "poster_repair": {
        "type": "object",
        "description": "Exact generation, published execution, durable repair job, and status for an explicitly requested media-cell poster restoration."
      }
    },
    "required": [],
    "additionalProperties": false
  }
}
```

## Errors

```json
[
  "recording_not_found",
  "invalid_input",
  "media_cell_recovery_pipeline_retired",
  "media_cell_recovery_worker_image_retired"
]
```

## Examples

```json
[]
```
