Playback speed control for HTML5 video, plus a few handy tools for YouTube.
Chrome · Manifest V3 · Vanilla JavaScript · No build step
English · Русский
- speed from
0.0xto4.0xin0.1steps; - hold the increase or decrease button to keep stepping by
0.1; - custom presets and rebindable keyboard shortcuts;
- the selected speed is applied to new videos automatically;
- an allowlist of sites the extension should run on;
- Russian and English interface with browser language detection;
- light, dark and system themes;
- a speed panel next to the YouTube action buttons;
- optional SponsorBlock with per-category control and statistics;
- a Summary button that copies a prepared prompt along with the video link and opens Gemini.
Language and theme both default to "Auto": the language follows the browser UI language (Russian when it starts with ru, English otherwise), the theme follows the system setting. Either can be switched by hand in the settings.
Default shortcuts:
Alt + ←— decrease speed;Alt + →— increase speed;Alt + R— back to1.0x.
- Download
video-speed-control-<version>.zipfrom the latest release and unpack it into any folder you plan to keep (or clone the repository). - Open
chrome://extensions/. - Enable developer mode.
- Click "Load unpacked" and pick the unpacked folder — the one that
contains
manifest.json. Chrome cannot install the.zipitself, and dragging the archive onto the page does nothing.
Keep that folder in place: Chrome loads the extension from it on every start, and deleting or moving it removes the extension.
No build and no dependency installation required.
By default the extension runs on every page it can reach. Once domains are added in the settings, it only stays active on those and their subdomains. An entry of example.com, for instance, allows example.com and video.example.com, but not badexample.com.
Both a bare domain and a full URL are accepted — only the normalized hostname is stored.
- Settings, shortcuts and statistics are stored locally through
chrome.storage.local. - The extension requests
<all_urls>because it has to find HTML5 video across arbitrary sites and inside nested frames. - SponsorBlock is off by default. Once enabled, the current YouTube video ID and the selected categories are sent to the public
sponsor.ajay.appAPI over HTTPS. - The Summary button never uploads the video itself: it copies the prompt and the link to the clipboard, then opens Gemini in a new tab.
Node.js is required:
node --test
node --check background.js
node --check content.js
node --check popup.jsmanifest.json Manifest V3 extension config
background.js per-tab state and background logic
content.js video control and the YouTube integrations
domain-utils.js hostname normalization and matching
i18n.js RU/EN dictionaries and active locale resolution
_locales/ localized manifest name and description
popup.html popup markup
popup.js popup and settings logic
styles.css themes and layout
tests/ standalone tests for the domain logic and the manifest
icons/ extension icons
Released under the MIT license.

