Resuelve la fuente de reproducción de un asset del catálogo.
packages/api-contracts/src/bus/nats.tsPá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:genla regenera ybun run docs:checkfalla 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).
| Campo | Valor |
|---|---|
| Familia | qry |
| Versión | 1 |
| Tope del payload | 65536 bytes |
| Contrato | CatalogResolvePlaybackSource en packages/api-contracts/src/bus/nats.ts |
BUS_ROUTES)Deny-by-default: un emisor fuera de la allowlist se deniega y se audita (dec-0119 §4).
| Atiende | Transporte | Emisores admitidos | Rate (por emisor) |
|---|---|---|---|
catalog-svc | nats | playback-svc | 100/s, ráfaga 200 |
{
"type": "object",
"required": [
"assetId"
],
"properties": {
"assetId": {
"type": "string"
},
"preferredKind": {
"type": "string"
}
}
}{
"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": {}
}
]
}
}
}
}
}
}
]
}