BusConsultas (qry)

qry.catalog.resolvePlaybackSource

Resuelve la fuente de reproducción de un asset del catálogo.

ImplementadoSin versión del tren todavía· generada desde packages/api-contracts/src/bus/nats.ts

Página generada desde packages/api-contracts/src/bus/nats.ts + packages/api-contracts/src/bus/routes.ts. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere.

qry.catalog.resolvePlaybackSource · v1

Resuelve la fuente de reproducción de un asset del catálogo: playback-svc la pide al abrir una sesión y recibe si está resuelta, la URI y el tipo de la fuente y sus capacidades de vídeo, rango dinámico y audio (la entrada del PlaybackPlan, r05).

CampoValor
Familiaqry
Versión1
Tope del payload65536 bytes
ContratoCatalogResolvePlaybackSource en packages/api-contracts/src/bus/nats.ts

Rutas (BUS_ROUTES)

Deny-by-default: un emisor fuera de la allowlist se deniega y se audita (dec-0119 §4).

AtiendeTransporteEmisores admitidosRate (por emisor)
catalog-svcnatsplayback-svc100/s, ráfaga 200

Petición

{
  "type": "object",
  "required": [
    "assetId"
  ],
  "properties": {
    "assetId": {
      "type": "string"
    },
    "preferredKind": {
      "type": "string"
    }
  }
}

Respuesta

{
  "anyOf": [
    {
      "type": "object",
      "required": [
        "ok",
        "data"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "resolved"
          ],
          "properties": {
            "resolved": {
              "type": "boolean"
            },
            "sourceUri": {
              "type": "string"
            },
            "sourceKind": {
              "type": "string"
            },
            "capabilities": {
              "type": "object",
              "required": [
                "video",
                "audio",
                "container"
              ],
              "properties": {
                "video": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "codec"
                    ],
                    "properties": {
                      "codec": {
                        "type": "string"
                      },
                      "maxWidth": {
                        "type": "number"
                      },
                      "maxHeight": {
                        "type": "number"
                      },
                      "maxBitDepth": {
                        "type": "number"
                      },
                      "chroma": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "dynamicRange": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "format"
                    ],
                    "properties": {
                      "format": {
                        "type": "string"
                      }
                    }
                  }
                },
                "audio": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "codec"
                    ],
                    "properties": {
                      "codec": {
                        "type": "string"
                      },
                      "maxChannels": {
                        "type": "number"
                      }
                    }
                  }
                },
                "subtitles": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "format"
                    ],
                    "properties": {
                      "format": {
                        "type": "string"
                      }
                    }
                  }
                },
                "container": {
                  "type": "object",
                  "required": [
                    "container"
                  ],
                  "properties": {
                    "container": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "ok",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message",
            "category",
            "retryable"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "category": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "transient"
                },
                {
                  "type": "string",
                  "const": "permanent"
                },
                {
                  "type": "string",
                  "const": "recoverable"
                }
              ]
            },
            "retryable": {
              "type": "boolean"
            },
            "suggestedAction": {
              "type": "string"
            },
            "details": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {}
                },
                {
                  "type": "array",
                  "items": {}
                }
              ]
            },
            "causedBy": {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {}
                  },
                  {
                    "type": "array",
                    "items": {}
                  }
                ]
              }
            }
          }
        }
      }
    }
  ]
}