Documentación de API
Endpoint: /api/pending
Descripción
Este endpoint es consultado por el worker para obtener información sobre el próximo video pendiente. El sistema selecciona el video pendiente más antiguo primero.
Detalles
- URL:
/api/pending - Método: GET
- Autenticación: Bearer Token
Headers
Authorization: Bearer {API_KEY}Respuesta Exitosa (200 OK)
{
"videoUrl": "https://ejemplo.com/video.mp4",
"videoId": "12345",
"playlist": "Nombre de la Playlist",
"title": "Título del Video",
"subtitle": "Subtítulo del Video"
}Respuesta Vacía (204 No Content)
Cuando no hay videos pendientes.
Respuestas de Error
- 401 Unauthorized:
{ "error": "No autorizado" } - 500 Internal Server Error:
{ "error": "Error al procesar la solicitud" }
Endpoint: /api/report
Descripción
El worker envía actualizaciones de estado y progreso a este endpoint.
Detalles
- URL:
/api/report - Método: POST
- Autenticación: Bearer Token
Headers
Content-Type: application/json
Authorization: Bearer {API_KEY}Cuerpo de la Solicitud
{
"status": "progress|error|success",
"message": "Mensaje descriptivo",
"timestamp": "2023-05-01T12:00:00Z",
"videoId": "12345",
"currentTime": "00:01:30.500", // Opcional, solo para status "progress"
"percent": 45, // Opcional, solo para status "progress"
"totalTime": "00:03:20.000" // Opcional, solo para status "progress"
}Valores posibles para "status"
- progress: Actualización de progreso durante la descarga
- error: Error ocurrido durante el procesamiento
- success: Operación completada con éxito
Respuesta Exitosa (200 OK)
{
"success": true
}Respuestas de Error
- 400 Bad Request:
{ "error": "Faltan campos requeridos: status, videoId, message" } - 401 Unauthorized:
{ "error": "No autorizado" } - 404 Not Found:
{ "error": "El video no existe" } - 500 Internal Server Error:
{ "error": "Error al procesar la solicitud" }
Endpoint: /api/log
Descripción
Este endpoint permite registrar y consultar los logs generados por el worker durante el procesamiento de los videos.
Detalles
- URL:
/api/log - Métodos: GET, POST
- Autenticación: Bearer Token
Headers
Content-Type: application/json
Authorization: Bearer {API_KEY}Método POST - Cuerpo de la Solicitud
{
"level": "INFO | ERROR | WARNING",
"message": "Mensaje descriptivo",
"timestamp": "2023-05-01T12:00:00Z",
"videoId": "12345" // Opcional, si no se proporciona se usa "UNKNOWN"
}Método GET - Parámetros de Consulta
- limit (opcional): Número máximo de logs a obtener. Por defecto: 50.
- level (opcional): Filtrar por nivel de log (INFO, ERROR, WARNING, etc.)
Respuesta GET Exitosa (200 OK)
[
{
"level": "INFO",
"message": "Descarga completada exitosamente",
"timestamp": "2023-05-01T12:00:00Z",
"videoId": "12345"
},
{
"level": "ERROR",
"message": "Error al procesar la solicitud",
"timestamp": "2023-05-01T11:55:00Z",
"videoId": "12345"
}
]Respuesta POST Exitosa (200 OK)
{
"success": true
}Efectos Adicionales
Si se envía un log con nivel "ERROR" para un videoId existente, el sistema actualizará automáticamente el estado del video a "failed" si estaba en proceso o pendiente.
Respuestas de Error
- 400 Bad Request:
{ "error": "Faltan campos requeridos: level, message, timestamp" } - 401 Unauthorized:
{ "error": "No autorizado" } - 500 Internal Server Error:
{ "error": "Error al procesar la solicitud" }