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 auditeur | Oui — générer une session | Non — signer localement |
| Autorisation par lecture | Appliquée à la création de session | Votre responsabilité (qui reçoit un lien) |
| Idéal pour | Audio derrière un paywall / contrôlé | Pistes publiques et aperçus |
| Lectures comptées pour la facturation | Oui | Oui |
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 ?
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.