demorphus

API Demorphus

L’API fait exactement ce que fait le Studio, depuis votre propre code : vous envoyez un morceau, Demorphus le traite et le vérifie avec SH Labs, puis vous récupérez le MP3. Même pipeline, même quota, même résultat.

1. Qui y a accès

Le quota est partagé avec le Studio : un morceau envoyé par l’API compte comme un morceau importé dans le Studio. Le compte gratuit n’a pas accès à l’API.

2. Créer une clé

Connectez-vous, ouvrez Accès API dans le Studio, donnez un nom à la clé et cliquez sur « Créer une clé API ».

3. Authentification

Base de l’API : https://studio.demorphus.com/api/v1

Chaque requête envoie la clé dans l’en-tête Authorization: Bearer dmk_live_…. Aucun cookie n’est lu.

curl -H "Authorization: Bearer $DEMORPHUS_KEY" https://studio.demorphus.com/api/v1/me

4. Traiter un morceau

Un morceau prend 10 à 15 minutes. L’API est donc asynchrone : vous envoyez le fichier, vous recevez un identifiant, puis vous demandez où en est le morceau jusqu’à ce qu’il soit prêt.

Envoyer le fichier

curl -H "Authorization: Bearer $DEMORPHUS_KEY" \
     -H "Idempotency-Key: $(uuidgen)" \
     -F [email protected] https://studio.demorphus.com/api/v1/tracks

Réponse 202, avec l’en-tête Location vers le morceau :

{"reused": false, "track": {"id": "8f0c…", "status": "queued", "audio_url": null, …}}

L’en-tête Idempotency-Key est facultatif mais conseillé. Si la connexion coupe et que vous renvoyez le même fichier avec la même valeur, vous recevez le même morceau (200, "reused": true) sans qu’il soit décompté deux fois. Une valeur par envoi : 1 à 64 caractères parmi A-Z a-z 0-9 _ . : -. Réutilisée avec un autre fichier, ou plus de 24 h après, elle répond 409.

Suivre le morceau

curl -H "Authorization: Bearer $DEMORPHUS_KEY" https://studio.demorphus.com/api/v1/tracks/$ID

Demandez toutes les 30 à 60 secondes. Le champ status vaut :

statusSens
queuedEn attente dans la file.
processingEn cours de traitement.
doneTerminé, le rendu passe sous le seuil SH Labs.
not_reachedTerminé, mais aucun rendu ne passe le seuil : le meilleur est livré et le morceau compte, comme dans le Studio.
unverifiedTerminé, rendu livré sans verdict SH Labs.
failedLe traitement a échoué.

Le morceau contient aussi les mêmes informations que le rapport du Studio : scores avant et après (baseline, attempts), durée, empreintes SHA-256 du fichier source et du résultat, date d’expiration.

Télécharger le MP3

curl -H "Authorization: Bearer $DEMORPHUS_KEY" -o song-demorphus.mp3 \
     https://studio.demorphus.com/api/v1/tracks/$ID/audio

Disponible quand status vaut done, not_reached ou unverified (le champ audio_url est alors rempli). Les fichiers sont effacés après 7 jours, comme dans le Studio.

5. Routes

RouteRôle
GET /meVotre formule et ce qu’il vous reste : plan, status, unlimited, remaining_this_month, used_this_month, credits.
POST /tracksEnvoie un morceau (champ multipart file).
GET /tracksListe vos morceaux, Studio compris.
GET /tracks/{id}Un morceau.
GET /tracks/{id}/audioLe MP3 traité.

6. Fichiers acceptés et limites

7. Erreurs

Toute erreur renvoie {"error": "…", "code": "…"} : error est un message lisible, code ne change pas et sert à votre code.

HTTPcode
400invalid_request
401invalid_key
402quota_exhausted
403forbidden
404not_found
405method_not_allowed
409conflict
413file_too_large
429rate_limited
503unavailable
autre (500…)error

402 quota_exhausted : le quota du mois est atteint et il ne reste pas de morceau à l’unité. Il repart le premier jour du mois suivant, ou achetez des morceaux à l’unité depuis Mon compte.