Téléverser des pistes
Choisissez qui crée ou autorise la session de téléversement, puis — si votre serveur la crée — comment les fichiers sont transférés. La lecture est une décision distincte ; voir Lire et accéder aux pistes.
Cycle de vie du téléversement par fichier
Une session de téléversement peut autoriser de nombreux fichiers, mais chaque fichier a besoin de sa propre piste et URL de téléversement.
Créez la session, puis pour chaque fichier appelez POST /v1/upload/{upload_session_id}/track et
envoyez les octets en PUT vers track_upload.upload_url. Incluez éventuellement un track imbriqué
à la création de session pour le premier fichier. Référence complète : Upload Sessions.
Téléverser des tracks
Choisissez qui crée l’upload session, puis — si nécessaire — comment les fichiers sont transférés. Les choix d’upload et de lecture sont indépendants.
AudioDN Uploader ou (voice) Recorder (composants web) avec une Client-Side Upload key
Configuration la plus rapide. Une Client-Side Upload key à portée limitée ; le composant crée la session et téléverse chaque fichier.
Créer une Client-Side Upload key
Dans le dashboard allez à Settings → API Keys et créez une clé Client-Side Upload. Limitez-la éventuellement à une collection. Cette clé ne peut créer que des sessions de téléversement — pas lire ni supprimer des pistes.
Installer le composant web
npm install @audiodn/components Uploader :
import '@audiodn/components/uploader' Ou (voice) Recorder :
import '@audiodn/components/recorder' Alternatives CDN :
<script type="module" src="https://unpkg.com/@audiodn/components@latest/dist/uploader.js"></script> <script type="module" src="https://unpkg.com/@audiodn/components@latest/dist/recorder.js"></script> Afficher le composant web
<audiodn-uploader
api-key="CLIENT-SIDE-UPLOAD-KEY"
collection-id="COLLECTION-ID"
accent-color="#ff00ff"
></audiodn-uploader> <audiodn-recorder
api-key="CLIENT-SIDE-UPLOAD-KEY"
collection-id="COLLECTION-ID"
accent-color="#ff00ff"
></audiodn-recorder> Si la clé est limitée à une collection, vous pouvez omettre collection-id.
Ne définissez jamais à la fois api-key et upload-session-id.
Ce que fait le composant web
Pour chaque fichier, le composant crée (ou réutilise) une session de téléversement, appelle
POST /v1/upload/:upload_session_id/track, et téléverse les octets vers
track_upload.upload_url. AudioDN traite ensuite vos variantes configurées.
Optionnel : configurez un webhook track-processing pour savoir quand une piste est prête.
Téléversement client personnalisé avec une Client-Side Upload key
Votre navigateur ou application native crée la session de téléversement et téléverse chaque fichier. Vous construisez l'interface.
Créer une Client-Side Upload key
Créez une clé Client-Side Upload à portée limitée dans le dashboard. Peut être intégrée en toute sécurité dans l’app. N’utilisez jamais une API Access key dans le code client.
Créer une session de téléversement
const response = await fetch('https://api.audiodelivery.net/v1/upload_session', {
method: 'POST',
headers: {
'Authorization': 'Bearer CLIENT-SIDE-UPLOAD-KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ collection_id: 'COLLECTION-ID', expires_in: 3600 })
});
const { upload_session_id } = await response.json(); Créer une piste pour chaque fichier
const response = await fetch(
`https://api.audiodelivery.net/v1/upload/${upload_session_id}/track`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ file_name: 'song.wav' })
}
);
const { track_id, track_upload } = await response.json();
const { method, upload_url } = track_upload; Vous pouvez aussi inclure un objet track imbriqué à la création de session pour le premier fichier, puis utiliser cette étape pour les fichiers supplémentaires.
L’URL de téléversement est dans track_upload.upload_url (pas sur l’objet track).
Téléverser les octets
await fetch(upload_url, {
method,
headers: { 'Content-Type': file.type },
body: file
}); Attendre le traitement
Interrogez GET /v1/track/{track_id} jusqu’à ce que track.track_status_id soit ready
(nécessite une API Access key ou le dashboard), ou utilisez un webhook.
Les Client-Side Upload keys ne peuvent pas lire l’état d’une piste — préférez les webhooks ou un sondage serveur pour la disponibilité.
Session de téléversement créée côté serveur avec l'AudioDN Uploader ou (voice) Recorder (composants web)
Votre serveur autorise le téléversement, crée une session de courte durée et la passe au composant.
Conservez une API Access key sur votre serveur
Créez une clé API Access dans le dashboard. Ne l’envoyez jamais au navigateur ou à l’application mobile.
Autoriser, puis créer une session de téléversement
Appliquez vos propres contrôles (connexion, quota, permissions), puis :
const response = await fetch('https://api.audiodelivery.net/v1/upload_session', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_ACCESS_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
collection_id: 'COLLECTION-ID',
expires_in: 3600
// Optional: track: { file_name: 'song.wav' } to also create the first track
})
});
const { upload_session_id, upload_session } = await response.json();
// Pass upload_session_id to the client (Uploader) or continue with per-track create. Passer la session au composant web
npm install @audiodn/components import '@audiodn/components/uploader' <audiodn-uploader
upload-session-id="UPLOAD-SESSION-ID"
accent-color="#ff00ff"
></audiodn-uploader> <audiodn-recorder
upload-session-id="UPLOAD-SESSION-ID"
accent-color="#ff00ff"
></audiodn-recorder> Utilisez uniquement upload-session-id — ne définissez pas aussi api-key.
Le composant téléverse
L’Uploader ou le (voice) Recorder (composant web) effectue pour vous la création par piste et le téléversement des octets. Optionnel : webhook pour la disponibilité.
Session de téléversement créée côté serveur avec une interface personnalisée
Votre serveur crée la session ; votre UI web ou native personnalisée crée les pistes et téléverse les fichiers.
Conservez une API Access key sur votre serveur
Créez une clé API Access. Serveur uniquement.
Créer une session de téléversement sur le serveur
const response = await fetch('https://api.audiodelivery.net/v1/upload_session', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_ACCESS_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
collection_id: 'COLLECTION-ID',
expires_in: 3600
// Optional: track: { file_name: 'song.wav' } to also create the first track
})
});
const { upload_session_id, upload_session } = await response.json();
// Pass upload_session_id to the client (Uploader) or continue with per-track create. Renvoyez upload_session_id au client. Ne renvoyez pas l’API Access key.
Créer une piste pour chaque fichier (client ou serveur)
const response = await fetch(
`https://api.audiodelivery.net/v1/upload/${upload_session_id}/track`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ file_name: 'song.wav' })
}
);
const { track_id, track_upload } = await response.json();
const { method, upload_url } = track_upload; Téléverser les octets
await fetch(upload_url, {
method,
headers: { 'Content-Type': file.type },
body: file
}); Attendre que ce soit prêt
// Processing starts automatically. Poll until ready, or use a webhook.
let track;
do {
await new Promise((r) => setTimeout(r, 5000));
const res = await fetch(`https://api.audiodelivery.net/v1/track/${track_id}`, {
headers: { 'Authorization': 'Bearer YOUR_API_ACCESS_KEY' }
});
({ track } = await res.json());
} while (track.track_status_id !== 'ready'); Ou utilisez le webhook track-processing au lieu de sonder.