Intégrer une API de distribution musicale consiste à connecter votre propre système à un pipeline qui ingère un catalogue, valide ses métadonnées, livre les sorties aux plateformes de streaming et récupère les redevances et les analyses. Vous créez des labels, des sorties et des pistes via des appels HTTP plutôt que par un formulaire web, vous soumettez chaque sortie à la validation, vous déclenchez la livraison vers les DSP, puis vous récupérez les streams et les relevés pour les réconcilier avec vos propres registres. Les appels en eux-mêmes sont la partie facile. Le vrai travail consiste à modéliser correctement les métadonnées musicales, à gérer les étapes asynchrones, et à se préparer au jour où une livraison reviendra rejetée.
Ce guide parcourt cette intégration dans l’ordre où vous la construiriez réellement : authentification, création et livraison d’une sortie, gestion de la validation et des erreurs, puis lecture des chiffres et de l’argent en retour. Les esquisses d’endpoints ci-dessous utilisent l’API publique de LabelGrid, mais la structure s’applique à la plupart des plateformes de distribution. Les champs exacts, les paramètres et les codes d’erreur se trouvent dans la documentation API publique, ceci est donc la carte, pas la référence champ par champ.
Que fait réellement une API de distribution musicale ?
Une API de distribution expose le cycle de vie d’une sortie sous forme d’endpoints. Il y a quatre étapes, et chaque intégration les traverse dans le même ordre. D’abord, l’ingestion de catalogue : vous créez les labels, les sorties et les pistes qui composent votre catalogue, et vous y attachez les métadonnées et l’audio. Ensuite, la validation : vous vérifiez une sortie par rapport aux règles des plateformes avant qu’elle n’aille où que ce soit. Puis, la livraison : vous distribuez la sortie validée vers les services de streaming et les plateformes. Enfin, la relecture : vous récupérez les analyses et les relevés de redevances afin que votre propre système sache ce qui s’est passé une fois la musique en ligne.
Sous la livraison se trouve DDEX, la norme du secteur pour décrire une sortie et son audio afin qu’une plateforme puisse l’ingérer. Vous ne touchez presque jamais à DDEX directement. La plateforme le génère à partir de la sortie que vous avez construite via l’API et le transmet à chaque DSP pour vous. C’est tout l’intérêt d’utiliser une API de distribution plutôt que d’intégrer chaque plateforme une par une : un seul modèle de sortie en entrée, une livraison conforme à DDEX vers tous les grands DSP en sortie. L’API de distribution de LabelGrid couvre les quatre étapes, de l’ingestion aux relevés, sous une seule surface authentifiée.
Les endpoints sur lesquels vous vous appuierez correspondent clairement à ces étapes :
GET /api/public/me # vérifier le token, savoir qui vous êtes
GET /api/public/releases # lister votre catalogue
POST /api/public/releases # créer une sortie (ingestion)
POST /api/public/releases/{id}/validate # vérifier une sortie par rapport aux règles des plateformes
POST /api/public/releases/{id}/distribute # livrer aux DSP
GET /api/public/analytics # streams et données d'écoute
GET /api/public/statements # relevés de redevances
Considérez cette liste comme le squelette de toute l’intégration. Tout le reste, ce sont des métadonnées, des tentatives et de la réconciliation accrochées à ces sept appels.
Comment vous authentifier ?
L’authentification repose sur un token Bearer envoyé à chaque requête. Vous vous inscrivez, vous générez un identifiant API, et vous l’envoyez dans l’en-tête Authorization. Il n’y a aucun appel de démonstration à réserver ni aucun filtre commercial à franchir au préalable. L’inscription est en libre-service, la documentation est publique, et une fois qu’un plan API est actif, vous pouvez effectuer des appels authentifiés dès l’après-midi même. Les tokens sont générés depuis les paramètres de votre compte, et vous pouvez éventuellement restreindre un token à des IP connues. Le premier appel à effectuer est GET /api/public/me, qui vous indique si le token est valide et à quel compte il appartient :
curl https://api.labelgrid.com/api/public/me \
-H "Authorization: Bearer <token>"
Obtenez une réponse propre à cet appel avant de construire quoi que ce soit d’autre. Un appel me qui fonctionne prouve que votre identifiant, votre URL de base et votre client HTTP sont tous corrects, de sorte que tout échec ultérieur concernera la sortie, pas la plomberie. Stockez le token comme un secret, jamais dans le contrôle de version ni dans un bundle client, et traitez-le comme un mot de passe : faites-le tourner s’il fuite, et utilisez des identifiants distincts pour le sandbox et la production, afin qu’un test ne puisse jamais toucher au catalogue en production. Le type exact de token, son comportement d’expiration et les en-têtes supplémentaires éventuels sont documentés dans la référence API ; ne les devinez pas, lisez-les une bonne fois pour toutes et encapsulez-les dans un petit client.
Comment créer et livrer une sortie ?
Trois appels font passer une sortie de rien à la mise en ligne. Vous la créez, vous la validez, et vous la distribuez :
POST /api/public/releases # 1. créer la sortie et ses métadonnées
POST /api/public/releases/{id}/validate # 2. la vérifier par rapport aux règles des plateformes
POST /api/public/releases/{id}/distribute # 3. la livrer aux DSP
L’étape de création est celle où vous passez le plus de temps d’ingénierie. Une sortie porte beaucoup de métadonnées : titre, artistes et contributeurs, date de sortie, label, artwork, et les pistes avec leurs propres titres, crédits et audio. Les champs précis, les formats, et lesquels sont obligatoires figurent tous dans la documentation, et vous devriez les modéliser exactement plutôt que de les approximer. De mauvaises métadonnées sont la cause la plus fréquente d’échec ultérieur d’une sortie, donc validez vos propres entrées avant même de les envoyer. Vérifiez les dimensions de l’artwork, confirmez que chaque piste a bien un audio et un ISRC, et normalisez les noms d’artistes de votre côté, car repérer un problème dans votre code coûte bien moins cher que de le découvrir via un rejet d’une plateforme.
Rendez la création idempotente. Les appels réseau échouent parfois à mi-chemin, et vous ne voulez pas qu’une nouvelle tentative produise une seconde copie de la même sortie. Utilisez une clé d’idempotence, ou vérifiez l’existence d’une sortie via votre propre référence avant d’en créer une nouvelle, afin qu’une requête répétée renvoie la même sortie au lieu de la dupliquer. C’est particulièrement important lors d’un import de catalogue en masse, où une connexion instable sur plusieurs milliers de sorties finira à coup sûr par déclencher une nouvelle tentative quelque part.
La livraison est asynchrone. Lorsque vous appelez distribute, vous mettez un job en file d’attente, vous n’obtenez pas de réponse instantanée. L’API accepte la requête, puis la plateforme génère le DDEX et l’envoie à chaque plateforme en arrière-plan, ce qui peut prendre du temps. Concevez votre code pour cela dès le départ : déclenchez l’appel distribute, enregistrez que vous l’avez demandé, puis interrogez périodiquement la sortie pour connaître son statut de livraison plutôt que de bloquer en attendant une réponse. Tout code qui suppose que la distribution se termine de manière synchrone échouera dès la première fois qu’une livraison réelle prendra plus d’une seconde.
Comment gérer la validation et les erreurs ?
La validation est une étape distincte, et ce n’est pas un hasard. Appeler POST /api/public/releases/{id}/validate vérifie une sortie par rapport aux exigences des plateformes et vous renvoie ce qui ne va pas avant que vous ne vous engagiez dans la livraison. Validez toujours avant de distribuer. Une sortie qui échoue à la validation et qui est envoyée quand même gaspille un cycle de livraison et, pire, peut entraîner un rejet chez la plateforme, bien plus lent et plus pénible à défaire qu’une erreur de validation corrigée en amont. Construisez la boucle comme suit : créer, valider, corriger, valider à nouveau, et ne distribuer qu’une fois la validation propre.
Séparez la gestion de vos erreurs par catégorie, car les deux catégories appellent des réponses opposées. Une erreur 4xx est de votre fait : un champ mal formé, un ISRC manquant, un artwork trop petit. La réessayer sans la modifier échouera à nouveau, donc signalez-la, corrigez la donnée, et resoumettez. Une erreur 5xx ou un timeout réseau est transitoire : réessayez, mais avec un backoff exponentiel et un plafond, pas une boucle serrée qui martèle l’API. Combinez cela avec la clé d’idempotence de l’étape de création, afin qu’une nouvelle tentative après un timeout ne puisse pas dupliquer accidentellement le travail. Lisez les codes d’erreur réels et leur signification dans la documentation plutôt que de les déduire, et associez chacun à une action claire dans votre propre système : réessayer, corriger-et-resoumettre, ou escalader vers un humain.
Journalisez chaque requête et chaque réponse avec un identifiant de corrélation. Quand une sortie sera bloquée dans trois semaines, le journal de ce que vous avez envoyé et de ce qui est revenu fera toute la différence entre une correction de cinq minutes et un après-midi passé à deviner.
Comment récupérer les redevances et les analyses ?
La distribution n’est que la moitié de la boucle. Une fois la musique en ligne, vous récupérez les performances et les revenus afin que votre système reflète la réalité. Deux endpoints couvrent cela :
GET /api/public/analytics # streams, auditeurs et données de performance
GET /api/public/statements # relevés de redevances et revenus
Les analyses servent aux tableaux de bord et aux décisions : streams, données d’écoute, et performance d’une sortie sur les différentes plateformes. Les relevés servent à la comptabilité : ce qu’une période a réellement rapporté, prêt à être réconcilié avec les partages et les versements que vous devez aux artistes. Récupérez les deux selon un calendrier régulier, stockez-les dans votre propre base de données rattachée à votre catalogue, et réconciliez plutôt que de faire confiance à une seule récupération. Les données de reporting se stabilisent avec le temps, car les plateformes remontent parfois des chiffres en retard ; considérez donc chaque récupération comme l’image la plus récente, pas comme définitive, et laissez une récupération ultérieure corriger une estimation antérieure.
Attendez-vous à ce que ces réponses soient paginées, et parcourez toutes les pages jusqu’au bout plutôt que de lire la première page et de vous arrêter. Pour la fraîcheur des données, choisissez entre le polling et les webhooks selon vos besoins. Un job de réconciliation nocturne se contente très bien d’un polling. Si vous devez réagir dès qu’une livraison passe en ligne ou qu’un relevé arrive, et que des webhooks sont disponibles, abonnez-vous à l’événement plutôt que de faire du polling chaque minute. Les paramètres de requête exacts, les plages de dates et la forme des réponses pour les deux endpoints figurent dans la référence API, afin que vous puissiez récupérer exactement la fenêtre dont vous avez besoin.
Comment tester dans un sandbox avant la production ?
Ne construisez jamais une intégration de distribution directement contre la production. LabelGrid fournit un environnement sandbox aux côtés de la documentation publique précisément pour que vous puissiez exécuter l’ensemble du cycle création, validation et distribution sans rien envoyer à une plateforme réelle. Câblez vos tests d’intégration sur le sandbox dès le premier jour, avec un identifiant distinct, afin qu’un test ne puisse jamais livrer accidentellement une sortie inachevée à Spotify.
Testez avec des données adversariales, pas seulement un chemin nominal propre. Alimentez le sandbox avec des sorties comportant des ISRC manquants, des artworks trop petits, des noms d’artistes vides et des dates invalides, et vérifiez que votre logique de validation et de nouvelle tentative réagit correctement dans chaque cas. Une sortie propre prouve que le pipeline se connecte ; les sorties cassées prouvent que votre gestion des erreurs fonctionne réellement, et c’est là que vivent les vrais catalogues. Faites du cycle de vie du sandbox une partie intégrante de votre suite de tests, afin que chaque changement apporté à votre client soit exercé de bout en bout avant sa mise en production.
Que devriez-vous construire en premier ?
Construisez un squelette fonctionnel avant de construire quoi que ce soit de large. L’objectif du premier jalon est qu’une seule sortie traverse toute la boucle dans le sandbox, de bout en bout, afin que vous ayez validé l’ensemble du chemin avant d’en optimiser une quelconque partie. Dans l’ordre :
- Authentifiez-vous et obtenez une réponse propre de
GET /api/public/me. - Créez une sortie avec des métadonnées de forme réaliste via
POST /api/public/releases. - Validez-la, lisez les échecs, corrigez les données, et validez jusqu’à ce qu’elle passe.
- Distribuez-la dans le sandbox et interrogez la sortie jusqu’à ce que la livraison indique qu’elle est terminée.
- Récupérez les analyses et un relevé, puis stockez-les en lien avec votre catalogue.
Une fois ce squelette au vert, élargissez-le délibérément : ingestion de catalogue en masse avec idempotence, backoff et routage d’erreurs adéquats, synchronisations planifiées des analyses et des relevés, et webhooks si vous avez besoin d’une latence plus faible. Résistez à l’envie de construire l’importeur de catalogue complet avant qu’une seule sortie n’ait jamais été mise en ligne dans le sandbox. Les intégrations livrées dans les temps sont celles qui font passer une sortie jusqu’au bout en premier, puis qui font monter en charge le schéma qui fonctionne déjà.
Deux choses déterminent la fluidité du reste de la construction. Bien modéliser vos métadonnées, afin que les sorties passent la validation du premier coup, et traiter la livraison et le reporting comme asynchrones dès le départ, afin que rien dans votre code ne suppose une réponse instantanée. Réussissez ces deux points et une intégration d’API de distribution devient un problème d’ingénierie bien maîtrisé. Si vous évaluez des plateformes, l’aperçu développeurs et la documentation marque blanche et API couvrent ce que la surface expose, et la référence des endpoints est publique sur api.labelgrid.com/docs/api.
Intégrez la distribution comme les développeurs l’attendent
Une API publique avec un environnement sandbox, une inscription en libre-service, et une livraison conforme à DDEX vers tous les grands DSP. Lisez la documentation, construisez avec le sandbox, mettez en production quand vous êtes prêt.
Voir les plans APIQuestions fréquentes
Qu'est-ce qu'une API de distribution musicale ?
Une API de distribution musicale est une interface programmatique permettant de mettre des enregistrements en ligne sur les services de streaming et les plateformes sans passer par un formulaire web. Vous créez des labels, des sorties et des pistes via HTTP, vous soumettez chaque sortie à la validation, vous déclenchez la livraison vers les DSP, puis vous récupérez les streams, les données d’écoute et les relevés de redevances dans votre propre système. C’est le même pipeline de distribution que celui piloté par un tableau de bord, exposé sous forme d’endpoints afin que votre logiciel puisse l’exécuter.
Faut-il connaître DDEX pour intégrer l'API ?
Pas pour démarrer. DDEX est la norme de métadonnées et d’audio que les distributeurs utilisent pour livrer les sorties aux plateformes, et une bonne plateforme génère ce DDEX pour vous à partir de la sortie que vous créez via l’API. Vous travaillez avec des sorties, des pistes et des champs de métadonnées ; la plateforme gère l’encapsulation DDEX derrière l’appel de livraison. Comprendre DDEX vous aide à saisir pourquoi certaines métadonnées sont requises, mais vous n’avez pas à l’écrire à la main.
Combien de temps prend l'intégration d'une API de distribution musicale ?
Cela dépend du périmètre. Une intégration minimale qui crée une sortie, la valide et la livre peut fonctionner contre un sandbox en quelques jours. Une intégration de production complète, avec synchronisation de catalogue, gestion des tentatives, réconciliation des analyses et import des relevés de redevances, prend plus de temps, car l’essentiel de l’effort réside dans la modélisation correcte des métadonnées et la gestion des flux asynchrones et des erreurs, plutôt que dans les appels eux-mêmes.
Que peut-on faire avec une API de distribution ?
Ingestion de catalogue, validation des sorties, livraison et distribution vers les DSP, analyses et relevés de redevances. En pratique, cela signifie créer et mettre à jour votre catalogue, vérifier les sorties par rapport aux règles des plateformes avant de les envoyer, les distribuer, puis récupérer les streams et les revenus pour les réconcilier avec votre propre comptabilité.
Faut-il interroger l'API (polling) ou utiliser des webhooks pour le statut de livraison ?
Les deux approches sont valables, et la bonne dépend de ce que votre plateforme expose et de la rapidité avec laquelle vous devez réagir. Les webhooks vous poussent un changement de statut dès qu’il se produit et évitent un polling constant ; le polling est plus simple à mettre en place et convient bien aux tâches de fond qui réconcilient périodiquement. De nombreuses équipes commencent par du polling pour la livraison et les analyses, puis basculent les événements sensibles à la latence vers des webhooks lorsqu’ils sont disponibles.
Existe-t-il un sandbox pour tester une API de distribution ?
Oui. LabelGrid fournit un environnement sandbox aux côtés de sa documentation API publique, afin que vous puissiez exercer l’ensemble du cycle création, validation et distribution avant de toucher à la production. Testez avec des métadonnées de forme réaliste mais adversariales, pas seulement des données propres, afin que votre gestion des erreurs soit éprouvée avant qu’une véritable sortie n’en dépende.