Tracks abspielen und darauf zugreifen
Wählen Sie, wie Zugriff gewährt wird, und — wenn ein Server eine Wiedergabesession erstellt — wie Audio abgespielt wird. Der Upload ist eine separate Entscheidung; siehe Tracks hochladen.
Wiedergabesessions vs. signierte Auslieferung
Eine Wiedergabesession (play session) ist eine kurzlebige Autorisierung pro Hörer, die über die API erstellt wird
(Scope track oder collection — Scope playlist ist reserviert und gibt 400 zurück).
Signierte Auslieferung ohne Wiedergabesession signiert eine URL auf Ihrem Server mit einer URL Signing key;
der Besitz des temporären Links reicht als Zugriff. Sie können beides kombinieren (z. B. signierte Vorschauen und geschützte Volltracks).
Tracks abspielen und darauf zugreifen
Wählen Sie, wie Zugriff gewährt wird, und dann — falls nötig — wie Audio abgespielt wird. Sie können Methoden mischen (zum Beispiel öffentliche signierte Previews und geschützte Play sessions für vollständige Tracks).
AudioDN Player-Webkomponente mit einer Client-Side Player key
Schnellstes Komponenten-Setup. Der Player erstellt und erneuert Wiedergabesessions. Geeignet, wenn keine serverseitige Freigabe pro Hörer erforderlich ist.
Eine Client-Side Player key erstellen
Erstellen Sie im Dashboard einen Client-Side Player-Schlüssel. Optional auf eine Sammlung, einen Track und/oder Varianten beschränken. Dieser Schlüssel kann nur Wiedergabesessions erstellen — keine Tracks oder Sammlungen verwalten.
Den Player-Webkomponente installieren
npm install @audiodn/components import '@audiodn/components/player' Oder von einem CDN:
<script type="module" src="https://unpkg.com/@audiodn/components@latest/dist/player.js"></script> Den Player-Webkomponente rendern
<audiodn-player
api-key="CLIENT-SIDE-PLAYER-KEY"
scope="collection"
id="COLLECTION-ID"
variant="hq"
size="large"
></audiodn-player> Entweder api-key oder play-session-id ist erforderlich — niemals beides.
Siehe die Referenz der Player component.
Eigener Player mit einer Client-Side Player key
Ihre App erstellt eine Wiedergabesession mit einer eingeschränkten Client-Side Player key und spielt signierte Varianten-URLs in Ihrer eigenen Oberfläche ab.
Eine Client-Side Player key erstellen
Beschränken Sie sie auf die Tracks, Sammlungen und Varianten, auf die die App zugreifen darf. Verwenden Sie niemals eine API Access key im Client-Code.
Eine Wiedergabesession erstellen
const response = await fetch('https://api.audiodelivery.net/v1/play_session/collection', {
method: 'POST',
headers: {
'Authorization': 'Bearer CLIENT-SIDE-PLAYER-KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
collection_id: 'COLLECTION-ID',
variants: ['hq', 'lq'],
is_downloadable: false,
expires_in: 3600
})
});
const { play_session_id, tracks } = await response.json(); Der Scope-Pfad ist /v1/play_session/track oder /v1/play_session/collection.
variants ist erforderlich. Download nur, wenn der Schlüssel es erlaubt und die Anfrage is_downloadable: true setzt.
Wiedergaberessourcen abrufen und abspielen
const response = await fetch(
`https://api.audiodelivery.net/v1/play/${play_session_id}/${track_id}`
);
const { variants } = await response.json();
const url = variants.find((v) => v.variant.index === 'hq' || v.variant.id === 'hq').url; Serverseitig erstellte Wiedergabesession mit der AudioDN Player-Webkomponente
Ihr Server prüft die Berechtigung, erstellt eine Wiedergabesession und übergibt die Session-ID an die AudioDN Player-Webkomponente.
Eine API Access key auf Ihrem Server behalten
Erstellen Sie einen API Access-Schlüssel. Geben Sie ihn niemals an den Client weiter.
Den Hörer autorisieren, dann eine Wiedergabesession erstellen
// After checking the listener's entitlement on your server:
const response = await fetch('https://api.audiodelivery.net/v1/play_session/collection', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_ACCESS_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
collection_id: 'COLLECTION-ID',
variants: ['hq', 'lq'],
is_downloadable: false,
expires_in: 3600
})
});
const { play_session_id, tracks, first_track } = await response.json(); Geben Sie nur play_session_id an den Client zurück. Vollständige Parameterliste:
Play Sessions API.
Die Session an die Player-Webkomponente übergeben
npm install @audiodn/components import '@audiodn/components/player' <audiodn-player
play-session-id="PLAY-SESSION-ID"
></audiodn-player> Serverseitig erstellte Wiedergabesession mit einem eigenen Player
Ihr Server erstellt die Wiedergabesession; Ihr eigener Web- oder nativer Player nutzt die zurückgegebenen Wiedergaberessourcen.
Eine API Access key auf Ihrem Server behalten
Nur auf dem Server.
Autorisieren, dann eine Wiedergabesession erstellen
// After checking the listener's entitlement on your server:
const response = await fetch('https://api.audiodelivery.net/v1/play_session/collection', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_ACCESS_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
collection_id: 'COLLECTION-ID',
variants: ['hq', 'lq'],
is_downloadable: false,
expires_in: 3600
})
});
const { play_session_id, tracks, first_track } = await response.json(); Varianten-URLs abrufen und abspielen
const track_id = tracks[0].id;
// No auth needed — the play session ID authorizes the request
const response = await fetch(
`https://api.audiodelivery.net/v1/play/${play_session_id}/${track_id}`
);
const { variants } = await response.json();
const hq = variants.find((v) => v.variant.index === 'hq' || v.variant.id === 'hq');
// Use hq.url in your custom player Native Beispiele:
const response = await fetch(
`https://api.audiodelivery.net/v1/play/${play_session_id}/${track_id}`
);
const { variants } = await response.json();
const url = variants.find((v) => v.variant.index === 'hq' || v.variant.id === 'hq').url; Signierte Auslieferung ohne Wiedergabesession
Ihr Server signiert eine Delivery-URL mit einer URL Signing key. Keine Wiedergabesession, kein API-Roundtrip zur Wiedergabezeit. Der Besitz der temporären URL gewährt Zugriff bis zum Ablauf.
Keine Durchsetzung von Rechten pro Hörer
Jeder mit einer gültigen signierten URL kann streamen, bis die Signatur abläuft. Signieren Sie auf Ihrem Server, wählen Sie eine sinnvolle Lebensdauer und geben Sie das Signing-Geheimnis niemals preis. Signierte Auslieferung ist eine Wiedergabeoption — keine Upload-Methode und nicht für die AudioDN Player-Webkomponente.
Eine URL Signing key erstellen
Erstellen Sie im Dashboard einen URL Signing-Schlüssel. Das Geheimnis wird einmal angezeigt — speichern Sie es auf Ihrem Server.
Optional: Signatur-ttl setzen und Varianten einschränken. Siehe
Signing Keys.
Ihre Delivery-Domain finden
Jede Organisation hat einen Delivery-Host wie {organization_id}.audiodelivery.net.
Kopieren Sie ihn unter Settings → Organization → Delivery Domain.
Die URL auf Ihrem Server signieren
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 = URL Signing key secret (server-side only)
// 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();
} // 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 to the client
process.env.ADN_DELIVERY_DOMAIN, // e.g. 1bb2....audiodelivery.net
req.query.path
);
res.json({ url });
}); In Ihrer Medienoberfläche abspielen
<!-- Signed URL works anywhere a normal audio URL does. Not for <audiodn-player>. -->
<audio controls src="https://{org}.audiodelivery.net/{file_path}?verify={issued}-{mac}">
</audio> Die AudioDN Player-Webkomponente verwendet eine Client-Side Player key oder play-session-id — keine vorab signierte URL.
Wiedergaben von signierten URLs zählen weiterhin zu Nutzung und Abrechnung.