- Los atajos de YouTube, en cualquier
<video>. Del 0 al 9 para saltar del 0 al 90 %, espacio para pausar, flechas para avanzar, retroceder y cambiar el volumen, M para silenciar, F para pantalla completa, + y - para la velocidad y P para picture-in-picture. - Lo que YouTube no trae. Bucle A-B, filtros de brillo, contraste y saturación, y un modo cine que oscurece el resto de la página.
- Eventos personalizados. Una tecla que pulsa u oculta cualquier elemento a partir de un selector CSS, por ejemplo el botón de "me gusta". Sin tecla, se ejecutan solos al aparecer el elemento.
- A tu medida. Todas las teclas se cambian, se pueden tener atajos distintos por web y, desde el popup, apagar un atajo solo en la web en la que estás.
- Solo donde tú dices. La lista de webs permitidas empieza vacía. Aviso en pantalla configurable, tema claro u oscuro y cinco idiomas. Sin telemetría, sin analíticas y sin servidores.
El manifiesto pide acceso a todas las webs para no tener que aceptar un permiso nuevo en cada una, pero el content script no se declara para ninguna. El service worker lo registra en tiempo de ejecución con chrome.scripting.registerContentScripts, solo para los dominios de la lista, y lo vuelve a registrar únicamente cuando la lista cambia.
El script busca vídeos también dentro de shadow DOM y en los iframes cuyo dominio está en la lista. Si hay varios, elige el que se está reproduciendo y, si no, el más grande.
El popup y la página de opciones son Vue 3 con Tailwind. Los ajustes viven en chrome.storage, y el content script los escucha para aplicar los cambios sin recargar.
- No robar teclas. Si estás escribiendo en un campo, aunque esté dentro de shadow DOM, la extensión no hace nada. Tampoco con Ctrl, Alt o Cmd. Y un evento personalizado solo se queda la tecla si de verdad ha encontrado algo que pulsar.
- Clics que los reproductores sí escuchan. Muchos botones reaccionan a
mousedown y no a click, así que el clic simulado lanza la secuencia completa. - Un espacio que nunca coincidía. El atajo por defecto para pausar se guardaba como
' ' y la tecla llegaba como space. Ahora se normalizan los dos lados, también para los ajustes que ya estaban guardados. - Un aviso sin estilos. Al registrar el script en tiempo de ejecución, la hoja de estilos del aviso en pantalla se quedó fuera y el aviso salía como texto suelto debajo del vídeo. Ahora se registra junto al script, con un test que lo comprueba.