Stef van der Ziel

Controleer zelf of een videoplatform echt soeverein is: acht checks op Jet-Stream

Wie beweert AVG-compliant te zijn en SEAL-niveau 4 te halen, moet dat kunnen bewijzen. Zo controleer je de soevereiniteit van Jet-Stream zelf, met dig, whois, curl en de ontwikkelaarstools van je browser. En zo controleer je elk ander platform.

Als iemand claimt AVG-compliant te zijn en SEAL-niveau 4 te halen op vrijwel alle soevereiniteitsdoelen, wil je bewijs zien. Daarom hebben we acht checks uitgevoerd op de Jet-Stream Privacy Player, onze backend en onze uitlevering, met de ruwe uitkomsten en met de punten waar we nog niet zijn waar we willen zijn. Elke check kun je zelf herhalen in een terminal. Meer dan dig, whois, curl en de ontwikkelaarstools van een browser heb je niet nodig.

De player

Laad de Privacy Player, open het Netwerk-tabblad en speel een video met ondertitels tot het einde. Met externe diensten uitgeschakeld (no-ext=all) bevat de trace 48 verzoeken naar zes hostnamen, allemaal onder jetstre.am: de player zelf, de load balancer, de origin, de ondertitelservers en de CDN. Geen Google, geen analyticsleverancier, geen fonts van een Amerikaanse CDN, geen pixel. Open dan het Opslag-tabblad. Cookies: geen. Local storage: geen. Session storage: geen. Er wordt niets op het apparaat geschreven en, omdat er geen analyticsscript is, ook niets uitgelezen. Dat is belangrijker dan het woord 'cookieloos': de ePrivacy-regel gaat over opslaan op of uitlezen van het apparaat. Een player die je schermresolutie uitleest en naar een statistiekenserver stuurt is niet toestemmingsvrij omdat hij de cookie oversloeg. De onze leest niets en verstuurt niets.

De backend

Wie antwoordt als je browser onze hostnamen opvraagt? Een dig op player.jetstre.am en een whois op het antwoord levert: netname JETSTREAM-NL, org-name Jet-Stream BV, Groningen, aangemaakt op 7 april 2004. De player, de origin en de ondertitelservers antwoorden vanaf adresruimte die sinds 2004 op naam van Jet-Stream staat, gerouteerd via LeaseWeb Netherlands, een Nederlands bedrijf onder Nederlands recht. Jet-Stream host eigen hardware in racks van LeaseWeb, dus LeaseWeb heeft geen toegang tot de data. In de antwoordheaders van de origin vind je geen via, geen x-amz-*, geen x-cache, geen CDN-vingerafdruk. Elke afspeelsessie krijgt een door de server uitgegeven sessie in het URL-pad. Zo meten we: uit de uitleverlogs, op eigen servers, waar een kijker niet door een contentblokker kan worden verborgen en niet door een script kan worden verzonnen. Kijkstatistieken worden serverzijdig samengesteld en met niemand gedeeld.

De uitlevering: eigen origin eerst, Europese CDN als het nodig is

Standaard wordt een video van ons eigen platform geserveerd, van begin tot eind. Wordt een video populair, dan verplaatst onze load balancer de uitlevering naar een CDN. Drempels, bedrijfsregels en CDN-keuze zijn per klant instelbaar. De standaard-CDN is Bunny, een Sloveens bedrijf. Een eigen hostnaam voor een CDN kan alles verbergen; precies dat vond een casestudy bij een andere leverancier: een 'Europese CDN' die zijn video uit Amazon CloudFront trok, die het weer uit Amazon S3 las. Dus dezelfde check op ons: bn-global.airflow.jetstre.am is een CNAME naar b-cdn.net, en een curl geeft server BunnyCDN-FR1, cdn-requestpullcode 200. Nog eens via een VPN in de Verenigde Staten: server BunnyCDN-IL1, requestcountrycode US, pullcode 200. Een Amerikaanse kijker krijgt de video van een Bunny-edge in Illinois, en die edge haalt hem bij onze eigen Europese origin. Geen via: cloudfront, geen x-amz-headers. De keten is Jet-Stream origin, Jet-Stream edge, kijker; of Jet-Stream origin, Bunny edge, kijker. Twee rechtspersonen, beide Europees. Andere CDN's in onze pool, zoals Fastly en Akamai (Amerikaans), staan uit tenzij een klant er expliciet om vraagt.

Wat de checks ons over onszelf leerden

Zonder no-ext=all laadt de Privacy Player de Chromecast-SDK van www.gstatic.com en de IMA-advertentie-SDK van imasdk.googleapis.com, nog voordat een kijker iets cast of een advertentie ziet. Elk IP-adres bereikt dan Google. De parameter die dat voorkomt is gedocumenteerd en werkt, maar het is een opt-in, en wij vinden dat privacy geen opt-in mag zijn. In de volgende release draaien we dit om: de Chromecast-SDK laadt pas als een kijker op het cast-icoon klikt, de advertentie-SDK alleen als een uitlevering echt een advertentietag heeft, en een Content-Security-Policy op de player maakt van 'geen externe verzoeken' een regel die de browser afdwingt. Ook staat wowza als variabele in de URL: Amerikaanse software, zelf gehost en geïsoleerd als legacy packager, afgeschermd door open source caches, en wordt vervangen door onze eigen JIT-packagers. We publiceren dit omdat het alternatief is wat we te vaak zien in deze markt: een afgeronde toestand claimen die niet bestaat. Een leverancier die zegt dat er niets meer te repareren is, kijkt niet of vertelt het je niet.

Doe het zelf

Voor elk videoplatform, ook het onze: 1. Open de player, open het Netwerk-tabblad, speel een video tot het einde. Noteer elk domein dat niet van de leverancier is en vraag waarvoor het dient. 2. Open het Opslag-tabblad. Noteer elke cookie en elke opslagsleutel en vraag waarom die er is. 3. Dig elke hostnaam in de trace, volg elke CNAME tot het einde, whois het adres waar je uitkomt. 4. Curl een media-URL en lees de server-, via- en x-amz-headers. Doe het nog eens via een VPN buiten Europa. 5. Vraag de leverancier waar zijn kijkstatistieken vandaan komen: uitleverlogs of een script in de browser. Vijf checks, een half uur, geen specialist nodig.

Engels origineel met alle ruwe testresultaten op jet-stream.com

Veelgestelde vragen

Hoe controleer je of een videoplatform echt Europees en soeverein is?

Open de player met de ontwikkelaarstools, noteer elk extern domein en elke cookie, volg elke hostnaam met dig tot de eigenaar (whois), lees de CDN-headers met curl, ook via een VPN buiten Europa, en vraag waar de kijkstatistieken vandaan komen.

Wat is het verschil tussen cookieloos en toestemmingsvrij?

De ePrivacy-regel gaat over opslaan op of uitlezen van het apparaat. Een player die zonder cookie toch schermgegevens uitleest en naar een statistiekenserver stuurt, is niet toestemmingsvrij.

Is een EU-edge van een CDN genoeg voor soevereiniteit?

Nee. Het gaat om jurisdictie, niet geografie: wie is eigenaar van de edge en waar haalt hij de content vandaan. Een 'Europese' hostnaam kan een Amerikaanse cloud verbergen.

Stef van der Ziel

Internetpionier (online sinds 1994), streaming expert en spreker over digitale soevereiniteit. Bedenkt als guerilla marketeer campagnes zonder mediabudget.

Boek Stef als spreker

Meer artikelen

30 september 2026 · Soevereiniteit · In het nieuws

Geld voor digitale autonomie ligt gewoon op tafel

Bert Hubert schreef vandaag in iBestuur een stuk dat iedereen in Den Haag zou moeten lezen. De regering heeft de afgelopen weken minstens vier keer op schrift uitgelegd dat er geen geld is, niet voor digitale autonomie, en niet voor de nieuwe Nederlandse Digitale Dienst die daaraan zou moeten werken. De aansturing is verdeeld over twee ministeries. En de Digitale Dienst dreigt een papieren club te worden. Bert noemt het een drievoudige valse start, met een vierde erbovenop: we doen alsof het allemaal goed gaat.

Lees verder

29 september 2026 · Streaming · Soevereiniteit

De broadcastmindset versus de internetmindset

Waarom je een internetprobleem niet oplost met een broadcastmindset, en waarom kopiëren van oplossingen zonder ze te kennen niet werkt.

Lees verder

25 september 2026 · Soevereiniteit · Streaming · Privacy

Goedkoop, goed, groen én soeverein? Je hoeft niet te kiezen

Vooroordelen. "Als we alles Europees hosten, wordt het veel duurder." "Europese diensten zijn minder goed." En mijn favoriet: "We willen een zorgvuldige afweging maken tussen kosten, soevereiniteit en duurzaamheid."

Lees verder

Blog

Alle artikelen

Lees verder

Contact

Stef boeken als spreker

Lees verder