Skapa Google Chrome-tillägg med Netflix undertextstyler
Lukasz Kolko
Idag kommer vi att skapa Google Chrome-tillägg för att manipulera Netflix undertexter i realtid. Du hittar information om hur du skapar tillägg från grunden, några praktiska råd och allmänna synpunkter på tilläggsarkitektur. Om du inte är nöjd med de tillgängliga Netflix-undertextalternativen eller bara snabbt vill skapa ett tillägg för att göra livet enklare är den här artikeln något för dig.
Våra mål:
skapa logik för förlängning
lagra inställningar i webbläsaren Lokal lagring
autoload och aktivera tillägg endast på Netflix-sidan
skapa popup-meny
skapa formulär med alternativ för undertexter
Krav som ställs:
grundläggande kunskaper om HTML, CSS och JavaScript
Netflix skickar via sitt API varje undertextmening separat. Det använder CSS-stilar för styling av undertexter. Med tillgång till sidans DOM kan vi manipulera de mottagna stilarna med Chrome-tillägget.
Det uppenbara
För det första måste vi skapa manifestfilen som heter manifest.json. Detta berättar för webbläsaren om tilläggskonfigurationen, till exempel UI-filer, bakgrundsskript och de funktioner som tillägget kan ha.
Som du ser har vi en del standardinformation, till exempel namn, version, beskrivning, hemsidawebbadress och manifestversion.
En av de viktigaste delarna i manifestet är avsnittet om behörigheter. Detta är en matris med element som vårt tillägg kan komma åt.
I vårt fall behöver vi ha tillgång till flikar för att hitta den aktiva fliken, köra skript och skicka meddelanden mellan användargränssnittet och tillägget. Vi behöver lagring för att lagra inställningar för tillägget i webbläsaren och declarativeContent för att vidta åtgärder beroende på flikens innehåll. Det sista elementet https://*.netflix.com/ ger tillägget åtkomst endast till netflix.com-domänen.
Chrome-tillägg har en separat logik från användargränssnittet, så vi måste ha background.scripts, som talar om för tillägget var det kan hitta sin logik. persistent: false innebär att detta skript endast kommer att användas vid behov. page_action är avsnittet med användargränssnittsdelen. Här har vi en enkel HTML-fil för en popup-meny och en PNG-logotyp för ett tillägg.
Logik för förlängning
Först måste vi ställa in runtime.onInstalled-beteenden, ta bort alla aktuella regler (till exempel från äldre versioner) och deklarera funktionen för att lägga till nya regler. Vi använder Local Storage för lagringsinställningarna så att vi kan tilldela standardinställningar efter att tillägget har installerats.
Vi kommer att använda tre stilparametrar för undertexter:
Vårt mål är att inaktivera förlängningsknappen på alla andra domäner än netflix.com. Vi skapar en ny regel med PageStateMatcher villkor och deklaration VisaSidaAktion där den nya regeln kommer att tilldelas.
Först kontrollerar vi att changeInfo.status har statusen complete. Det betyder att webbplatsen på den här fliken är laddad. Sedan hämtar vi inställningar från Local Storage och deklarerar vilket skript som ska köras på den aktuella fliken med tabId. Slutligen, i callback, skickar vi meddelandet med inställningar från användargränssnittet till skriptet.
Förlängning UI
För att skapa en popup-meny med formulär skapar vi tre filer: popup.html och popup.css med visuella lager och popup.js med logik för kommunikation mellan menyn och isolerad bakgrund.js manus.
Vårt UI-mål:
Här har vi ett enkelt HTML-formulär med inbyggd validering: popup.html:
I ovanstående skript laddar vi inställningar från Local Storage och kopplar dem till formulärinmatningar. Sedan skapar vi en lyssnare till skicka in event med funktioner för att spara inställningar i Local Storage och skicka dem med ett meddelande till vårt skript. Som du ser använder vi Local Storage i varje komponent. Chrome-tillägget har inte sitt eget datautrymme så den enklaste lösningen är att använda webbläsarens lokala utrymme som Local Storage. Vi använder också ofta skicka meddelande funktion. Det orsakas av Chromme-tilläggens arkitektur - de har separat logik från användargränssnittet.
Manuset
Nu är det dags att skapa script.js med logik för att manipulera Netflix undertextstilar.
Först skapar vi påMeddelande lyssnare för mottagning av meddelanden med inställningar från anknytningen.
chrome.runtime.onMessage.addListener((meddelande, _avsändare, _sendResponse) => {
// funktion för att manipulera stilar
});
I samma fil skapar vi sedan funktionen för att ändra Netflix korrekta stilar till våra stilar i realtid.
För Netflix, varje gång den tar emot hela undertextmeningar byter den bara ut undertextdelen av sidans DOM. Så vi måste använda en observatörsfunktion som Mutationsobservatör, vilket kommer att utlösa vår ändraSubtitlesStyle funktion varje gång när sidans DOM har ändrats. I återuppringning funktion ser vi enkel manipulation av stilar. De kommenterade raderna innehåller information om var du kan hitta rätt stilar.
Tid att springa
Jag antar att du inte har ett utvecklarkonto i Chrome Webstore. Så för att köra det här tillägget, gå till chrome://extensions/ i Chrome, klicka på knappen Last oförpackad, välj mapp med tillägget och det är det! Gå sedan självklart till Netflix-sidan för att testa den.
Slutsatser
Som du ser är det lätt att börja skapa några tillägg som gör livet enklare. Den viktigaste delen är att förstå Google Chrome Extension delad arkitektur och kommunikation mellan komponenter. Denna subtitles styler är bara en enkel demo av vad du kan göra med Chrome Extension API.
Som du ser är det lätt att börja skapa några tillägg som gör livet enklare. Den viktigaste delen är att förstå Google Chrome Extension delade arkitektur och kommunikation mellan komponenter. Denna subtitles styler är bara en enkel demo av vad du kan göra med Chrome Extension API.
Tänk dig att förbättra din visningsupplevelse på plattformar som Netflix med hjälp av tillägg. Till exempel är den populära Netflix Party gör det möjligt för användare att titta på innehåll tillsammans i synkronisering. En ikon för förlängning i ditt verktygsfält kan ge dig snabb åtkomst till kontrollfunktioner när streaming Netflix. Tanken bakom verktyg som Netflix förlängd är att lägga till mer funktionalitet direkt i Netflix app genom Netflix-tillägg integrerad i Chrome. När du surfar på Netflix webbplatskan sådana tillägg hjälpa användare att navigera genom Netflix kategorier mer effektivt eller till och med upptäcka dolda Netflix innehåll som de kanske inte skulle ha stött på annars.
Tänk dig dessutom att kunna lägga till en anpassad profilbild till din Netflix-profil eller ha mer kontroll över undertexter och uppspelningshastighet. Allt detta kan nås direkt från Chrome webb webbläsare, vilket gör att den totala Netflix-erfarenhet mer skräddarsydda efter varje användares preferenser. Extensions förbättrar inte bara funktionerna på webbplatser som Netflix utan höjer också den övergripande användarinteraktionen, vilket gör den mer uppslukande och användarvänlig.