Criar extensões do Google Chrome com o estilizador de legendas Netflix
Lukasz Kolko
Hoje, vamos criar extensões do Google Chrome para manipular os estilos de legendas da Netflix em tempo real. Encontrará informações sobre como criar extensões de raiz, alguns conselhos práticos e pontos de vista gerais sobre a arquitetura das extensões. Se não está satisfeito com as opções de legendas da Netflix disponíveis ou apenas pretende criar rapidamente uma extensão para facilitar a sua vida, este artigo é para si.
Os nossos objectivos:
criar lógica de extensão
armazenar definições no Armazenamento local do browser
carregar automaticamente e ativar extensões apenas na página da Netflix
A Netflix, através da sua API, envia cada frase de legenda separadamente. Utiliza estilos CSS para estilizar as legendas. Com acesso ao DOM da página, podemos manipular esses estilos recebidos com a extensão do Chrome.
O manifesto
Em primeiro lugar, temos de criar o ficheiro de manifesto chamado manifest.json. Este ficheiro informa o navegador sobre a configuração da extensão, como os ficheiros UI, os scripts de fundo e as capacidades que a extensão pode ter.
Como vê, temos algumas informações padrão, como o nome, a versão, a descrição, a página inicialurl e manifestoversão.
Uma das partes importantes do manifesto é a secção de permissões. Esta é uma matriz com elementos a que a nossa extensão pode aceder.
No nosso caso, precisamos de ter acesso aos separadores para encontrar o separador ativo, executar scripts e enviar mensagens entre a IU e a extensão. Precisamos de armazenamento para guardar as definições da extensão no navegador e de declarativeContent para tomar medidas em função do conteúdo do separador. O último elemento https://*.netflix.com/ permite o acesso da extensão apenas ao domínio netflix.com.
As extensões do Chrome têm uma lógica separada da IU, pelo que precisamos de background.scripts, que indica à extensão onde pode encontrar a sua lógica. persistent: false significa que este script será utilizado apenas se necessário. page_action é a secção com a parte da IU. Temos aqui um ficheiro HTML simples para um menu pop-up e um logótipo PNG da extensão.
Lógica de extensão
Primeiro, temos de configurar os comportamentos runtime.onInstalled, remover quaisquer regras actuais (por exemplo, de versões mais antigas) e declarar a função para adicionar novas regras. Utilizamos o Armazenamento local para as definições de armazenamento, para podermos atribuir definições predefinidas depois de a extensão ser instalada.
Iremos utilizar três parâmetros de estilo de legendas:
O nosso objetivo principal é desativar o botão de extensão em todos os domínios que não sejam netflix.com. Criamos uma nova regra com Matriz de estado da página condições e declarar ShowPageAction onde a nova regra será atribuída.
Em primeiro lugar, verificamos se changeInfo.status tem o estado completo. Isto significa que o sítio Web neste separador está carregado. Em seguida, obtemos definições do Armazenamento local e declaramos qual o script que deve ser executado no separador atual com tabId. Por fim, na chamada de retorno, enviamos a mensagem com as definições da IU para o script.
Extensão UI
Para criar um menu pop-up de extensão com formulário, criamos três ficheiros: popup.html e popup.css com camadas visuais e popup.js com lógica para a comunicação entre o menu e o isolado fundo.js guião.
O nosso objetivo da IU:
Aqui temos um formulário HTML simples com validação incorporada: popup.html:
No script acima, carregamos as definições do Armazenamento local e anexamo-las às entradas do formulário. Em seguida, criamos um ouvinte para apresentar com funções para guardar definições no Armazenamento local e enviá-las por mensagem para o nosso script. Como vê, utilizamos o Armazenamento local em todos os componentes. A extensão do Chrome não tem o seu próprio espaço de dados, pelo que a solução mais simples é utilizar o espaço local do navegador, como o Armazenamento local. Também utilizamos frequentemente o sendMessage função. A causa é a arquitetura das extensões do Chromme - têm uma lógica separada da IU.
O guião
Agora é altura de criar script.js com lógica para manipular estilos de legendas Netflix.
Primeiro, criamos onMessage ouvinte para receber mensagens com definições da extensão.
Para o Netflix, sempre que recebe frases de legendas completas, troca apenas a parte das legendas do DOM da página. Por isso, temos de usar uma função de observador como MutaçãoObservadorque irá acionar o nosso changeSubtitlesStyle sempre que o DOM da página for alterado. No retorno de chamada vemos uma simples manipulação de estilos. As linhas comentadas contêm informações sobre onde encontrar os estilos corretos.
Tempo para correr
Presumo que não tenha uma conta de programador na Chrome Webstore. Por isso, para executar esta extensão, vá a chrome://extensions/ no seu Chrome, clique no botão Carga não embaladaselecionar a pasta com a extensão e já está! Depois, obviamente, vá para a página do Netflix para testá-lo.
Conclusões
Como vê, é fácil começar a criar algumas extensões que facilitam a vida. A parte mais importante é compreender a arquitetura dividida da Extensão do Google Chrome e a comunicação entre componentes. Este estilizador de legendas é apenas uma demonstração simples do que pode fazer com a API de extensão do Chrome.
Como vê, é fácil começar a criar algumas extensões que facilitam a vida. A parte mais importante é compreender a arquitetura dividida da Extensão do Google Chrome e a comunicação entre componentes. Este estilizador de legendas é apenas uma demonstração simples do que pode fazer com a API de extensão do Chrome.
Imagine melhorar a sua experiência de visualização em plataformas como a Netflix com o poder das extensões. Por exemplo, o popular Festa Netflix permite aos utilizadores verem conteúdos em conjunto e em sincronia. Uma ícone de extensão na sua barra de ferramentas pode proporcionar-lhe um acesso rápido às funcionalidades de controlo quando streaming Netflix. A ideia subjacente a ferramentas como Netflix alargado é adicionar mais funcionalidades diretamente ao Aplicação Netflix através do Extensão Netflix integrado no Chrome. Ao navegar no Site da NetflixEssas extensões podem ajudar os utilizadores a navegar através de Categorias Netflix de forma mais eficiente ou mesmo descobrir Conteúdo da Netflix que de outra forma não encontrariam.
Além disso, imagine poder adicionar um imagem de perfil personalizada ao seu perfil Netflix ou ter mais controlo sobre as legendas e a velocidade de reprodução. Tudo isto pode ser acedido diretamente a partir do Chrome web navegador, tornando o Experiência Netflix mais adaptadas às preferências de cada utilizador. As extensões não só melhoram as funcionalidades de sítios Web como o Netflix, mas também elevam a interação geral do utilizador, tornando-a mais envolvente e fácil de utilizar.