Refraction


Rilevamento flussi1 / 3Estensione Chrome che rileva e scarica i flussi video (HLS) riprodotti in una pagina web, convertendoli in MP4 senza ricodifica interamente nel browser. Nessun server, nessun upload: tutta l'elaborazione - dal rilevamento al remux - avviene sul dispositivo dell'utente.
Soluzioni
- Estensioni Browser
- WebAssembly
- Sviluppo Software
- Architettura Client-Side
Il Progetto
Refraction nasce come prodotto interno di inLumine, non su commissione di un cliente: un banco di prova per spingere le competenze del team su un terreno diverso dal sito vetrina o dall'eCommerce - l'elaborazione video complessa, interamente nel browser.
La Sfida
I flussi video moderni non sono quasi mai un singolo file: sono spezzati in centinaia di segmenti, spesso protetti, con audio e video su tracce separate. Replicare questo lavoro senza un server dietro le quinte poneva sfide reali:
- Nessuna infrastruttura server
- Ogni download, ricodifica e riassemblaggio doveva avvenire sul dispositivo dell'utente, senza costi di banda o storage lato studio.
- Memoria limitata
- File anche di diversi gigabyte da processare nel browser, senza saturare la RAM della scheda.
- Accesso a risorse protette
- Molte CDN verificano l'origine della richiesta: serviva un modo per accedere ai segmenti mantenendo il contesto della pagina originale.
- Integrità del file
- Il remux doveva produrre un MP4 valido, con audio e video sincronizzati, senza mai ricodificare (e quindi degradare) il materiale originale.
La Soluzione
Abbiamo costruito una pipeline di acquisizione ed elaborazione video interamente client-side, dal rilevamento del flusso al file scaricato.
Gli interventi chiave
- Rilevamento su due canali
- Un service worker riconosce le playlist HLS dall'URL e, in parallelo, qualsiasi flusso video dal Content-Type della risposta: funziona anche su URL dinamici senza estensione.
- Accesso al contesto originale
- Se la CDN rifiuta la richiesta diretta, il fetch viene rieseguito nel contesto della scheda di origine (stessi cookie, Referer, IP), con gli header di rete gestiti via declarativeNetRequest.
- Remux adattivo, mai ricodifica
- I segmenti già in fMP4 vengono scritti in streaming su disco così come sono; i segmenti TS passano da un remux con ffmpeg compilato in WebAssembly ("-c copy") - zero perdita di qualità in entrambi i casi.
- Decifratura standard
- Supporto nativo alla cifratura AES-128 via WebCrypto, per i flussi che la richiedono.
Lo Stack Tecnologico
- Estensione
- Chrome Manifest V3, service worker per l'intercettazione delle richieste di rete.
- Elaborazione video
- ffmpeg.wasm per il remux HLS→MP4 senza ricodifica, interamente nel browser.
- Storage
- File System Access API per la scrittura in streaming su disco, con fallback su chrome.downloads.
- Sicurezza & accesso
- WebCrypto per la decifratura AES-128; chrome.scripting e declarativeNetRequest per accedere alle risorse protette nel contesto della pagina originale.
Il Risultato
Refraction resta un progetto interno, ma la pipeline che lo alimenta - acquisizione, elaborazione ed esportazione di video pesanti interamente nel browser, senza infrastruttura server - è un pezzo di ingegneria riutilizzabile: lo stesso approccio si presta a editor video web, strumenti di controllo qualità per piattaforme di streaming o sistemi di digital asset management, dove processare file video lato client abbatte i costi e i tempi di un'infrastruttura server dedicata. L'estensione stessa è disponibile su richiesta, per team che vogliono integrarla o adattarla ai propri flussi di lavoro.