Vai al contenuto

I trailer di Steam sono HLS: l'MP4 si cuce nel tuo browser

Un trailer di Steam non è un file che puoi prendere al volo: è una playlist di frammenti. Il downloader legge le qualità della playlist e il tuo browser li assembla in un unico MP4.

Steam pubblicava i trailer come semplici file MP4 e WebM, e quei campi esistono ancora nella sua API dello store. Ora sono sempre vuoti. Quello che Steam pubblica invece è una playlist master HLS: un piccolo file di testo che descrive le versioni del trailer e punta a frammenti di pochi secondi ciascuno.

Prima la playlist, poi i frammenti

Il lavoro del resolver qui finisce presto. Legge i metadati della pagina dello store, prende l'URL della playlist master del trailer, la analizza e restituisce una riga per versione con la sua risoluzione, bitrate e frame rate. Non recupera mai frammenti video e non assembla nulla: significherebbe far passare l'intero video da un server senza motivo.

Che cosa legge il resolverChe cosa fa poi il browser
Playlist master: versioni, risoluzioni, bitrate, gruppo audioSceglie la versione che hai scelto
Il template dei segmenti dentro la playlistRecupera i frammenti di quella versione dalla CDN di Steam e li unisce
Il gruppo audio che la master nominaUnisce il video e la traccia audio AAC in un unico MP4

La cucitura avviene nella scheda già aperta, dalla CDN di Steam stessa (video.akamai.steamstatic.com). Un trailer di due minuti è all'incirca novanta frammenti, quindi la barra di avanzamento si riempie in pochi secondi su una connessione normale.

Leggere l'elenco delle qualità

I frammenti vengono copiati byte per byte nel MP4 finito. L'immagine e il suono sono esattamente ciò che riproduce il client di Steam a quella risoluzione: l'unione è un cambio di contenitore, non una ricodifica, quindi nulla si ammorbidisce per strada.

Che cosa può andare storto

Due cose, entrambe legate alla rete più che al video. Se i metadati dello store di Steam non rispondono, il resolver ritenta una volta prima di segnalare un guasto. Se la playlist stessa non è analizzabile, vale lo stesso ritentativo — e se fallisce ancora, la pagina lo dice invece di offrire un download che non finirebbe.

Una pagina di gioco senza video restituisce no_video. Questo include le pagine in cui l'unico media è una galleria di screenshot, cosa comune per i titoli non ancora usciti.

In breve

Domande

Il trailer scaricato è di qualità inferiore a quello che riproduce Steam?

No. I frammenti vengono copiati nel MP4 byte per byte, quindi immagine e audio corrispondono alla versione che hai scelto: lo stesso flusso che riproduce il client di Steam a quella risoluzione.

Perché un download da Steam mostra una barra di avanzamento e quello da Pinterest no?

Perché la CDN di Steam consente al browser di leggere i frammenti, quindi la pagina sta davvero scaricando il file e può riportare l'avanzamento. Quella di Pinterest no, quindi quel download deve essere una semplice navigazione.

Una pagina di gioco non mostra video: perché?

Quella pagina non ha trailer né clip di gameplay allegati. Le gallerie di screenshot non sono video, e i giochi non ancora usciti spesso non hanno né gli uni né gli altri fino a ridosso del lancio.

Strumenti in questo articolo

Tutti gli articoli