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 resolvesHighlights
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 vergleichenFAQ
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
Entpackte Erweiterungen mit Manifest V2 und V3 beim Start laden, headed oder headless, unter Windows und Linux.
Ein Drop-in-Chromium für Playwright und Puppeteer: ein geänderter Import in Python, Node oder .NET, und der Browser wird für Sie heruntergeladen und per SHA-256 verifiziert.
Canvas, WebGL, WebGPU, Audio, Schriften, Bildschirm und Hardware, in der C++-Engine aus einem Seed abgeleitet, mit passender Locale und Zeitzone – damit jedes Merkmal zu jedem anderen passt.
Ein Seed pro Account: in jeder Session dasselbe Gerät, für den nächsten Account ein anderes, mit Cookies und Speicher, die zwischen den Läufen erhalten bleiben.
Weiterlesen
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.