¿Qué es una URL multimedia?

Una URL multimedia identifica una imagen, un video, un archivo de audio, un manifiesto o una variante generada en un endpoint de red. Su ruta y sus parámetros de consulta pueden seleccionar un activo de origen, una transformación o una política de entrega.

Cómo funcionan las URL multimedia

Una URL multimedia es la dirección mediante la cual un cliente recupera un archivo original, una variante, un segmento o un manifiesto de streaming. El servidor decide qué significa cada parte: normalmente, la ruta identifica el activo y los parámetros de consulta contienen ajustes de transformación o una firma. La URL no determina el formato de la respuesta. El encabezado Content-Type de HTTP indica el tipo de medio, por lo que la extensión del archivo en una ruta no determina qué recibe un cliente. Otros encabezados de respuesta controlan el almacenamiento en caché, la entrega por rangos de bytes y el uso entre orígenes. Un manifiesto de streaming añade otra capa, porque es un archivo que contiene otras URL: en HLS, una URI relativa dentro de una lista de reproducción se resuelve con respecto a la URL de la lista que la contiene, de modo que la URL del manifiesto determina dónde busca los segmentos un reproductor.

Datos clave

  1. ¿La cadena de consulta forma parte de la clave de caché? Depende de la CDN y de su configuración, así que compruébalo antes de colocar allí parámetros de transformación. HTTP define una clave de caché como, al menos, el método de la solicitud y la URI de destino. La clave predeterminada de Cloudflare incluye la URL completa con su cadena de consulta. La clave predeterminada de Amazon CloudFront contiene solo el nombre de dominio de la distribución y la ruta de la URL, por lo que dos URL que solo difieren en un parámetro como ?w= devuelven el mismo objeto en caché hasta que una política de caché añade ese parámetro a la clave. Añadir un parámetro que no cambia la respuesta tiene el costo opuesto: CloudFront advierte que puede almacenar objetos duplicados en caché y reducir la tasa de aciertos de caché.
  2. ¿La URL de un archivo de video o audio necesita un servidor que admita rangos de bytes? Para desplazarse por la reproducción en iOS, sí: la guía archivada de Safari de Apple indica que los servidores que alojan archivos multimedia para iOS deben admitir solicitudes de rangos de bytes, que iOS utiliza para el acceso aleatorio durante la reproducción. MDN describe las solicitudes de rango, de forma más general, como útiles para los reproductores multimedia que admiten acceso aleatorio. El propio HTTP establece que las solicitudes de rango son opcionales, y un servidor puede ignorar el encabezado Range y responder con 200 y el archivo completo. Una CDN puede añadir sus propias condiciones: CloudFront devuelve el objeto completo en lugar del rango solicitado cuando el origen responde con Transfer-Encoding: chunked. Envía una solicitud de rango a la URL pública, no solo al origen, y espera una respuesta 206 con un encabezado Content-Range.
  3. ¿Qué ocurre con las URL de los segmentos cuando se firma la URL de un manifiesto HLS? La firma de la cadena de consulta del manifiesto no se transmite a ellas. Las URI relativas de los segmentos se resuelven con respecto a la URL de la lista de reproducción, y la resolución estándar de referencias URI conserva la consulta de la referencia relativa, no la de la URL base, por lo que las solicitudes de segmentos llegan sin la firma, a menos que la lista de reproducción se reescriba para cada espectador o se conceda acceso de otra manera. La documentación de Amazon CloudFront recomienda cookies firmadas en lugar de URL firmadas para dar acceso a varios archivos restringidos, y menciona como ejemplo todos los archivos de un video HLS.
  4. ¿Pueden cambiar los bytes a los que apunta una URL? Si pueden hacerlo, una caché que conserve la respuesta anterior puede seguir sirviéndola mientras siga vigente, así que asigna a la respuesta un período de vigencia corto o exige su revalidación cuando las actualizaciones deban hacerse visibles rápidamente. Publicar cada versión con una URL nueva evita el problema: la RFC 8246 describe las URL con versión como el patrón que permite un período de vigencia muy largo sin tener que adivinar cuándo se actualizará un recurso, y MDN recomienda un max-age largo para las URL que incluyen un número de versión o un hash.

Cuándo son importantes las URL multimedia

Devuelve URL multimedia estables cuando los clientes incorporen activos en páginas, reproductores o respuestas de API. Una URL firmada limita el acceso. Cuando incluye un vencimiento, las solicitudes realizadas después de ese momento se rechazan, por lo que no es adecuada para referencias de larga duración, y cada firma nueva constituye una URL nueva para cualquier caché cuya clave incluya la cadena de consulta completa.

Cómo ayuda Transloadit con las URL multimedia

Transloadit proporciona URL multimedia de dos maneras. Cada archivo de resultado de un Assembly Status incluye un url y un ssl_url. Cuando un resultado se exporta con un Robot de almacenamiento como /s3/store, el Assembly Status devuelve la URL del archivo en tu bucket. Esa URL permite localizar el objeto almacenado, pero no hace público un objeto privado ni concede acceso de lectura, así que publícala solo donde los espectadores tengan permiso para leer el objeto; de lo contrario, publica una URL autorizada del almacenamiento o de la CDN que dé acceso a él. Las URL del almacenamiento temporal de Transloadit se eliminan automáticamente y la documentación indica que no deben usarse para servir contenido a los usuarios finales. Una URL de Smart CDN tiene la forma https://[your-workspace].tlcdn.com/[template-name]/[file-path]?[parameters]: el nombre del Template y la ruta del archivo seleccionan el flujo de trabajo y el original, y los parámetros de consulta llegan al Template como ajustes de transformación. Puede firmarse con un vencimiento exp y una firma sig, y la duración efectiva de la caché de una respuesta firmada está limitada por el tiempo de validez restante de la firma.

Para las respuestas de Smart CDN, los encabezados predeterminados documentados del Robot /file/serve incluyen Accept-Ranges: bytes y un Content-Type obtenido del tipo MIME detectado del archivo.

Explora las capacidades de entrega de Transloadit

Fuentes

Convierte tus conocimientos sobre multimedia en un pipeline funcional

Conecta las subidas, el procesamiento, la IA, el almacenamiento y la entrega mediante una sola API declarativa, mientras nos encargamos por ti del stack de encoding, el escalado y los cambios constantes de formatos.

Prueba Transloadit gratis