Zum Inhalt springen
Medien · EME · Widevine L3

Widevine-DRM für automatisiertes Chromium

Open-Source-Builds von Chromium kommen ohne das Widevine-CDM. DRM-Videos scheitern deshalb, und requestMediaKeySystemAccess('com.widevine.alpha') wird abgelehnt, wo ein normales Desktop-Chrome die Anfrage in der Regel erfüllt. Übergeben Sie beim Start widevine, und das SDK holt das CDM vom Komponentenserver von Google, prüft es und schaltet es ein.

In jedem Tarif, per Opt-in.

Eine Startoption

from clearcote import launch_persistent_context

ctx = launch_persistent_context("./profile-drm", widevine=True)   # fetch, verify, enable
page = ctx.pages[0] if ctx.pages else ctx.new_page()
page.goto("https://your-drm-site.example")
# navigator.requestMediaKeySystemAccess('com.widevine.alpha') now resolves

Highlights

Bezogen wie bei Chrome

Das CDM kommt vom Komponentenserver von Google selbst, so wie Standard-Chrome es erhält, und wird einmal pro Version heruntergeladen. Clearcote verteilt es nie.

Vor der Nutzung verifiziert

Der Download wird per SHA-256 geprüft, und fehlt der Hash, wird er direkt abgelehnt, weil das CDM eine native Bibliothek ist.

Gecacht und wiederverwendbar

Gespeichert unter ~/.clearcote/WidevineCdm, daher wird es nur einmal pro Version geladen. Holen Sie es vorab mit fetchWidevine(), damit der Download nicht in Ihren ersten Start fällt; jeder Start macht trotzdem eine kurze Versionsprüfung bei Google, direkt von diesem Rechner aus.

Eine kohärente EME-Antwort

Ein echtes Chrome beantwortet die Widevine-Key-System-Abfrage. Mit installiertem CDM tut Clearcote das auch.

Scheitert sanft

Lässt sich das CDM nicht laden, läuft der Start ohne DRM weiter, statt fehlzuschlagen.

L3-Wiedergabe

Softwarebasiert gesicherte Wiedergabe (L3). Hardwarebasiertes L1 liegt außerhalb des Umfangs.

Warum es Opt-in ist

Das CDM von Google ist ein geschlossenes Binary. Es kann nicht Teil des offenen Open-Source-Builds sein, und Clearcote verteilt es auch mit dem lizenzierten Build nicht weiter. Der Browser wird also mit einkompilierter EME-Infrastruktur ausgeliefert, aber ohne CDM, und den Download lösen Sie selbst aus.

Das CDM liegt im Profil. In Python funktioniert es mit launch_persistent_context und mit launch(), das auf einem Wegwerfprofil läuft (synchrone API; das asynchrone launch() ist inkognito, nutzen Sie dort also launch_persistent_context); in Node nutzen Sie launchPersistentContext. Der Inkognito-Start (ephemeral_profile=False) kann es nicht aufnehmen. Das SDK schaltet den Component Updater wieder ein und erzwingt unter Windows einen kurzen Update-Scan, damit die Engine das CDM registriert.

Das zählt auch über Videos hinaus. Ob die Abfrage des Widevine-Key-Systems erfolgreich ist, ist ein weiteres Detail, das eine Seite auslesen kann, und ein Chrome, das darauf keine Antwort hat, sieht nicht wie Chrome aus.

Wofür es eingesetzt wird

Streaming-QA

Testen Sie Wiedergabe, Berechtigungen und Player-UI mit Ihrem eigenen DRM-geschützten Katalog.

Medien-Monitoring

Automatisierte Prüfungen auf Seiten, die geschützte Videos abspielen.

Eine vollständige Chrome-Persona

Halten Sie die EME-Antwort konsistent mit einem echten Chrome, auch wenn Sie nie ein Video abspielen.

Clearcote ist für Datenschutz, Tests, Forschung und rechtmäßige Automatisierung gebaut. Sie sind dafür verantwortlich, wie Sie es einsetzen, und dafür, die Nutzungsbedingungen der Websites einzuhalten, die Sie besuchen.

In welchem Tarif enthalten

In jedem Tarif, per Opt-in, mit softwarebasiert gesicherter Wiedergabe (L3).

Tarife vergleichen

FAQ

Wie aktiviere ich Widevine in Playwright?

Starten Sie mit dem Clearcote-SDK und übergeben Sie widevine=True (Python: das synchrone launch() oder ein persistenter Kontext) bzw. widevine: true (Node, launchPersistentContext). Dabei wird das CDM einmal heruntergeladen, verifiziert, im Profil abgelegt und aktiviert. Das .NET-SDK hat noch keine Widevine-Option.

Warum spielt Open-Source-Chromium keine DRM-Videos ab?

Das Widevine-CDM ist proprietär und kann nicht mit einem Open-Source-Build ausgeliefert werden. Ohne das CDM scheitern sowohl die DRM-Wiedergabe als auch die EME-Key-System-Abfrage.

Enthält Clearcote das CDM?

Nein. Das CDM wird beim Opt-in vom Komponentenserver von Google geladen, auf demselben Weg, auf dem es auch Standard-Chrome erhält. Clearcote verteilt es nie.

Welches Sicherheitslevel wird unterstützt?

Softwarebasiertes L3. Hardwarebasiertes L1, das manche Dienste für hohe Auflösungen verlangen, liegt außerhalb des Umfangs.

Brauche ich ein persistentes Profil?

Es braucht ein Profil, aber nicht unbedingt ein dauerhaftes. Das CDM wird ins Profil installiert; in Python funktioniert daher das Wegwerfprofil hinter dem synchronen launch() genauso wie launch_persistent_context (das asynchrone launch() ist inkognito); in Node nutzen Sie launchPersistentContext. Nur der Inkognito-Start (ephemeral_profile=False) kann es nicht aufnehmen.

Mehr dazu in der Dokumentation

Verwandte Funktionen

Clearcote ausprobieren

Direkt einsetzbar mit Playwright & Puppeteer, kohärent bis hinunter zum TLS-Handshake, mit einem Open-Source-Build als Ausgangspunkt.

Mit GitHub kostenlos für einen Browser. Ohne Kreditkarte.