https://github.com/alexplast/youtube-speedx
A userscript to control video playback speed, resolution, and codecs across multiple platforms.
https://github.com/alexplast/youtube-speedx
javascript playback-speed productivity tampermonkey userscript violentmonkey youtube
Last synced: about 2 months ago
JSON representation
A userscript to control video playback speed, resolution, and codecs across multiple platforms.
- Host: GitHub
- URL: https://github.com/alexplast/youtube-speedx
- Owner: alexplast
- License: mit
- Created: 2025-07-08T10:49:32.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-20T09:30:24.000Z (11 months ago)
- Last Synced: 2025-07-20T11:24:38.522Z (11 months ago)
- Topics: javascript, playback-speed, productivity, tampermonkey, userscript, violentmonkey, youtube
- Language: JavaScript
- Homepage:
- Size: 14.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# YouTube SpeedX


[](https://raw.githubusercontent.com/alexplast/youtube-speedx/main/dist/youtubespeedx.userscript.js)
A userscript to enhance your video viewing experience with custom speed, resolution control, and improved performance, all managed through a polished and user-friendly settings menu.

## ✨ Features
- **Polished Settings Menu:** Easily configure the script through a professional UI, accessible directly from the YouTube player's settings menu or via hotkey (`Ctrl + Alt + S`).
- **Custom Default Speed:** Set any default playback speed you like, without floating-point errors.
- **Consistent Speed Rounding:** Speeds are normalized to 2 decimal places (e.g., `1.25`, `1.30`, `1.35`).
- **Speed Boost:** Temporarily accelerate video playback by holding a hotkey. The boost speed can be adjusted on-the-fly using the standard speed hotkeys or by pressing a number key (`1-9`).
- **Fullscreen Progress Bar:** Displays a subtle 1px progress bar at the bottom of the screen when in fullscreen with the UI hidden.
- **Customizable Speed Step:** Configure the increment/decrement value for speed changes in the settings menu.
- **Smart FPS Control:** Set a maximum resolution for 60 FPS videos (e.g., limit to 1080p60 or 720p60) or disable them completely to match your hardware's capabilities. Resolution hotkeys respect this filter.
- **Dropdown for Resolution:** Choose your preferred default resolution from a clean dropdown list.
- **Persistent Settings:** Remembers your speed, resolution, and feature choices.
- **Customizable Hotkeys:** Reliably change the hotkeys for all actions using their physical location on the keyboard (`event.code`).
- **Force H.264 Codec:** Toggle the use of the H.264 video codec to reduce CPU usage and improve battery life on supported hardware.
- **Native UI Feedback:** Uses YouTube's built-in on-screen display for speed and resolution changes, with a pixel-perfect custom display for speeds above 2x.
- **Multi-Platform Support:** Works on YouTube, RuTube, Smotrim, Ivi, Twitch, VK Video, Telegram Web, and Yandex.Disk.
## 🚀 Installation
1. Install a userscript manager extension for your browser, such as:
- [Tampermonkey](https://www.tampermonkey.net/) (Recommended)
- [Violentmonkey](https://violentmonkey.github.io/)
2. **[Click here to install the script](https://raw.githubusercontent.com/alexplast/youtube-speedx/main/dist/youtubespeedx.userscript.js)** (standard)
3. Optional: **[install the minified version](https://raw.githubusercontent.com/alexplast/youtube-speedx/main/dist/youtubespeedx.userscript.min.js)** (smaller, harder to debug)
*After clicking the link, your userscript manager should open and prompt you for installation.*
### Updating from older installs (≤ 2.x)
Version `3.x` moved the install/update URL to `dist/`, so scripts installed from the old root URL will **not** auto-update.
To update:
1. Open the new install link above.
2. Your userscript manager should prompt to install/update the existing script.
- If it installs as a separate script, remove/disable the old one to avoid duplicate hotkeys.
3. Your settings should stay (stored in `localStorage` under `ytSpeedXConfig`).
## 🛠️ Usage
### Settings Menu
Click the settings icon (gear) in the YouTube player and select **"YouTube SpeedX Settings"**.
Alternatively, you can press **`Ctrl + Alt + S`** (by default). From this menu, you can configure all aspects of the script, including the hotkeys themselves.
### Default Hotkeys
The script uses physical key locations (`event.code`), so these hotkeys will work regardless of your keyboard layout.
- `Shift` + `>`: Increase playback speed (`Period`). Seamlessly transitions to custom speeds above 2x.
- `Shift` + `<`: Decrease playback speed (`Comma`).
- `B` key (hold): Temporarily activate Speed Boost (`KeyB`).
- `,` key: Decrease video resolution (`Comma`).
- `.` key: Increase video resolution (`Period`).
- `S` key (with `Ctrl+Alt`): Open the settings menu (`KeyS`).
*Note: Hotkeys can be changed in the settings menu and will not trigger if you are typing in a text field or if the settings menu is open.*
## 🤝 Contributing
Contributions, issues, and feature requests are welcome! Feel free to check the [issues page](https://github.com/alexplast/youtube-speedx/issues).
## 📝 License
This project is [MIT](https://github.com/alexplast/youtube-speedx/blob/main/LICENSE) licensed.