Ir al contenido

Consulta el consumo y exporta CSV

En Consumo, selecciona el entorno y 24 horas, 7, 30 o 90 días. Los lectores pueden consultar y exportar. La tabla incluye los assets eliminados que conservan atribución. El período filtra entregas y entradas; almacenamiento es la última observación válida, no un histórico.

Familia Medición Frontera
Almacenamiento Objetos S3 conocidos del asset, con claves deduplicadas No es espacio físico ni multipart incompleto
Entrega Bytes exactos de cuerpos HTTP 200/206 terminados No es tiempo visto, confirmación del cliente ni tráfico de una caché externa
Entrada registrada Fuente principal externa aceptada una vez No cuenta reintentos de transporte ni copias internas
Pistas añadidas Fuentes externas de audio/texto aceptadas una vez No cuenta pistas copiadas internamente; texto no tiene duración de audio

Un cuerpo cancelado o truncado deja bytes confirmados desconocidos; una finalización perdida puede quedar pendiente. Los escaneos de almacenamiento no son atómicos y un fallo conserva la última lectura válida con su estado. Sin medir, Sin historial, Obsoleto y cero son resultados diferentes. Los datos históricos anteriores al registro no se reconstruyen.

En tu backend con permiso video:read:

const report = await orilla.usage.retrieve({
timeframe: ["7:days"],
page: 1,
limit: 25,
});
console.log(report.data.storage, report.data.delivery);
console.log(report.data.ingest, report.data.auxiliary_ingest);
const bytes = report.data.storage.observed_bytes;
const exactBytes = bytes === null ? null : BigInt(bytes);

Bytes y milisegundos conocidos son strings decimales para conservar precisión. No conviertas enteros grandes a Number. Comprueba los contadores de cobertura: una suma conocida puede ser parcial. ingest y auxiliary_ingest pueden faltar en servidores anteriores; no los sustituyas por cero.

GET /v1/usage usa Bearer o sesión; /video/v1/usage usa Basic. Acepta asset_id UUID, page desde 1 y limit hasta 100 (predeterminado 25). El SDK transforma assetId a asset_id. timeframe admite una duración o dos Unix en segundos para el intervalo [inicio, fin), hasta 90 días.

Exportar CSV descarga todos los assets del entorno y período, independientemente de la página visible. Cambiar alcance cancela la preparación local; un fallo permite reintentar. El panel solicita v3 explícitamente.

import { writeFile } from "node:fs/promises";
const csv = await orilla.usage.exportCSV(
{
timeframe: ["7:days"],
schema: "v3",
},
{ signal: new AbortController().signal },
);
await writeFile("consumo.csv", csv, "utf8");
Esquema Columnas Contenido
v1, predeterminado en API/SDK 28 Almacenamiento y entrega
v2, explícito 34 Añade entrada principal
v3, explícito 42 Añade pistas auxiliares

La primera fila es summary; siguen filas asset ordenadas por UUID. El archivo conserva rango, generación UTC, política, cobertura y enteros exactos. Una celda vacía es desconocido; 0 es cero medido. Importa IDs y enteros grandes como texto en tu hoja de cálculo para conservar los dígitos.

Las rutas GET /v1/usage/export.csv y /video/v1/usage/export.csv aceptan período, asset y esquema; no aceptan page o limit. Cada exportación usa una instantánea PostgreSQL, sin ensamblar páginas de momentos distintos. La respuesta es CSV UTF-8 con BOM, CRLF y campos entre comillas; los textos con prefijos de fórmula reciben un apóstrofo de protección. El decodificador Fetch del SDK puede retirar el BOM.

Hasta 10.000 assets y 20 MiB por CSV; un exceso devuelve 413 antes del adjunto. Las consultas tienen presupuestos de población y cinco segundos por sentencia SQL; timeout devuelve 503. No se presenta una exportación truncada como completa. Si faltan los datos auxiliares necesarios, v3 falla sin reducir el esquema silenciosamente.

Los recibos de entrega/entrada se conservan 90 días. Las duraciones de entrada se atribuyen al momento de aceptación, aunque se confirmen después; no son la duración normalizada del asset. En importación HLS, bytes de entrada son cuerpos descargados, no tamaño del remux. Eliminar un asset conserva la atribución histórica; eliminar el entorno elimina sus datos.

Consumo no es una factura. Tarifas, costes versionados y atribución de costes continúan pendientes. Tampoco debe confundirse con las analíticas de reproducción ni con sus exportaciones diarias de vistas.