Oferta de lanzamiento: Los planes Creator y Business tienen descuento por tiempo limitado. Ver precios

Sesiones de subida

Las sesiones de subida permiten la subida por lotes de varias pistas a una colección. Opcionalmente puedes incluir un objeto anidado track al crear la sesión para crear también esa pista y recibir su URL de subida en la respuesta.

El player_color resuelto va acompañado de dos compañeros de solo lectura, player_color_light y player_color_dark, ajustados para permanecer legibles sobre fondos claros y oscuros respectivamente.

POST /v1/upload_session

Crea una nueva sesión de subida para subir pistas por lotes. Por defecto solo devuelve un upload_session_id — crea pistas vía POST /v1/upload/:upload_session_id/track. Opcionalmente incluye un objeto track anidado para crear también esa pista y recibir la URL de subida por pista en esta respuesta.

Parámetros

Nombre Tipo Obligatorio Descripción
collection_id uuid Obligatorio ID de la colección. Obligatorio salvo que la clave API tenga alcance a una colección.
creator_id uuid Opcional ID del creator
organization_index string Opcional Índice de organización (nivel de sesión)
metadata object Opcional Metadatos adicionales (nivel de sesión)
expires_in number Opcional Duración de la sesión en segundos (predeterminado: 3600, mín: 60, máx: 86400)
track Pista opcional object Opcional Cuando está presente, también crea esa pista y añade sus campos de subida a la respuesta. Campos anidados: file_name, organization_index, metadata.
track.file_name Pista opcional string Obligatorio Nombre de archivo original de la pista. Obligatorio cuando track está presente.
track.organization_index Pista opcional string Opcional Índice de organización de la pista (separado del campo a nivel de sesión).
track.metadata Pista opcional object Opcional Metadatos de la pista (separados del campo a nivel de sesión).

Ejemplo de solicitud

curl -X POST "https://api.audiodelivery.net/v1/upload_session" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "collection_id": "COLLECTION_ID",
  "expires_in": 7200
}'

Ejemplo con un track anidado opcional:

Ejemplo de solicitud

curl -X POST "https://api.audiodelivery.net/v1/upload_session" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "collection_id": "COLLECTION_ID",
  "track": {
    "file_name": "track-1.mp3"
  }
}'

Pista anidada opcional

Incluye un objeto anidado track para crear esa pista durante la creación de la sesión — la respuesta añade los mismos handles de subida que el endpoint por pista. Aún puedes añadir más pistas después con POST /v1/upload/:upload_session_id/track. Para flujos solo por lotes, omite track y crea cada pista con ese endpoint.

Respuesta

{
"ok": true,
"upload_session_id": "uuid",
"upload_session": {
  "id": "uuid",
  "creator_id": "uuid | null",
  "collection_id": "uuid",
  "organization_index": "string | null",
  "metadata": {},
  "expires_at": "string"
},
"player_color": "string | null",
"player_color_light": "string | null",
"player_color_dark": "string | null",
"expires_at": "string"
}

Respuesta cuando incluyes track

{
"ok": true,
"upload_session_id": "uuid",
"upload_session": {
  "id": "uuid",
  "creator_id": "uuid | null",
  "collection_id": "uuid",
  "organization_index": "string | null",
  "metadata": {},
  "expires_at": "string"
},
"player_color": "string | null",
"player_color_light": "string | null",
"player_color_dark": "string | null",
"expires_at": "string",
"track_id": "uuid",
"track": {
  "id": "uuid",
  "index": "string",
  "path": "string",
  "upload_url": "string"
},
"track_upload": {
  "method": "PUT",
  "upload_url": "string",
  "ttl": 0,
  "expires_at": "string"
},
"track_cover_upload": {
  "method": "POST",
  "upload_url": "string",
  "ttl": 0,
  "expires_at": "string"
}
}
GET /v1/upload_session/:upload_session_id

Recupera detalles de una sesión de subida. No se requiere autenticación — el ID de sesión actúa como credencial.

Parámetros

Nombre Tipo Obligatorio Descripción
upload_session_id uuid Obligatorio El ID de la sesión de subida (parámetro de ruta)

Ejemplo de solicitud

curl -X GET "https://api.audiodelivery.net/v1/upload_session/SESSION_ID"

Respuesta

{
"ok": true,
"upload_session_id": "uuid",
"upload_session": {
  "id": "uuid",
  "creator_id": "uuid | null",
  "collection_id": "uuid",
  "organization_index": "string | null",
  "metadata": {},
  "expires_at": "string"
},
"player_color": "string | null",
"player_color_light": "string | null",
"player_color_dark": "string | null",
"expires_at": "string"
}
POST /v1/upload/:upload_session_id/track

Crea una nueva pista dentro de una sesión de subida y devuelve su URL de subida por pista. Llama a esto una vez por archivo (incluyendo cualquier archivo adicional tras un track anidado opcional al crear la sesión). No se requiere autenticación — el ID de sesión actúa como credencial.

Parámetros

Nombre Tipo Obligatorio Descripción
upload_session_id uuid Obligatorio El ID de la sesión de subida (parámetro de ruta)
file_name string Obligatorio Nombre de archivo original de la pista
organization_index string Opcional Índice de organización
metadata object Opcional Metadatos adicionales

Ejemplo de solicitud

curl -X POST "https://api.audiodelivery.net/v1/upload/SESSION_ID/track" \
  -H "Content-Type: application/json" \
  -d '{
  "file_name": "track-1.mp3"
}'

Respuesta

{
"ok": true,
"api_request_id": "uuid",
"upload_session_id": "uuid",
"track_id": "uuid",
"track": {
  "id": "uuid",
  "index": "string",
  "path": "string",
  "upload_url": "string"
},
"upload_session": {
  "id": "uuid",
  "creator_id": "uuid | null",
  "collection_id": "uuid",
  "organization_index": "string | null",
  "metadata": {},
  "expires_at": "string"
},
"track_upload": {
  "method": "PUT",
  "upload_url": "string",
  "ttl": 0,
  "expires_at": "string"
},
"track_cover_upload": {
  "method": "POST",
  "upload_url": "string",
  "ttl": 0,
  "expires_at": "string"
}
}