Offre de lancement : Les forfaits Creator et Business sont réduits pour une durée limitée. Voir les tarifs

Sessions d’envoi

Les sessions d’envoi permettent l’envoi par lot de plusieurs pistes vers une collection. Vous pouvez optionnellement inclure un objet track imbriqué lors de la création de la session pour aussi créer cette piste et recevoir son URL d’envoi dans la réponse.

Le player_color résolu est accompagné de deux compagnons en lecture seule, player_color_light et player_color_dark, ajustés pour rester lisibles respectivement sur des fonds clairs et sombres.

POST /v1/upload_session

Crée une nouvelle session d'envoi pour l'envoi par lot de pistes. Par défaut renvoie uniquement un upload_session_id — créez les pistes via POST /v1/upload/:upload_session_id/track. Incluez optionnellement un objet track imbriqué pour aussi créer cette piste et recevoir l'URL d'envoi par piste dans cette réponse.

Paramètres

Nom Type Obligatoire Description
collection_id uuid Obligatoire Identifiant de la collection. Requis sauf si la clé API est limitée à une collection.
creator_id uuid Facultatif Identifiant du créateur
organization_index string Facultatif Index d'organisation (niveau session)
metadata object Facultatif Métadonnées supplémentaires (niveau session)
expires_in number Facultatif Durée de la session en secondes (par défaut : 3600, min : 60, max : 86400)
track Piste facultative object Facultatif Lorsqu'il est présent, crée aussi cette piste et ajoute ses champs d'envoi à la réponse. Champs imbriqués : file_name, organization_index, metadata.
track.file_name Piste facultative string Obligatoire Nom de fichier original de la piste. Requis lorsque track est présent.
track.organization_index Piste facultative string Facultatif Index d'organisation pour la piste (distinct du champ au niveau session).
track.metadata Piste facultative object Facultatif Métadonnées pour la piste (distinctes du champ au niveau session).

Exemple de requête

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
}'

Exemple avec un track imbriqué optionnel :

Exemple de requête

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"
  }
}'

Piste imbriquée optionnelle

Incluez un objet track imbriqué pour créer cette piste pendant la création de session — la réponse ajoute les mêmes poignées d’envoi que le point de terminaison par piste. Vous pouvez toujours ajouter d’autres pistes plus tard avec POST /v1/upload/:upload_session_id/track. Pour les flux uniquement par lot, omettez track et créez chaque piste avec ce point de terminaison.

Réponse

{
"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"
}

Réponse lorsque vous incluez 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

Récupère les détails d'une session d'envoi. Aucune authentification requise — l'identifiant de session sert d'identifiant.

Paramètres

Nom Type Obligatoire Description
upload_session_id uuid Obligatoire L'identifiant de la session d'envoi (paramètre de chemin)

Exemple de requête

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

Réponse

{
"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

Crée une nouvelle piste dans une session d'envoi et renvoie son URL d'envoi par piste. Appelez ceci une fois par fichier (y compris tout fichier supplémentaire après une piste imbriquée optionnelle à la création de session). Aucune authentification requise — l'identifiant de session sert d'identifiant.

Paramètres

Nom Type Obligatoire Description
upload_session_id uuid Obligatoire L'identifiant de la session d'envoi (paramètre de chemin)
file_name string Obligatoire Nom de fichier original de la piste
organization_index string Facultatif Index d'organisation
metadata object Facultatif Métadonnées supplémentaires

Exemple de requête

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

Réponse

{
"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"
}
}