Oferta de lanzamiento: Los planes Creator y Business tienen descuento por tiempo limitado. Ver precios

Estandarizar audio cargado para una reproducción fiable

AudioDN es una API de procesamiento y entrega de audio. Toma audio de origen compatible e inconsistente — una grabación de teléfono, una exportación de estudio, la elección de codec rara de un host de podcast — y produce una variante predecible y lista para reproducción, y luego la entrega mediante URLs firmadas. Configura la salida una vez (este ejemplo usa AAC a 128 kbps) y AudioDN aplica esa receta a las nuevas cargas automáticamente. Tu aplicación solo sube el origen, espera a que termine el procesamiento y solicita la variante por nombre. No operas FFmpeg, colas de transcodificación ni infraestructura de entrega.

Qué significa normalizar aquí

En este ejemplo, normalizar significa estandarización de formato: un codec de salida consistente, bitrate y configuración de canales, más el stripping opcional de metadatos y cover art, entregado como una variante con nombre. No significa normalización de loudness — AudioDN no realiza targeting de LUFS, limitación de true-peak, ajuste de ganancia ni procesamiento de rango dinámico en este flujo.

De un vistazo

ProblemaEl audio cargado llega en formatos, codecs y calidades inconsistentes.
EntradaCualquier audio de origen compatible con AudioDN (por ejemplo WAV, FLAC, MP3).
SalidaUna variante de reproducción con nombre consistente — aquí aac a 128 kbps, entregada como audio/aac.
ConfiguradoUna vez, como receta de variante a nivel de organización (o por pista vía la API).
Tu aplicación gestionaLa carga del origen y la integración de la reproducción.
AudioDN gestionaProcesamiento, transcodificación, almacenamiento y entrega segura.

Cómo encaja el flujo

Una carga compatible se convierte en un archivo reproducible y consistente en cuatro pasos gestionados. El procesamiento debe completarse antes de la reproducción, así que tu aplicación espera a que la pista esté ready y luego solicita la variante por nombre.

Flujo de alto nivel
Audio de origen compatible (WAV, FLAC, MP3, ...)
        |
        v
Cargar a AudioDN
        |
        v
AudioDN procesa la pista           (track_status_id: processing)
        |
        v
Variante configurada generada      (track_status_id: ready)
        |
        v
Reproduce la misma variante con nombre en web, móvil o servidor

1. Configura primero la salida

La variante de transcode es la función sobre la que realmente trata este ejemplo. Una variante es una receta reutilizable que indica a AudioDN cómo convertir cualquier carga compatible en una salida concreta. Configúrala una vez y AudioDN genera esa misma variante con nombre para las nuevas cargas automáticamente — tu código nunca tiene que detectar ni especializar el codec de origen, y siempre solicita el resultado por el mismo nombre.

Configurar una variante de transcode aac en el dashboard

  1. Inicia sesión en el dashboard de AudioDN y abre Variants.

  2. Haz clic en Add Variant y elige el tipo Transcode.
  3. Establece el index a aac, el codec a AAC y el bitrate a 128. Deja el estéreo activado y habilita strip tags y strip cover art para estandarizar los metadatos.

  4. Guarda. Las nuevas cargas se transcodifican a esta variante aac automáticamente.

Añadir la variante a una pista existente

Las recetas a nivel de organización se aplican a las nuevas cargas. Para añadir la misma salida a una sola pista que ya está ready, añade una variante específica de la pista con POST /v1/track/:track_id/variant (codec y bitrate por defecto aac a 128). Referencia completa de campos: API de variantes.

Por qué AAC a 128 kbps

AAC es un valor práctico por defecto para reproducción web y en apps en general: está ampliamente soportado en navegadores modernos, sistemas operativos móviles y players de medios, y 128 kbps ofrece un equilibrio útil entre calidad, tamaño de archivo y rendimiento de streaming para la escucha típica. AudioDN entrega esta variante con el content type audio/aac. Si tu producto necesita otros compromisos, configura un codec o bitrate distinto, o añade más variantes — consulta Tipos de variantes.

2. Sube el origen

No importa cómo llegue el archivo — un master de estudio sin pérdida, un memo de voz comprimido o lo que haya producido el teléfono de un oyente. La carga es una secuencia corta y explícita: crea una sesión (opcionalmente con un track anidado para crear la primera pista de antemano), crea las pistas adicionales, haz PUT de los bytes a la URL de carga de la pista y luego espera hasta que la pista esté ready.

Secuencia de carga (conceptual)
POST /v1/upload_session                       -> upload_session_id
  (objeto track anidado opcional)              -> también track_id + track_upload.upload_url
POST /v1/upload/{upload_session_id}/track     -> track_upload.upload_url  (por cada archivo adicional)
PUT  {track_upload.upload_url}                  (enviar los bytes de origen)
GET  /v1/track/{track_id}                       (polling hasta track_status_id = ready)
Solicitar la variante configurada              (p. ej. variants="aac")

Track anidado opcional

Por defecto una sesión de carga solo devuelve un upload_session_id. Incluye un objeto track anidado en POST /v1/upload_session para recibir también track_upload.upload_url en esa respuesta (aún puedes añadir más pistas después). En caso contrario, crea cada pista con POST /v1/upload/{upload_session_id}/track.

Luego haz polling de GET /v1/track/:track_id hasta que track_status_id sea ready, o escucha un webhook de pista, antes de iniciar la reproducción.

Ejemplo completo de carga (API y componente Uploader)Mostrar

Opción A — Cargar vía la API

Tu servidor (o el cliente, con una clave Client-Side Upload) dirige la carga directamente.

Crear una sesión de carga

Ejemplo de solicitud

# COLLECTION_ID: uuid de la colección a la que subir
curl -X POST "https://api.audiodelivery.net/v1/upload_session" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "collection_id": "COLLECTION_ID",
  "expires_in": 7200
}'

Crear una pista en la sesión

Ejemplo de solicitud

# SESSION_ID: upload_session_id devuelto por la llamada anterior
curl -X POST "https://api.audiodelivery.net/v1/upload/SESSION_ID/track" \
  -H "Content-Type: application/json" \
  -d '{
  "file_name": "track.wav"
}'

Subir los bytes del archivo

PUT track_upload.upload_url
# Tras create-track, que devuelve track_upload.upload_url, haz PUT de los bytes de origen.
# Cualquier formato de origen compatible funciona, independientemente de su calidad o codec original.
curl -X PUT "$UPLOAD_URL" \
  --data-binary @track.wav \
  -H "Content-Type: audio/wav"

Opción B — Cargar vía el componente Uploader

Añade un uploader drag-and-drop a tu página; no se necesita backend con una clave Client-Side Upload.

Dependencia

npm install @audiodn/components

Uso

<script type="module">
import '@audiodn/components/uploader';
</script>

<audiodn-uploader
api-key="YOUR_UPLOAD_API_KEY"
collection-id="COLLECTION_ID"
></audiodn-uploader>

El componente gestiona drag-and-drop, progreso por archivo y reintentos por ti. Referencia completa de atributos: Documentación del componente Uploader.

Referencia completa campo a campo: API de sesiones de carga.

3. Reproduce la variante

Una vez que la pista está ready, cada superficie que envía tu producto solicita exactamente la misma variante por nombre y obtiene exactamente el mismo archivo predecible — sin detección de formato ni casos especiales por plataforma. El camino más rápido en la web es el componente <audiodn-player> con una clave Client-Side Player:

Dependencia

npm install @audiodn/components

Uso

<script type="module">
  import '@audiodn/components/player';
</script>

<audiodn-player
  api-key="YOUR_PLAYER_API_KEY"
  scope="track"
  id="TRACK_ID"
  variants="aac"
  size="regular"
></audiodn-player>

Demo en vivo

La pista del hero de la homepage, reproducida aquí desde su única variante estandarizada aac.

Música de Nyktrn

Solicita la misma variante en cualquier lugar

El player es opcional. Aplicaciones web personalizadas, móviles, Flutter, nativas y de servidor pueden crear una play session y reproducir en streaming la URL firmada devuelta para la misma variante con nombre, o firmar URLs de entrega directamente para reproducción en el backend.

  • Sitio web / player personalizado — incrusta <audiodn-player>, o solicita el archivo para tu propia UI. Consulta la guía de Integración web.

  • App móvil — crea una play session solicitando la variante aac desde Swift, Kotlin o Flutter, y luego reproduce en streaming la URL firmada con cualquier player de audio de la plataforma. Consulta Integración móvil.

  • Servidor / API — firma URLs de entrega para reproducción backend-to-backend o descargas. Consulta Entrega firmada y la API de variantes.

Más opciones del player (temas, tamaños, playlists, cover art): Documentación del componente Player.

Cuándo usar este flujo

Úsalo siempre que tu producto acepte audio que no controlas y necesite reproducirse de forma consistente. Eso cubre cargas de usuarios, artistas, teléfonos, navegadores, dispositivos de grabación, software de edición, sistemas externos y múltiples herramientas de producción a la vez.

Encaja en plataformas de música, podcasts, grabaciones de voz, audio social, productos educativos, marketplaces, apps de audio generado por IA y otros productos de audio generado por usuarios. En cada caso AudioDN puede sustituir la infraestructura personalizada que de otro modo operarías: almacenamiento de carga, colas de procesamiento, workers de FFmpeg, almacenamiento de salida, firma de entrega y entrega de reproducción.

Qué no cubre este ejemplo

Este ejemplo se centra en producir un formato de reproducción consistente a partir de cargas inconsistentes. Lo siguiente son capacidades relacionadas pero separadas, no parte de este flujo:

  • Clips de vista previa — extractos cortos con seek restringido. Consulta Player de clip de vista previa.
  • Waveforms — variantes de imagen o vídeo de waveform. Consulta Tipos de variantes.
  • Variantes adicionales — bitrates o codecs extra junto a aac para entrega multi-calidad.
  • Descargas sin pérdida — ofrecer descargas FLAC o WAV desde la misma carga.
  • Normalización de loudness — AudioDN no realiza targeting de LUFS ni ajuste de ganancia; este flujo estandariza el formato, no el volumen.

FAQ

¿Cómo normalizo el audio cargado por usuarios para reproducción web?

Sube el origen a AudioDN, espera hasta que el track_status_id de la pista sea ready y luego solicita tu variante de transcode configurada (por ejemplo AAC a 128 kbps). AudioDN estandariza el codec, el bitrate y la disposición de canales para que cada carga se reproduzca como el mismo archivo predecible.

¿Puede AudioDN convertir distintos formatos de audio en un formato consistente?

Sí. AudioDN acepta formatos de origen compatibles como WAV, FLAC y MP3 y los transcodifica a una única variante de salida configurada, de modo que tu player siempre solicita un archivo consistente independientemente de lo que se haya subido.

¿Necesito operar FFmpeg?

No. AudioDN ejecuta el pipeline de transcodificación por ti. Subes el origen y solicitas la variante terminada; no ejecutas workers de FFmpeg, colas de procesamiento ni almacenamiento de salida tú mismo.

¿AudioDN normaliza el volumen (loudness) del audio?

No. Este flujo realiza estandarización de formato (codec, bitrate, configuración de canales y manejo de metadatos), no normalización de loudness, targeting de LUFS, limitación de true-peak ni ajuste de ganancia.

¿Cuándo está disponible la variante de reproducción?

Cuando termina el procesamiento. Haz polling de GET /v1/track/{track_id} hasta que track_status_id sea ready, o escucha un webhook de pista. Empieza la reproducción solo cuando la pista esté ready.

¿Puedo usar mi propio player de audio?

Sí. El web component audiodn-player es opcional. Cualquier cliente web, móvil o de servidor puede crear una play session y reproducir en streaming la URL firmada devuelta para la misma variante con nombre.

¿Se puede usar la misma variante en una app móvil?

Sí. Las apps nativas de iOS, Android y Flutter solicitan la misma variante por nombre mediante una play session y reproducen la URL firmada devuelta con el player de audio de la plataforma.

¿Crear una sesión de carga devuelve la URL de carga?

Por defecto, no — crear una sesión de carga solo devuelve un upload_session_id. Opcionalmente incluye un objeto track anidado en POST /v1/upload_session para recibir también track_upload.upload_url en esa respuesta (aún puedes añadir más pistas después). En caso contrario, crea una pista con POST /v1/upload/{upload_session_id}/track; esa respuesta contiene la URL de carga específica de la pista.

Lista de comprobación

  • Existe una receta de variante de transcode aac a 128 kbps (configurada una vez en el dashboard, o añadida a una sola pista vía POST /v1/track/:track_id/variant).
  • Un archivo de origen compatible se ha subido — vía la API o el componente <audiodn-uploader> — y ha alcanzado track_status_id ready.
  • El player está acotado a la pista, solicitando la variante aac con una clave Client-Side Player.
  • La misma variante aac se solicita de forma consistente en las integraciones web, móvil y de servidor.

Publicado