Google Chrome Erweiterungen mit Netflix Untertitel Styler erstellen
Lukasz Kolko
Heute werden wir Google Chrome-Erweiterungen für die Bearbeitung von Netflix-Untertitelstilen in Echtzeit erstellen. Sie werden Informationen über die Erstellung von Erweiterungen von Grund auf, einige praktische Ratschläge und allgemeine Ansichten über die Architektur von Erweiterungen finden. Wenn Sie mit den verfügbaren Optionen für Netflix-Untertitel nicht zufrieden sind oder einfach nur schnell eine Erweiterung erstellen möchten, um sich das Leben zu erleichtern, ist dieser Artikel genau das Richtige für Sie.
Unsere Ziele:
Erweiterungslogik erstellen
Einstellungen im lokalen Speicher des Browsers speichern
Autoload und Aktivierung von Erweiterungen nur auf der Netflix-Seite
Netflix sendet über seine API jeden Untertitelsatz einzeln. Es verwendet CSS-Stile für die Gestaltung von Untertiteln. Mit Zugriff auf das DOM der Seite können wir diese empfangenen Stile mit der Chrome-Erweiterung manipulieren.
Das Manifest
Zunächst müssen wir eine Manifestdatei namens manifest.json erstellen. Sie informiert den Browser über die Einrichtung der Erweiterung, z. B. über die UI-Dateien, die Hintergrundskripte und die Fähigkeiten, die die Erweiterung haben könnte.
Wie Sie sehen, haben wir einige Standardinformationen, wie Name, Version, Beschreibung, Homepageurl und manifestVersion.
Einer der wichtigsten Teile des Manifests ist der Abschnitt "Berechtigungen". Dies ist ein Array mit Elementen, auf die unsere Erweiterung zugreifen kann.
In unserem Fall benötigen wir Zugriff auf Registerkarten, um die aktive Registerkarte zu finden, Skripte auszuführen und Nachrichten zwischen der Benutzeroberfläche und der Erweiterung zu senden. Wir brauchen einen Speicher für die Einstellungen der Erweiterung im Browser und declarativeContent, um abhängig vom Inhalt der Registerkarte Maßnahmen zu ergreifen. Das letzte Element https://*.netflix.com/ erlaubt der Erweiterung nur den Zugriff auf die netflix.com-Domäne.
Chrome-Erweiterungen haben eine von der Benutzeroberfläche getrennte Logik, daher brauchen wir background.scripts, das der Erweiterung mitteilt, wo sie ihre Logik finden kann. persistent: false bedeutet, dass dieses Skript nur bei Bedarf verwendet wird. page_action ist der Abschnitt mit dem Benutzeroberflächenteil. Wir haben hier eine einfache HTML-Datei für ein Popup-Menü und ein PNG-Logo für eine Erweiterung.
Logik der Erweiterung
Zunächst müssen wir das Verhalten runtime.onInstalled einrichten, alle aktuellen Regeln (z. B. aus älteren Versionen) entfernen und eine Funktion zum Hinzufügen neuer Regeln deklarieren. Wir verwenden Local Storage für die Speichereinstellungen, damit wir nach der Installation der Erweiterung Standardeinstellungen zuweisen können.
Wir werden drei Parameter für die Gestaltung von Untertiteln verwenden:
Unser Ziel ist es, die Erweiterungsschaltfläche auf allen anderen Domänen zu deaktivieren. netflix.de. Wir erstellen eine neue Regel mit PageStateMatcher Bedingungen und Erklärungen ShowPageAction wo die neue Regel zugewiesen wird.
Der nächste Schritt ist das Hinzufügen des Listeners tabs.onUpdated, der unser Skript beim Laden oder Aktualisieren der aktiven Registerkarte ausführt.
Zunächst überprüfen wir, ob changeInfo.status den Status "vollständig" hat. Dies bedeutet, dass die Website auf dieser Registerkarte geladen ist. Dann holen wir die Einstellungen aus dem lokalen Speicher und geben mit tabId an, welches Skript auf der aktuellen Registerkarte ausgeführt werden soll. Schließlich senden wir im Callback die Nachricht mit den Einstellungen aus der Benutzeroberfläche an das Skript.
Erweiterung UI
Um ein Popup-Menü mit Formular zu erstellen, müssen wir drei Dateien erstellen: popup.html und popup.css mit visuellen Ebenen und popup.js mit Logik für die Kommunikation zwischen dem Menü und den isolierten hintergrund.js Drehbuch.
Unser UI-Ziel:
Hier haben wir ein einfaches HTML-Formular mit eingebauter Validierung: popup.html:
Im obigen Skript werden die Einstellungen aus dem lokalen Speicher geladen und den Formulareingaben zugeordnet. Dann erstellen wir einen Listener für einreichen Ereignis mit Funktionen für die Speicherung von Einstellungen im lokalen Speicher und senden sie per Nachricht an unser Skript. Wie Sie sehen, verwenden wir Local Storage in jeder Komponente. Die Chrome-Erweiterung hat keinen eigenen Datenbereich, so dass die einfachste Lösung darin besteht, den lokalen Speicherbereich des Browsers wie Local Storage zu verwenden. Wir verwenden auch oft die sendMessage Funktion. Das liegt an der Architektur der Chromme-Erweiterungen - sie haben eine von der Benutzeroberfläche getrennte Logik.
Das Drehbuch
Jetzt ist es an der Zeit, eine script.js mit Logik für die Bearbeitung von Netflix-Untertitelstilen.
Zunächst erstellen wir onMessage Listener für den Empfang von Nachrichten mit Einstellungen von der Nebenstelle.
chrome.runtime.onMessage.addListener((message, _sender, _sendResponse) => {
// Funktion zur Manipulation von Stilen
});
Dann erstellen wir in derselben Datei die Funktion, mit der wir die Netflix-Stile in Echtzeit in unsere Stile umwandeln können.
Bei Netflix wird jedes Mal, wenn ganze Untertitel-Sätze empfangen werden, nur der Untertitel-Teil des Seiten-DOMs ausgetauscht. Wir müssen also eine Beobachterfunktion verwenden wie MutationObserverdie unser Projekt auslösen wird. changeSubtitlesStyle Funktion jedes Mal, wenn sich das DOM der Seite geändert hat. In der Rückruf Funktion sehen wir eine einfache Manipulation von Stilen. Die kommentierten Zeilen enthalten Informationen darüber, wo Sie die richtigen Stile finden können.
Zeit zum Laufen
Ich gehe davon aus, dass Sie kein Entwicklerkonto im Chrome Webstore haben. Um diese Erweiterung auszuführen, gehen Sie zu chrome://extensions/ in Ihrem Chrome, klicken Sie auf die Ladung unverpacktWählen Sie den Ordner mit der Erweiterung aus, und das war's! Dann gehen Sie natürlich auf die Netflix-Seite, um es zu testen.
Schlussfolgerungen
Wie Sie sehen, ist es einfach, einige Erweiterungen zu erstellen, die das Leben einfacher machen. Das Wichtigste dabei ist, die Architektur von Google Chrome Extension und die Kommunikation zwischen den Komponenten zu verstehen. Dieser Untertitel-Styler ist nur eine einfache Demo dessen, was man mit der Chrome Extension API machen kann.
Wie Sie sehen, ist es einfach, einige Erweiterungen zu erstellen, die das Leben leichter machen. Das Wichtigste dabei ist, die Architektur der Google Chrome Extension und die Kommunikation zwischen den Komponenten zu verstehen. Dieser Styler für Untertitel ist nur ein einfaches Beispiel dafür, was man mit der Chrome Extension API machen kann.
Stellen Sie sich vor, Sie verbessern Ihr Fernseherlebnis auf Plattformen wie Netflix mit der Kraft von Erweiterungen. Zum Beispiel ist die beliebte Netflix-Party ermöglicht es den Nutzern, Inhalte gemeinsam und synchronisiert zu betrachten. Eine Erweiterungssymbol in Ihrer Symbolleiste können Sie schnell auf Kontrollfunktionen zugreifen, wenn Netflix-Streaming. Die Idee hinter Tools wie Netflix Erweitert ist es, mehr Funktionalität direkt in die Netflix-App durch die Netflix-Erweiterung in Chrome integriert. Beim Durchsuchen der Netflix-Websitekönnen solche Erweiterungen den Nutzern bei der Navigation durch Netflix-Kategorien effizienter zu gestalten oder sogar versteckte Netflix-Inhalte auf die sie sonst vielleicht nicht gestoßen wären.
Stellen Sie sich außerdem vor, Sie könnten eine Benutzerdefiniertes Profilbild zu Ihrem Netflix-Profil hinzufügen oder mehr Kontrolle über die Untertitel und die Abspielgeschwindigkeit haben. Auf all diese Funktionen können Sie direkt über die Chrome web Browser, wodurch die gesamte Netflix-Erfahrung mehr auf die Vorlieben der einzelnen Nutzer zugeschnitten. Erweiterungen erweitern nicht nur die Funktionen von Websites wie Netflix, sondern verbessern auch die gesamte Benutzerinteraktion, so dass sie noch intensiver und benutzerfreundlicher wird.