Firefox WebExtension that preserves default video playback settings.
MVP: Applies a configurable default playback speed (default 2.0) to YouTube videos. Provides a popup with preset buttons (1x, 1.5x, 2x) and a custom speed input. Respects manual speed changes on the current page without overriding them.
Press Ctrl+A, then a command key (tmux-style prefix — outside that window every native YouTube shortcut still works):
| Chord | Action |
|---|---|
Ctrl+A o |
Open jump overlay (labels clickable elements) |
Ctrl+A p |
Open queue overlay (add a video to the Up Next queue) |
Ctrl+A Shift+P |
Open playlist picker for the current video (fuzzy-search, multi-add, create new) — watch page only, requires being logged in |
Ctrl+A y |
Go home |
Ctrl+A v |
Set speed to preset 1 (default 1x) |
Ctrl+A b |
Set speed to preset 2 (default 1.5x) |
Ctrl+A n |
Set speed to preset 3 (default 2x) |
Ctrl+A h |
Toggle auto-apply default speed on video load |
The prefix defaults to Cmd+A on macOS and Ctrl+A on Windows/Linux, fully overridable.
Full reference: docs/keyboard-quickstart.md.
Edit src/core/shortcuts.config.json to change the prefix key, any chord binding, or the three preset speed values. Speed values must fall within the allowed range (0.25–4.0), but only use values YouTube itself will actually honor for your account — e.g. speeds above 2x are a YouTube Premium feature, so a non-Premium account silently caps at 2x regardless of what's configured here. Respect the platform's own limits when picking a value. Details: docs/specs/keyboard-shortcuts.md.
Active development on dev branch. Also works on Chromium-based browsers.
| Browser | Status | Listing |
|---|---|---|
| 🦊 Firefox (AMO) | Published | addons.mozilla.org/.../videodefaults |
| 🌐 Chrome (Web Store) | Published | chromewebstore.google.com/.../videodefaults |
| 🟦 Edge (Add-ons) | Not yet submitted | — |
- Firefox Desktop (Manifest V3)
- No external runtime dependencies
npm install # install dev tooling (not shipped in extension)
npm test # run unit tests (requires scripts/test.sh — available at Milestone 5)
npm run check # syntax check + manifest validationapps/shared/ Browser-agnostic extension source (content/popup scripts, assets)
apps/firefox-extension/ Firefox edition (manifest; src/assets/lib generated by sync script)
apps/chrome-extension/ Chrome edition (manifest; src/assets/lib generated by sync script)
apps/edge-extension/ Edge edition (manifest; src/assets/lib generated by sync script)
src/ Shared core logic and adapters
tests/ Unit tests and HTML fixtures
tools/ Dev and CI tooling (packager, compatibility watcher)
scripts/ Shell helpers and git hooks
docs/ ADRs, specs, compliance, and release notes
Build any edition with bash scripts/package-extension.sh <firefox|chrome|edge>-extension.
dev— active developmentmain— release only; updated via rebase from dev
See CONTRIBUTING.md.
This project is free. If you'd like to support it: Buy Me a Coffee
MIT