OpenAPI YAMLOpenAPI JSONproblemas YAMLResumen de la API
Este grupo tiene 38 operaciones, generadas a partir de api/openapi.yaml. Filtre por ruta, acción o autenticación. Cada endpoint indica sus entradas; despliéguelo para ver una plantilla de solicitud y los códigos de respuesta. Las plantillas necesitan sus propios valores y un cuerpo válido según el esquema.
Reemplace los marcadores en mayúsculas con sus valores. Para una solicitud JSON, guarde un cuerpo que coincida con el esquema en request.json. Los ejemplos de cookies usan un frasco de cookies local de una sesión autenticada.
Cargas multimedia
Listar medios
Lista multimedia listo, las más nuevas primero, máximo 1000 por página. folder mantiene solo los archivos directamente dentro de una carpeta multimedia (su ID), o con root solo los de la raíz de la biblioteca; un ID de carpeta bien formado que no nombra ninguna carpeta no lista nada. next_cursor es la posición de la última fila devuelta mientras queden más filas; páselo como after, con los mismos filtros, para la siguiente página. next_cursor es nulo en la última página.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| etiqueta | consulta | opcional | Etiqueta multimedia exacta. Los objetos sin etiqueta se omiten cuando este filtro está presente. |
| primitiva | consulta | opcional | |
| carpeta | consulta | opcional | Un ID de carpeta multimedia mantiene solo los archivos directamente dentro de esa carpeta, no los de sus subcarpetas; root mantiene solo los archivos en la raíz de la biblioteca. Omitir lista todos los archivos. |
| ids | consulta | opcional | IDs de medios separados por comas, como máximo 200 distintos; si son más, es invalid_request en ids. Conserva solo esos archivos: un id que no nombra ningún archivo listo está ausente, y los demás filtros y la paginación se siguen aplicando. Un valor vacío no lista nada. |
| library | consulta | opcional | true enumera el proyecto Biblioteca de la organización en lugar de este proyecto: sus elementos son de solo lectura aquí y llevan library true. Una organización sin Biblioteca, o el propio proyecto Biblioteca, no enumera nada con true. |
| después | consulta | opcional | next_cursor de la página anterior de la misma lista, con los mismos filtros. Omitido comienza en la fila más reciente. Un valor que no sea tal cursor es invalid_request. |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Multimedia | MediaList (application/json) |
Crear generación de medios
Generar una imagen fija a partir de un prompt, almacenarla como medio privado listo del proyecto y facturar su uso. El POST responde 202 de inmediato con Operation, con o sin Prefer: respond-async, porque un proxy situado delante de la API descarta una solicitud que no envía ningún byte durante 100 s y una imagen fija de alta calidad puede tardar más.
Consulte GET /api/operations/{id} hasta que Operation sea succeeded, cuando su result es {media_id, usage: {quality, credits, usd}} (MediaGenerationUsage), o failed, cuando su error es el problema. Un rechazo decidido antes de cualquier trabajo del proveedor (payment_required, reseller_generation_limit, rate_limited, not_ready, invalid_request) aún responde al POST.
Nunca incluye bytes de imagen, b64_json, claves de objeto, URLs firmadas, URLs del proveedor, costo del proveedor, tokens del proveedor ni el nombre del modelo de despliegue. El prompt son bytes del cliente y no se repite.
Antes de que la indicación llegue al proveedor de imágenes, el servidor añade requisitos fijos de encuadre: la obra debe llenar el marco de borde a borde, y no se puede mostrar ningún televisor, monitor, pantalla, panel, marco, borde, montaje, soporte, pared, habitación, maqueta de dispositivo, sombra o fotografía de un letrero instalado, y cualquier texto en la indicación del llamante que describa dónde colgará el letrero o qué dispositivo lo mostrará se trata como metadatos de ubicación y no como tema.
Las reglas decorativas y los bordes dentro del propio diseño permanecen disponibles. El prompt del llamador nunca se reescribe ni se elimina y se almacena sin cambios. Idempotency-Key reproduce la misma Operation, nunca un segundo intento facturado. Los clientes no hacen PUT ni confirman los bytes generados.
La versión almacenada es WebP con pérdida (calidad 90) en el tamaño exacto de aspecto con un borde corto de 1080 px (16:9 es 1920x1080, 9:16 1080x1920, 1:1 1080x1080, 4:3 1440x1080, 3:4 1080x1440, 3:2 1620x1080, 2:3 1080x1620); el lienzo del proveedor se recorta y remuestrea centrado a ese tamaño.
El nombre de archivo es distintivo por generación, generado-16x9-1a2b3c4d.webp, con el sufijo tomado del id del medio. Obtenga los bytes con GET /api/media/{id}/content. Own-gen-then-upload sigue siendo válido.
En Standard, el saldo restante que no puede cubrir el doble del costo del proveedor de la imagen fija, redondeado a créditos enteros, después del piso de introducción (negativo 1,000,000 créditos hasta 2027-01-01, luego cero) devuelve payment_required, excepto SCREENRIG__ENVIRONMENT=development, y la admisión antes de la llamada al proveedor requiere un saldo por encima de ese piso por el mínimo por calidad: 200 créditos para baja, 800 para media, 2000 para alta.
Los demás planes nunca se rechazan por su saldo.
Una organización facturada a través de un revendedor es rechazada con reseller_generation_limit (402) en cuanto a los clientes delegados de su revendedor se les ha facturado el límite mensual de generación de imágenes ($100 a precio de lista mientras el revendedor espera revisión, $1,000 después, contado por mes UTC), salvo que el crédito propio de la organización cubra la imagen; una generación ya admitida termina.
Una configuración vacía del proveedor seleccionado devuelve not_ready. Solo con token de proyecto. Una sola generación en curso por organización; más paralelismo es rate_limited.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| Idempotency-Key | encabezado | requerido | |
| Prefer | encabezado | opcional | Opcional. La ruta responde 202 de inmediato con Operation, con o sin este encabezado; consulte Operation. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| prompt (requerido, cadena) | minLength: 1 maxLength: 4000 |
| aspect_ratio (opcional, cadena) | Permitido: "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" predeterminado: "16:9" |
| calidad (opcional, cadena) | Permitido: "low", "medium", "high" por defecto: "medium" |
| etiqueta (opcional, cadena) | patrón: "^[A-Za-z0-9]{1,32}$" |
| referencias (opcional, arreglo) |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/generations'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 202 | La generación fue aceptada y continúa; consulte GET /api/operations/{id} hasta que Operation sea succeeded (result media_id y usage) o failed (error). El mismo Idempotency-Key responde con la misma Operation. | Operación (application/json); encabezados: Preference-Applied, RateLimit-Policy, RateLimit |
| 402 | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
| 404 | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
| 500 | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Listar carpetas de medios
Lista todas las carpetas multimedia en el proyecto, máximo 1000, ordenadas por nombre. Las carpetas organizan la biblioteca multimedia, y un selector de playlist por:folder reproduce los archivos directamente dentro de una carpeta. El parent_id de una carpeta es nulo en la raíz de la biblioteca.
Construya el árbol desde parent_id; la carpeta de un archivo es Media.folder_id. library=true enumera en su lugar las carpetas de la Biblioteca de la organización (solo lectura; un selector by:folder puede nombrar una).
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| library | consulta | opcional | true enumera el proyecto Biblioteca de la organización en lugar de este proyecto: sus elementos son de solo lectura aquí y llevan library true. Una organización sin Biblioteca, o el propio proyecto Biblioteca, no enumera nada con true. |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media-folders'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Carpetas multimedia | MediaFolderList (application/json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Crear carpeta de medios
Crea una carpeta de medios en la raíz de la biblioteca (parent_id nulo o ausente) o dentro de parent_id. Los nombres se recortan, tienen de 1 a 100 caracteres Unicode sin controles, no son "." ni "..", y pueden repetirse. Una organización tiene como máximo 1000 carpetas en todos sus proyectos (quota_exceeded) anidadas a lo sumo 10 niveles (invalid_request). Emite media.folder_created.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
| project_id | consulta | opcional | Con dashboardSession, el proyecto mostrado al crear la carpeta. Si se proporciona, debe coincidir con el proyecto seleccionado en la sesión; de lo contrario, resource_conflict. Un valor vacío o repetido produce invalid_request. Omitirlo conserva la compatibilidad con clientes anteriores del panel. Las solicitudes con token de proyecto usan su proyecto autorizado. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| nombre (requerido, cadena) | Recortado; 1 a 100 caracteres Unicode, sin controles, no . ni .. minLength: 1 maxLength: 100 |
| parent_id (opcional, en línea) | La carpeta donde crearla; nulo o ausente para la raíz de la biblioteca. |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media-folders'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 201 | Carpeta creada. | MediaFolder (application/json); encabezados: ETag |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Obtener carpeta de multimedia
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media-folders/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Una carpeta de medios. | MediaFolder (application/json); encabezados: ETag |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Actualizar carpeta de medios
Renombra una carpeta (nombre) o la mueve con todo su contenido (parent_id, null para la raíz de la biblioteca). Una carpeta no puede moverse dentro de sí misma ni dentro de una carpeta contenida en ella, y el movimiento debe mantener todas las carpetas dentro de 10 niveles (invalid_request). Un cambio avanza la revisión de la carpeta y emite media.folder_updated; los mismos valores no tienen efecto.
If-Match protege opcionalmente la revisión.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| nombre (opcional, cadena) | Recortado; 1 a 100 caracteres Unicode, sin controles, no . ni .. minLength: 1 maxLength: 100 |
| parent_id (opcional, en línea) | Mueva la carpeta a esta; nulo para la raíz de la biblioteca. |
Plantilla y respuestas de solicitud
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media-folders/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Carpeta actualizada. | MediaFolder (application/json); encabezados: ETag |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Eliminar carpeta de multimedia
Elimina una carpeta. Nada dentro se elimina: sus archivos y carpetas se mueven al padre de la carpeta eliminada (la raíz de la biblioteca si no tenía padre), cada archivo y carpeta movidos avanza su revisión. Un selector de lista de reproducción por:folder que nombre la carpeta eliminada ya no coincide con nada; las pantallas en reproducción eliminan ese primitivo en su próxima resolución de selector.
Emite media.folder_deleted. If-Match protege opcionalmente la revisión.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Plantilla y respuestas de solicitud
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media-folders/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 204 | Eliminado; su contenido ahora está en su padre. | sin cuerpo |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Mover multimedia
Mueve archivos (media_ids) y carpetas (folder_ids) a una carpeta (folder_id), o a la raíz de la biblioteca cuando folder_id es nulo, en una sola solicitud todo o nada de hasta 1000 IDs. Cada ID debe existir (not_found). Una carpeta no puede moverse dentro de sí misma ni dentro de una carpeta contenida en ella, y el movimiento debe mantener cada carpeta dentro de 10 niveles (invalid_request).
Los elementos ya en el destino se dejan tal cual; cada archivo y carpeta movidos avanza su revisión. Mover archivos cambia lo que los selectores by:folder de sus carpetas vieja y nueva reproducen, desde la resolución del siguiente selector de cada pantalla; mover una carpeta no cambia los archivos propios de ninguna carpeta. Emite media.moved.
El movimiento de una credencial Propose hace que cada archivo movido quede pendiente y pone en cola su revisión de medios, y los selectores de listas de reproducción aprobadas lo resuelven por la carpeta con la que fue aprobado hasta que una persona aprueba el cambio (docs/reviews.md).
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| folder_id (requerido, en línea) | Carpeta de destino; nulo para la raíz de la biblioteca. |
| media_ids (opcional, arreglo) | |
| folder_ids (opcional, arreglo) |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/move'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Cuántos archivos y carpetas se movieron. | MediaMoveResult (application/json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Crear carga de medios
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| Idempotency-Key | encabezado | requerido | |
| project_id | consulta | opcional | Requerido con dashboardSession: el proyecto donde se puso en cola el archivo. Debe coincidir con el proyecto seleccionado en la sesión, de lo contrario resource_conflict. Esto vincula la admisión de carga entre pestañas. El id de carga devuelto permanece con alcance de proyecto para carga y compromiso de bytes. Omitido con un portador de proyecto. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| nombre de archivo (requerido, cadena) | Nombre de los bytes que se están subiendo, tal como se enviarán: solo un nombre de archivo de 255 bytes UTF-8 como máximo, sin directorio, barra invertida ni caracteres de control. minLength: 1 maxLength: 255 |
| source_filename (opcional, cadena) | Nombre original del archivo del llamante antes de cualquier transcodificación del lado del cliente. Solo el nombre del archivo, de 255 bytes UTF-8 como máximo. Guardado tal cual en el medio listo como source_filename y usado para derivar filename. minLength: 1 maxLength: 255 |
| content_type (obligatorio, cadena) | Permitido: "image/png", "image/jpeg", "image/webp", "image/gif", "video/mp4", "video/webm", "audio/mpeg" |
| bytes (requerido, entero) | mínimo: 1 máximo: 1073741824 |
| sha256 (obligatorio, cadena) | patrón: "^[a-f0-9]{64}$" |
| etiqueta (opcional, cadena) | patrón: "^[A-Za-z0-9]{1,32}$" |
| folder_id (opcional, cadena) | La carpeta de medios en la que cae el medio listo; si se omite, cae en la raíz de la biblioteca. La carpeta debe existir cuando se declara la carga (de lo contrario, invalid_request en folder_id) y cuando se confirma (la operación falla con invalid_request: declárela de nuevo). Un usuario de carga (docs/uploaders.md) debe enviar una de sus carpetas (de lo contrario, outside_upload_scope). |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/uploads'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 201 | Autorización firmada de corta duración para exactamente un PUT de objeto privado. Envíe el método devuelto y cada encabezado devuelto textualmente. Así también carga el dashboard. Su navegador envía los bytes con PUT directamente al almacén de objetos, nunca a través de la API, porque un proxy situado delante de la API rechaza un cuerpo de solicitud de más de 100 MB. Un navegador establece Content-Length por sí mismo a partir del cuerpo, por lo que envía cada encabezado devuelto excepto ese. | MediaUploadSession (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Confirmar carga de contenido multimedia
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| Idempotency-Key | encabezado | requerido |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| content_type (obligatorio, cadena) | Permitido: "image/png", "image/jpeg", "image/webp", "image/gif", "video/mp4", "video/webm", "audio/mpeg" |
| bytes (requerido, entero) | mínimo: 1 máximo: 1073741824 |
| sha256 (obligatorio, cadena) | patrón: "^[a-f0-9]{64}$" |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/uploads/RESOURCE_ID/commit'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 202 | Declaración exacta persistida para verificación asíncrona y publicación privada inmutable. | Operación (application/json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Selector de vista previa
Vista previa solo lectura de coincidencias actuales de imagen o video propiedad del proyecto. Devuelve orden de archivo y política normalizada; la reproducción aleatoria se baraja en cada nuevo ciclo en el Player. No avanza cursores, concede contenido ni altera manifiestos. Más de 1024 coincidencias devuelve invalid_request.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| zona horaria (opcional, cadena) | Zona IANA en la que se lee la disponibilidad del medio; UTC por defecto. |
| rect (opcional, objeto) | El tamaño rect de la primitiva; obligatorio con selector.fit aspect. |
| primitiva (requerido, cadena) | Permitido: "image", "video" |
| selector (requerido, en línea) |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/selectors/preview'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Coincidencias del selector actual. | SelectorPreview (application/json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Obtener multimedia
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Metadatos de medios privados listos. Los bytes originales están disponibles para el proyecto propietario mediante la ruta de exportación del proyecto y para una pantalla solo mediante una concesión exacta de manifiesto en tiempo de ejecución. | Multimedia (application/json); encabezados: ETag |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Parche de medios
Establece o borra la etiqueta o etiquetas del elemento multimedia. Un cambio de conjunto de etiquetas en una credencial Propose hace que el elemento quede pendiente y encola su revisión de medios; los selectores de listas de reproducción aprobadas lo resuelven por las etiquetas con las que fue aprobado hasta que una persona aprueba el cambio (docs/reviews.md). Un parche que mantiene el mismo conjunto de etiquetas se aplica y el elemento permanece aprobado.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Plantilla y respuestas de solicitud
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Medios listos con la etiqueta actualizada. Los selectores de etiqueta en tiempo de ejecución observan el cambio en su próxima actualización del ciclo de lista de reproducción. | Multimedia (application/json); encabezados: ETag |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Eliminar multimedia
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Plantilla y respuestas de solicitud
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 204 | Marcado para eliminación. No se pueden eliminar concesiones deseadas o activas referenciadas. | sin cuerpo |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Parche de etiquetas de medios
Una persona conectada establece las etiquetas de un ítem multimedia. tags es el conjunto nuevo completo, mantenido ordenado: la etiqueta única de un ítem, cuando tiene una, cuenta como una de sus etiquetas y se reemplaza con las demás, así que envíela de nuevo para conservarla. Un arreglo vacío borra todas las etiquetas, y una etiqueta mal formada o repetida, o más de 32, es invalid_request.
Es el cambio de etiqueta que patchMedia hace bajo una credencial Manage, en la sesión del panel: la revisión del media avanza en uno y media.updated lleva a la persona como actor, haya o no cambiado el conjunto. El cambio de una persona es en vivo, nunca una revisión.
Los contenidos multimedia que esperan la revisión de una persona (review_state pendientes, dejados por una carga o cambio con credenciales Propose) son rechazados con media_pending_review (409) y no cambia nada: decida su revisión primero en Revisiones, para que una edición de etiqueta nunca apruebe una propuesta de agente. Los selectores de listas de reproducción por etiqueta observan las nuevas etiquetas en su siguiente actualización del ciclo de lista de reproducción.
El cuerpo no tiene otro miembro. If-Match lleva la revisión del medio y es obligatorio (invalid_request cuando falta, revision_conflict cuando está obsoleta). Solo sesión del panel; los agentes cambian etiquetas con patchMedia. listMedia con etiqueta encuentra el elemento por sus nuevas etiquetas.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| id | ruta | requerido | |
| If-Match | encabezado | requerido | La revisión actual del elemento multimedia, citada o sin formato (el ETag de la última lectura). Una revisión obsoleta es revision_conflict con current_revision. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| etiquetas (requerido, arreglo) | Conjunto de etiquetas de reemplazo; un arreglo vacío lo borra. |
Plantilla y respuestas de solicitud
curl --request PATCH --cookie cookies.txt --cookie-jar cookies.txt --header 'If-Match: "REVISION"' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/RESOURCE_ID/tags'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | El elemento multimedia listo tal como está almacenado ahora; ETag lleva su revisión. | Multimedia (application/json); encabezados: ETag |
| 409 | media_pending_review — el elemento espera la revisión de una persona; decídalo primero. | Problema (application/problem+json) |
| 412 | revision_conflict: If-Match está obsoleto; current_revision del error contiene la revisión actual. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Parche de disponibilidad de medios
Define cuándo un medio puede ser elegido por los selectores dinámicos (all, tag y folder) que lo reproducen, o borra la regla con availability null. La regla es la del horario: from y until (civiles, precisión de minuto, until exclusivo), repeticiones de windows, monthly y dates, y fechas except, leídas en la zona horaria de cada pantalla que resuelve el selector.
Un archivo fuera de su regla queda excluido de la selección en el siguiente límite del bucle de la lista de reproducción y vuelve cuando la regla rige de nuevo; el borde de una ventana se sigue en el minuto posterior al siguiente bucle del Player. No cambia ninguna revisión de la lista de reproducción ni del manifiesto. Los ids explícitos (selector por id o ids) ignoran la regla, igual que todo lo que no es un selector dinámico.
Una pantalla sin conexión conserva su última selección hasta que se reconecta. Definir la regla que el elemento ya tiene no cambia nada. Una credencial Propose no puede definirla (insufficient_access): decidir cuándo se reproduce un medio corresponde a una persona con acceso Manage. Un medio en espera de revisión de una persona se rechaza con media_pending_review.
If-Match lleva la revisión del medio y es obligatorio.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | requerido | La revisión actual del medio, entre comillas o sin ellas (el ETag de la última lectura). Una revisión obsoleta da revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| availability (requerido, en línea) | La nueva regla, o null para que el archivo esté siempre disponible. |
Plantilla y respuestas de solicitud
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'If-Match: "REVISION"' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/media/RESOURCE_ID/availability'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | El elemento multimedia listo tal como está almacenado ahora; ETag lleva su revisión. | Multimedia (application/json); encabezados: ETag |
| 409 | media_pending_review — el elemento espera la revisión de una persona; decídalo primero. | Problema (application/problem+json) |
| 412 | revision_conflict — If-Match está obsoleto. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Reemplazar multimedia
Reemplaza en el sitio el archivo de un elemento multimedia listo por una carga declarada (createMediaUpload) cuyos bytes se escribieron, en lugar de confirmarla como medio nuevo.
El medio conserva su id, por lo que cada lista de reproducción y cada horario que lo nombra reproduce el archivo nuevo sin reprogramarse, y los selectores de carpeta, etiqueta y todos los medios que lo eligen lo reproducen en su siguiente resolución. El reemplazo debe ser del mismo tipo de archivo (imagen por imagen, vídeo por vídeo, audio por audio); otro tipo da invalid_request.
Se permite un cambio de relación de aspecto: el resultado de la operación incluye una entrada warnings aspect_ratio_changed que nombra las listas de reproducción que usan el elemento. Se aplican todas las reglas de carga (el límite de bytes de vídeo del plan, los límites de dimensiones y la cuota de almacenamiento).
El archivo en servicio permanece en el historial de versiones del medio (listMediaVersions) y cuenta en los bytes almacenados hasta que se elimina su versión. If-Match, si se envía, es la revisión del medio que leyó quien llama (revision_conflict si está obsoleta).
La respuesta es la operación de la carga, como en commitMediaUpload: consulte getOperation; el resultado de una operación correcta es {media_id, id, version, warnings}. Unos bytes idénticos al archivo en servicio no reemplazan nada y hacen fallar la operación con resource_conflict.
Con Propose efectivo, el reemplazo espera en cambio una revisión: la operación termina con éxito con result.status pending_review y result.review_id, el medio sigue reproduciendo su archivo hasta que una persona lo apruebe, y un reemplazo más reciente del mismo medio sustituye al que espera.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | La revisión actual del elemento multimedia, con o sin comillas. Si se omite, significa cualquiera. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| upload_id (requerido, cadena) | El id de una carga declarada con createMediaUpload y escrita en su upload_url, sin confirmar. minLength: 1 |
| note (opcional, string) | Una nota que se guarda con la nueva versión. maxLength: 280 |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/RESOURCE_ID/replace'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 202 | Se registró el reemplazo; la operación de la carga lleva su resultado. | Operación (application/json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Listar versiones de multimedia
Lista las versiones de un elemento multimedia, de la más reciente a la más antigua, con la versión en servicio primero (current: true). Una versión es un archivo que tuvo el elemento: number es su época de contenido más uno (1 para la carga, uno más por cada reemplazo, restauración o cambio de sincronización del medio), y sus bytes se conservan hasta que se elimina la versión.
Lea los bytes de una versión con GET /api/media/{id}/content?version=N.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| cursor | consulta | opcional | El next_cursor de la página anterior. |
| límite | consulta | opcional |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/versions'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Una página de versiones. | MediaVersionPage (application/json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Eliminar versión de multimedia
Elimina una versión anterior: su registro desaparece, sus bytes dejan de contar de inmediato en los bytes almacenados del proyecto y su objeto se retira pasadas 24 horas, salvo que otra versión o la versión en servicio contenga el mismo archivo. La versión en servicio no se puede eliminar (resource_conflict), y ninguna versión se puede eliminar mientras un reemplazo del medio espera revisión.
Una versión eliminada no se puede restaurar.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| versión | ruta | requerido | Un número de versión del elemento multimedia (listMediaVersions). |
Plantilla y respuestas de solicitud
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/versions/VERSION'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 204 | Se eliminó la versión. | sin cuerpo |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Restaurar versión de multimedia
Vuelve a poner en servicio una versión anterior como versión nueva, en la siguiente época de contenido del medio: el medio conserva su id y la revisión avanza una unidad, de modo que cada lista de reproducción y cada horario que lo nombra vuelve a reproducir ese archivo sin reprogramarse. La versión copiada permanece en el historial y comparte sus bytes; la versión nueva cuenta en los bytes almacenados como cualquier otra.
La versión en servicio no se puede restaurar (resource_conflict). If-Match, si se envía, es la revisión del medio que leyó quien llama. El cuerpo puede incluir una nota. Con Propose efectivo, la restauración se convierte en una revisión: 202 pending_review, y el medio conserva su archivo hasta que una persona lo apruebe.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| versión | ruta | requerido | Un número de versión del elemento multimedia (listMediaVersions). |
| If-Match | encabezado | opcional | La revisión actual del elemento multimedia, con o sin comillas. Si se omite, significa cualquiera. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| note (opcional, string) | Una nota que se guarda con la nueva versión. maxLength: 280 |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/RESOURCE_ID/versions/VERSION/restore'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | El medio tal como está ahora y las advertencias sobre el archivo restituido. | MediaRestored (application/json); encabezados: ETag |
| 202 | La restauración espera la revisión de una persona. | MediaRestorePending (application/json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Exportar contenido multimedia
Exporta la versión inmutable original propiedad del proyecto autenticado. El portador del proyecto paga el crédito normal de solicitud API autenticada, y los bytes de respuesta completados se registran como egreso project_media_export. El identificador de medios nunca es authority: el identificador de otro proyecto devuelve not_found.
La API transmite desde almacenamiento privado y nunca publica una clave de objeto, URL de almacenamiento ni GET firmado. El nombre del archivo adjunto es el identificador multimedia más la extensión canónica para el tipo de contenido verificado. Leer contenido nunca se rechaza por el saldo.
Una sesión del panel ve los mismos bytes en línea: los bytes completados se registran como egreso dashboard_media, y la respuesta es privada, no-cache para que el navegador mantenga una copia y la revalide con If-None-Match. La respuesta de un portador de proyecto permanece privada, no-store.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| Rango | encabezado | opcional | V1 acepta solo un rango de bytes. |
| If-None-Match | encabezado | opcional | ETag SHA-256 fuerte exacto de medios devuelto por esta ruta. |
| versión | consulta | opcional | Leer esta versión del medio (listMediaVersions) en lugar de la que está en servicio. |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/content'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Versión original completa. | cadena (image/png), cadena (image/jpeg), cadena (image/webp), cadena (image/gif), cadena (video/mp4), cadena (video/webm), cadena (audio/mpeg); encabezados: Accept-Ranges, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options |
| 206 | Un rango de bytes correcto según el estándar. | cadena (image/png), cadena (image/jpeg), cadena (image/webp), cadena (image/gif), cadena (video/mp4), cadena (video/webm), cadena (audio/mpeg); encabezados: Accept-Ranges, Content-Range, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options |
| 304 | El ETag inmutable exacto del medio coincide con If-None-Match. No se produce cuerpo ni incremento de egreso. | sin cuerpo; encabezados: ETag, Cache-Control |
| 402 | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
| 416 | Rango insatisfacible o mal formado. | Problema (application/problem+json); encabezados: Accept-Ranges, Content-Range |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Encabezado de contenido multimedia
Aplica las mismas reglas de propiedad del proyecto, condicionales, rango y almacenamiento privado que exportMediaContent sin abrir ni transferir la versión almacenada.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| Rango | encabezado | opcional | V1 acepta solo un rango de bytes. |
| If-None-Match | encabezado | opcional | ETag SHA-256 fuerte exacto de medios devuelto por esta ruta. |
| versión | consulta | opcional | Leer esta versión del medio (listMediaVersions) en lugar de la que está en servicio. |
Plantilla y respuestas de solicitud
curl --request HEAD --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/content'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Metadatos de versión completa sin cuerpo. | sin cuerpo; encabezados: Accept-Ranges, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options |
| 206 | Metadatos de rango de bytes sin cuerpo. | sin cuerpo; encabezados: Accept-Ranges, Content-Range, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options |
| 304 | El ETag inmutable exacto del medio coincide con If-None-Match. No se produce cuerpo. | sin cuerpo; encabezados: ETag, Cache-Control |
| 402 | El medidor de API de 1 crédito rechazó la solicitud con portador de un proyecto Standard que superó su asignación sin crédito. Una respuesta HEAD no lleva cuerpo de problema. | sin cuerpo |
| 416 | Rango insatisfacible o mal formado. | Problema (application/problem+json); encabezados: Accept-Ranges, Content-Range |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Listar cuentas de sincronización de medios
Lists the project's media sync accounts, newest first (200 per page; next_cursor continues). Each shows its tenant and client id, its state and its last test; the client secret is never returned, only whether one is set and its last four characters.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| cursor | consulta | opcional | El next_cursor de la página anterior. |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Las cuentas del proyecto. | MediaSyncAccountList (application/json); encabezados: Cache-Control |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Crear una cuenta de sincronización de medios
Añade una cuenta que sincroniza leyendo. kind microsoft365 almacena las credenciales de la propia aplicación de Microsoft Entra del proyecto, para que las sincronizaciones puedan leer una carpeta de SharePoint o de OneDrive para la empresa: config.tenant_id es el ID de directorio o el dominio principal del tenant (common, organizations y consumers se rechazan), config.client_id el ID de aplicación de la aplicación, y secret el valor de uno de los secretos de cliente de la aplicación; la aplicación necesita el permiso de aplicación de Microsoft Graph Sites.Selected (concedido en cada sitio) o Files.Read.All, con consentimiento del administrador.
En lugar de esos tres, config.connection_id nombra una conexión de Microsoft del proyecto (createConnection), en cualquiera de los dos modos, que inicia sesión y guarda el secreto. kind canva solo toma un nombre: la cuenta queda en pending_consent y la respuesta lleva authorize_url, un enlace de un solo uso (válido hasta authorize_expires_at) que abre la persona titular de la cuenta de Canva, con la sesión iniciada en Canva, para conectarla mediante la integración de Canva de screenRIG.
La concesión pertenece al proyecto, así que sus sincronizaciones sobreviven a la persona que la conectó.
Un servidor sin la integración de Canva responde 409 canva_not_configured. kind dropbox funciona como canva: la cuenta queda en pending_consent y authorize_url es un enlace de un solo uso que abre la persona titular de la cuenta de Dropbox, con la sesión iniciada en Dropbox, para permitir el acceso de solo lectura (files.metadata.read, files.content.read, account_info.read, sharing.read).
Se hace a través de la aplicación de Dropbox de screenRIG o, cuando config.app_key la nombra, a través de la propia aplicación de Dropbox del cliente (PKCE, así que no hay secreto de la aplicación; la aplicación debe incluir https://API_ORIGIN/api/dropbox/callback como URI de redirección).
Un servidor sin la aplicación de Dropbox de screenRIG responde 409 dropbox_not_configured a una cuenta dropbox sin app_key. kind google_drive queda en ready de inmediato y lee las carpetas compartidas con config.service_account_email: la cuenta de servicio de screenRIG, o la del propio cliente cuando secret es la clave JSON de esa cuenta de servicio.
Una carpeta compartida con la cuenta de servicio de screenRIG solo se sincroniza cuando un miembro del proyecto con un correo electrónico verificado la compartió o es su propietario. Un servidor sin la cuenta de servicio de screenRIG responde 409 google_drive_not_configured a una cuenta google_drive sin clave. Un secreto se sella en reposo y nunca se devuelve ni se registra. Añade media_sync_account.created.
Un reintento exacto con la misma Idempotency-Key devuelve la misma cuenta (un reintento de Canva o de Dropbox recibe un enlace nuevo).
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| kind (requerido, cadena) | Permitidos: "microsoft365", "canva", "dropbox", "google_drive" |
| nombre (requerido, cadena) | minLength: 1 maxLength: 80 |
| config (opcional, object) | Para microsoft365, o bien tenant_id y client_id (ambos) con secret, o bien connection_id solo: el id de una conexión de Microsoft de este proyecto. Para dropbox, app_key nombra opcionalmente la aplicación de Dropbox propia del cliente. No se acepta para canva ni google_drive. |
| secret (opcional, cadena) | Obligatorio para microsoft365 con tenant_id y client_id: el valor de uno de los secretos de cliente de la aplicación (no su id), como máximo 1024 caracteres. Para google_drive, opcional: la clave JSON de la propia cuenta de servicio de Google Cloud del cliente (type service_account), cuyo client_email pasa a ser el service_account_email de la cuenta; sin ella, la cuenta lee a través de la cuenta de servicio de screenRIG. No se acepta con connection_id, ni para canva ni para dropbox. minLength: 1 maxLength: 8192 |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/media-sync-accounts'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 201 | Creada, con su secreto enmascarado; una cuenta de Canva o de Dropbox también lleva authorize_url. | MediaSyncAccountConnect (application/json); encabezados: ETag, Cache-Control |
| 400 | invalid_request. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — el plan del proyecto no incluye la sincronización de medios; required_plan nombra el plan que sí la incluye. | Problema (application/problem+json) |
| 409 | canva_not_configured (este servidor no tiene la integración de Canva; solo para kind canva), dropbox_not_configured (no hay aplicación de Dropbox de screenRIG ni config.app_key; solo para kind dropbox), google_drive_not_configured (no hay cuenta de servicio de screenRIG ni clave; solo para kind google_drive), resource_conflict o idempotency_mismatch. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Obtener la cuenta de sincronización de medios
Una cuenta de sincronización de medios, con su secreto enmascarado.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Una cuenta. | MediaSyncAccount (application/json); encabezados: ETag, Cache-Control |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Actualizar la cuenta de sincronización de medios
Changes the name, tenant, client id or secret; an omitted secret keeps the stored one. A change of credentials discards the last test. A Canva account takes only a name; media sync account connect renews its connection. Appends media_sync_account.updated. If-Match guards the revision.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| nombre (opcional, cadena) | minLength: 1 maxLength: 80 |
| config (opcional, MediaSyncAccountConfig) | |
| secret (opcional, cadena) | Sustituye el secreto almacenado (un secreto de cliente de microsoft365, o la propia clave de cuenta de servicio de una cuenta google_drive, que debe pertenecer al mismo client_email); omítalo para conservar el almacenado. minLength: 1 maxLength: 8192 |
Plantilla y respuestas de solicitud
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Cuenta actualizada. | MediaSyncAccount (application/json); encabezados: ETag, Cache-Control |
| 400 | invalid_request. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — el plan del proyecto no incluye la sincronización de medios; required_plan nombra el plan que sí la incluye. Un cambio que solo reemplaza el secreto siempre está permitido, de modo que una cuenta cuyo secreto de cliente ha expirado sigue al día. | Problema (application/problem+json) |
| 412 | revision_conflict: If-Match está obsoleto; current_revision del error contiene la revisión actual. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Eliminar la cuenta de sincronización de medios
Deletes the account. Refused 409 resource_conflict while a sync reads through it; the detail names those syncs. Deleting a Canva account also revokes its tokens at Canva (a failure to revoke is logged and does not undo the delete). Appends media_sync_account.deleted. If-Match guards the revision.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Plantilla y respuestas de solicitud
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 204 | Eliminado. | sin cuerpo |
| 409 | resource_conflict (la cuenta la usan sincronizaciones) o idempotency_mismatch. | Problema (application/problem+json) |
| 412 | revision_conflict: If-Match está obsoleto; current_revision del error contiene la revisión actual. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Probar la cuenta de sincronización de medios
Signs in with the account's app and reports what Microsoft granted it: whether the credentials work and which Graph application permissions the token carries (Sites.Selected, Files.Read.All and the like). Sites.Selected is reported with a warning, because each site needs a grant for the app.
For a Canva account it reports whether Canva still accepts the connection. It does not judge a site's grant, a folder or a design, or consent beyond what the token carries. The result is stored as last_test. A failed check is ok false in the answer, not a problem.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID/test'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Lo que lleva el token de la aplicación. | MediaSyncTest (application/json); encabezados: Cache-Control |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Conectar la cuenta de sincronización de medios
Genera un nuevo enlace de consentimiento de un solo uso (authorize_url, válido hasta authorize_expires_at) para una cuenta de Canva o de Dropbox, para enviarlo a la persona titular de esa cuenta; la persona lo abre con la sesión iniciada en Canva o en Dropbox y permite el acceso. Sustituye cualquier enlace anterior.
Una cuenta conectada sigue conectada hasta que se completa el nuevo consentimiento, así que esto también renueva una conexión (estado reconnect_required) o la mueve a otra cuenta de Canva o de Dropbox. El enlace es una credencial del consentimiento: envíelo solo a esa persona.
Un servidor sin la integración de Canva responde 409 canva_not_configured; una cuenta de Dropbox sin app_key en un servidor sin la aplicación de Dropbox de screenRIG responde 409 dropbox_not_configured.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID/connect'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | La cuenta con un authorize_url nuevo. | MediaSyncAccountConnect (application/json); encabezados: ETag, Cache-Control |
| 400 | invalid_request — la cuenta no es una cuenta de Canva ni de Dropbox. | Problema (application/problem+json) |
| 409 | canva_not_configured (este servidor no tiene la integración de Canva) o dropbox_not_configured (no hay aplicación de Dropbox de screenRIG y la cuenta no tiene app_key). | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Listar diseños de sincronización de medios
Lists the Canva designs the connected person can see, most recently changed first (50 per page; continuation continues), optionally those matching query. Each shows its id, title, last change, page count and a view address. An account that is not connected is 409 canva_reconnect_required; a server without the Canva integration is 409 canva_not_configured.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| consulta | consulta | opcional | Lista solo los diseños cuyo título o texto coincide. |
| continuación | consulta | opcional | La continuación de la página anterior. |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID/designs'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Una página de diseños. | MediaSyncDesignList (application/json); encabezados: Cache-Control |
| 400 | invalid_request: la cuenta no es una cuenta de Canva, o query o continuation no es válido. | Problema (application/problem+json) |
| 409 | canva_reconnect_required (la cuenta no está conectada o Canva ya no respeta la conexión) o canva_not_configured (este servidor no tiene integración con Canva). | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Completar el consentimiento de Canva
Adónde envía Canva a la persona después de que permita (o rechace) el acceso en un enlace de consentimiento.
It carries no credential: the one-time state in the query finds the Canva account, must be unexpired and is used once, in the same write that stores the connection. screenRIG exchanges the code (PKCE, client authentication with the integration's credentials), reads whose Canva account it is, seals the tokens and appends media_sync_account.connected.
The answer is a short page naming the account and the project it was connected to; an error, an unknown, expired or used state, or a refused code renders the same page with the reason and changes nothing. Answers only on the API host.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| código | consulta | opcional | |
| estado | consulta | opcional | |
| error | consulta | opcional |
Plantilla y respuestas de solicitud
curl --request GET 'https://api.screenrig.ai/api/canva/callback'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | La página que indica que la cuenta está conectada. | cadena (text/html) |
| 400 | La página que indica por qué no se conectó nada. | cadena (text/html) |
| 502 | No se pudo contactar con Canva; el mismo enlace vuelve a funcionar. | cadena (text/html) |
| 409 | Canva no está configurado en este servidor. | cadena (text/html) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Completar el consentimiento de Dropbox
Adónde envía Dropbox a la persona después de que permita (o rechace) el acceso en un enlace de consentimiento.
No lleva ninguna credencial: el state de un solo uso de la consulta localiza la cuenta de Dropbox, no debe haber caducado y se usa una sola vez, en la misma escritura que guarda la conexión. screenRIG canjea el código (PKCE, con la aplicación de Dropbox de screenRIG o con el app_key propio de la cuenta), lee de quién es la cuenta de Dropbox, sella los tokens y añade media_sync_account.connected.
The answer is a short page naming the account and the project it was connected to; an error, an unknown, expired or used state, or a refused code renders the same page with the reason and changes nothing. Answers only on the API host.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| código | consulta | opcional | |
| estado | consulta | opcional | |
| error | consulta | opcional |
Plantilla y respuestas de solicitud
curl --request GET 'https://api.screenrig.ai/api/dropbox/callback'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | La página que indica que la cuenta está conectada. | cadena (text/html) |
| 400 | La página que indica por qué no se conectó nada. | cadena (text/html) |
| 502 | No se pudo contactar con Dropbox; el mismo enlace vuelve a funcionar. | cadena (text/html) |
| 409 | La cuenta no tiene app_key y la aplicación de Dropbox de screenRIG no está configurada en este servidor. | cadena (text/html) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Listar sincronizaciones de medios
Lists the project's media syncs, newest first (200 per page; next_cursor continues), optionally of one account_id or state. Each shows its source folder, the media folder it fills, its cadence, state, next run and the summary of its last run.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| cursor | consulta | opcional | El next_cursor de la página anterior. |
| account_id | consulta | opcional | Lista solo las sincronizaciones que leen a través de esta cuenta. |
| estado | consulta | opcional | Lista solo las sincronizaciones en este estado. |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-syncs'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Las sincronizaciones del proyecto. | MediaSyncList (application/json); encabezados: Cache-Control |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Crear una sincronización de medios
provider canva: lee el diseño (design es su id o su dirección canva.com/design/ID/...) a través de una cuenta de Canva conectada y guarda la sincronización, que vence ahora.
Each run asks Canva for the design's last change and, when it moved, exports the pages (pages, default all; format png gives one image per page and mp4 one video) and imports them into the media folder, replacing the bytes of a page already imported under the same media id so the playlists that use it update; a page the design no longer has leaves play like a removed SharePoint file.
Un diseño que Canva ya no muestra detiene la sincronización en el estado error (error de ejecución design_unavailable) y conserva los medios.
Un diseño o una página que la cuenta no puede ver da 409 media_sync_source_refused. provider dropbox: url es la dirección de la carpeta en Dropbox (https://www.dropbox.com/home/...), un enlace de carpeta compartida que la cuenta conectada ha agregado a su Dropbox, o una ruta que empieza con /; se lee una vez a través de una cuenta de Dropbox conectada y se guarda la sincronización, que vence ahora.
Las carpetas de un espacio de equipo se leen desde la raíz del equipo. Cada ejecución continúa desde la posición guardada de Dropbox en la carpeta, de modo que solo se leen los cambios.
Una carpeta que la cuenta no puede abrir da 409 media_sync_source_refused; una cuenta cuya conexión Dropbox ya no acepta da 409 dropbox_reconnect_required. provider google_drive: url es la dirección de la carpeta en Google Drive (https://drive.google.com/drive/folders/ID) o su id, compartida (basta con el rol Lector) con el service_account_email de la cuenta.
Cada ejecución lista la carpeta y compara la suma de verificación de cada archivo. Los archivos de Google Docs, Sheets y Slides se omiten como unsupported_type. Una carpeta que la dirección no puede abrir da 409 media_sync_source_refused.
Con la cuenta de servicio de screenRIG, la carpeta debe haber sido compartida por un miembro del proyecto con un correo electrónico verificado o ser de su propiedad (403 media_sync_sharer_not_member), y cada ejecución lo comprueba de nuevo (el error de ejecución sharer_not_member detiene la sincronización en el estado error). provider sharepoint: lee la dirección de la carpeta a través de la cuenta (una dirección de sitio de SharePoint como https://TENANT.sharepoint.com/sites/SITE/LIBRARY/FOLDER, o un enlace para compartir; la aplicación debe poder verla: Sites.Selected necesita una concesión en el sitio, un enlace para compartir necesita Files.Read.All) y guarda la sincronización, que vence ahora. folder_id es la carpeta de medios en la que se guardan los archivos; sin él, la sincronización crea una con el nombre de la carpeta de origen.
Each run imports the images (png, jpeg, webp, gif), videos (mp4, webm) and audio (mp3) directly in the source folder, replaces the bytes of a file that changed under the same media id so playlists that use it update, and takes a file removed at the source out of play: its media is deleted, or, while screens still hold it, moved to a Removed subfolder and deleted later.
Subfolders are ignored; other files are listed as skipped with the reason. every is the seconds between runs, 300 to 86400, default 900. A folder the provider refuses is 409 media_sync_source_refused and one it cannot reach is 500 media_sync_source_unavailable; nothing is stored. Appends media_sync.created.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| provider (requerido, cadena) | Permitidos: "sharepoint", "canva", "dropbox", "google_drive" |
| account_id (requerido, cadena) | Una cuenta del tipo que corresponde al proveedor: microsoft365 para sharepoint, canva, dropbox o google_drive. |
| url (opcional, cadena) | sharepoint (obligatorio): la dirección de SharePoint de la carpeta o un enlace para compartir, que se lee una vez para encontrar la carpeta y no se guarda. dropbox (obligatorio): la dirección de la carpeta en Dropbox, un enlace de carpeta compartida que la cuenta ha agregado, o una ruta que empieza con /. google_drive (obligatorio): la dirección de la carpeta en Google Drive o su id. maxLength: 4096 |
| design (opcional, cadena) | canva (obligatorio): el id del diseño o su dirección canva.com/design/ID/... maxLength: 2048 |
| pages (opcional, arreglo) | canva: las páginas que sincronizar; omítalo para todas. Un diseño que más tarde tenga menos páginas retira de la reproducción las que faltan. |
| format (opcional, cadena) | canva: png da una imagen por página; mp4 un vídeo de las páginas. Allowed: "png", "mp4" default: "png" |
| folder_id (opcional, cadena) | La carpeta de medios donde caen los archivos. Omítala para crear una con el nombre de la carpeta de origen. |
| every (opcional, entero) | Segundos entre ejecuciones; 900 por defecto. minimum: 300 maximum: 86400 |
| nombre (opcional, cadena) | Por defecto, el nombre de la carpeta de origen. minLength: 1 maxLength: 80 |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/media-syncs'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 201 | Creada, vence ahora. | MediaSync (application/json); encabezados: ETag, Cache-Control |
| 400 | invalid_request. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — el plan del proyecto no incluye la sincronización de medios; required_plan nombra el plan que sí la incluye. | Problema (application/problem+json) |
| 403 | media_sync_sharer_not_member — una carpeta de Google Drive leída a través de la cuenta de servicio de screenRIG no fue compartida por un miembro del proyecto con un correo electrónico verificado ni era de su propiedad. | Problema (application/problem+json) |
| 409 | media_sync_source_refused (el proveedor rechazó la aplicación, su permiso o la carpeta), dropbox_reconnect_required (hay que volver a conectar la cuenta de Dropbox), dropbox_not_configured, google_drive_not_configured, resource_conflict (la misma fuente ya está sincronizada en esa carpeta de medios) o idempotency_mismatch. | Problema (application/problem+json) |
| 500 | media_sync_source_unavailable: no se pudo contactar con el proveedor o respondió con un fallo. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Obtener la sincronización de medios
Una sincronización de medios, con el resumen de su última ejecución.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-syncs/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Una sincronización. | MediaSync (application/json); encabezados: ETag, Cache-Control |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Actualizar la sincronización de medios
Changes the name, every (seconds between runs), state (active or paused; active also resumes a sync an error stopped) or folder_id. A new folder_id points the sync at another media folder and makes its next run read the whole source again, which puts every synced file there. Appends media_sync.updated. If-Match guards the revision.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| nombre (opcional, cadena) | minLength: 1 maxLength: 80 |
| every (opcional, entero) | Segundos entre ejecuciones. minimum: 300 maximum: 86400 |
| state (opcional, cadena) | Permitidos: "active", "paused" |
| folder_id (opcional, cadena) |
Plantilla y respuestas de solicitud
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/media-syncs/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Sincronización actualizada. | MediaSync (application/json); encabezados: ETag, Cache-Control |
| 400 | invalid_request. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — el plan del proyecto no incluye la sincronización de medios; required_plan nombra el plan que sí la incluye. Pausar una sincronización siempre está permitido. | Problema (application/problem+json) |
| 412 | revision_conflict: If-Match está obsoleto; current_revision del error contiene la revisión actual. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Eliminar la sincronización de medios
Detiene la sincronización y olvida qué archivo de origen se convirtió en qué medio. Los medios y su carpeta permanecen. Agrega media_sync.deleted. If-Match protege la revisión.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Plantilla y respuestas de solicitud
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-syncs/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 204 | Eliminado. | sin cuerpo |
| 412 | revision_conflict: If-Match está obsoleto; current_revision del error contiene la revisión actual. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Ejecutar la sincronización de medios
Hace que la sincronización venza ahora y responde 202; un worker la ejecuta en unos 30 segundos y la respuesta de GET /api/media-syncs/{id} muestra su last_run.
Una sincronización detenida por un error vuelve a ejecutarse; una sincronización en pausa se rechaza hasta que se reanude. force=true hace que una sincronización de Canva exporte el diseño aunque Canva lo indique como sin cambios (se rechaza para una de SharePoint: ya descarga cada archivo modificado).
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
| forzar | consulta | opcional | Una sincronización de Canva exporta el diseño aunque Canva lo indique como sin cambios. |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-syncs/RESOURCE_ID/run'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 202 | La sincronización, que vence ahora. | MediaSync (application/json); encabezados: ETag, Cache-Control |
| 400 | invalid_request. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |