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

Livraison signée (voie rapide)

Signez les URL de livraison sur votre propre serveur et ignorez entièrement les sessions de lecture. Pas d’aller-retour API, pas de jeton de session, pas d’en-tête Authorization — juste une URL que vos auditeurs peuvent streamer immédiatement.

Idéal pour

Catalogues publics, sites marketing, aperçus, et toute piste que vous êtes à l’aise de servir à quiconque possède le lien. La configuration prend environ 20 minutes.

Accès public

Quiconque possède une URL signée valide peut streamer le fichier jusqu’à expiration de la signature. Signez toujours sur votre serveur, choisissez une durée de vie de signature raisonnable, et supprimez les clés que vous n’utilisez plus. Chaque requête signée compte dans l’utilisation de lecture et la facturation.

Comparaison avec les sessions de lecture

Les chemins Hybride et Côté serveur génèrent une session de lecture — un jeton de courte durée par auditeur créé en appelant l’API AudioDN. Cet aller-retour est ce qui vous permet d’appliquer les entitlements (connexions, abonnements, achats) au moment de la lecture.

La livraison signée supprime cet aller-retour. Vous détenez un secret HMAC par organisation et signez l’URL de livraison vous-même, donc la requête de l’auditeur va directement vers votre domaine de livraison et est vérifiée en périphérie. Pour les pistes publiques où vous n’avez pas besoin d’autorisation par lecture, c’est l’option la plus rapide et la plus simple.

Session de lecture (Hybride / Côté serveur)Livraison signée (ce chemin)
Aller-retour API par auditeurOui — générer une sessionNon — signer localement
Autorisation par lectureAppliquée à la création de sessionVotre responsabilité (qui reçoit un lien)
Idéal pourAudio derrière un paywall / contrôléPistes publiques et aperçus
Lectures comptées pour la facturationOuiOui

Pour la référence complète — le schéma de signature, la portée des variantes et les détails de reporting — voir la documentation Signing Keys API.

Signature et livraison

Créez une clé de signature, signez sur votre serveur, streamez depuis votre domaine de livraison.

1. Créer une clé URL Signing

Dans le tableau de bord AudioDN, allez dans Settings → API Keys et créez une clé URL Signing. Le secret est montré une seule fois — stockez-le en sécurité sur votre serveur. Vous pouvez optionnellement définir une durée de vie de signature (ttl) et restreindre la clé à des variantes spécifiques.

2. Trouver votre domaine de livraison

Chaque organisation obtient un sous-domaine de livraison dédié de la forme {organization_id}.audiodelivery.net. Copiez le vôtre depuis Settings → Organization → Delivery Domain. L’URL complète d’un fichier est votre domaine de livraison plus le chemin du fichier :

https://1bb2f0c4-....audiodelivery.net/7e4386f0-..../20260709145408659.uSYrzmRWTDvEyjFz_lq.aac

3. Signer l'URL sur votre serveur

Calculez un jeton HMAC-SHA256 sur le chemin de la requête plus l’horodatage actuel, puis ajoutez-le comme paramètre de requête verify. Cette implémentation de référence utilise l’API Web Crypto et fonctionne dans Node 18+, Deno, Bun et la plupart des runtimes en périphérie :

function base64url(bytes) {
  let binary = '';
  const b = new Uint8Array(bytes);
  for (let i = 0; i < b.byteLength; i++) binary += String.fromCharCode(b[i]);
  return btoa(binary).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
}

async function hmacSha256(key, data) {
  const cryptoKey = await crypto.subtle.importKey(
    'raw', new TextEncoder().encode(key),
    { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']
  );
  return new Uint8Array(await crypto.subtle.sign('HMAC', cryptoKey, new TextEncoder().encode(data)));
}

// secret = the URL Signing key secret from the dashboard (keep this server-side)
// domain = your org delivery host, e.g. "1bb2....audiodelivery.net"
// path   = the file path, e.g. "folder-id/track-index_lq.mp3"
async function signUrl(secret, domain, path) {
  const u = new URL('https://' + domain + '/' + path);
  u.searchParams.delete('verify');

  const message = u.pathname + (u.search || '');
  const issued = Math.floor(Date.now() / 1000).toString();

  const mac = await hmacSha256(secret, message + issued);
  u.searchParams.append('verify', issued + '-' + base64url(mac)); // verify MUST be last

  return u.toString();
}

Gardez le secret côté serveur

Le secret de signature ne doit jamais atteindre le navigateur. S’il le fait, n’importe qui peut générer des URL pour votre audio. Signez dans une route backend et ne renvoyez que l’URL terminée au client.

4. Servir l'URL signée au client

// Express example: hand a freshly signed URL to your frontend.
app.get('/api/track-url', async (req, res) => {
  const url = await signUrl(
    process.env.ADN_SIGNING_SECRET,      // never expose this to the client
    process.env.ADN_DELIVERY_DOMAIN,     // e.g. 1bb2....audiodelivery.net
    req.query.path                       // folder-id/track-index_lq.mp3
  );
  res.json({ url });
});

Le frontend récupère une URL prête à lire — aucun matériel de clé n’est exposé.

5. Lisez-la partout où une URL fonctionne

Une URL signée n’est qu’une URL, donc elle s’insère directement dans un élément <audio> natif, votre propre lecteur personnalisé, ou un lien de téléchargement.

<!-- The signed URL works anywhere a normal audio URL does. -->
<audio controls src="https://{org}.audiodelivery.net/{file_path}?verify={issued}-{mac}">
</audio>

Vous utilisez le composant Player ADN ?

Le composant Player s’authentifie avec une clé API côté client ou un play-session-id plutôt qu’avec une URL pré-signée. Si vous voulez l’interface du lecteur ADN, utilisez le chemin Web ou Hybride. La livraison signée est destinée au streaming direct sans session de lecture.

6. Lectures et rapports

Les URL signées contournent la session de lecture, mais vos statistiques de lecture restent exactes — les lectures sont mesurées à partir de la livraison audio réelle sur votre domaine et agrégées à l’heure. Parce que chaque requête signée est une livraison réelle, elle compte dans votre utilisation de lecture et votre facturation comme un stream via session de lecture.