VacuumTube is an unofficial wrapper of YouTube Leanback (the console and Smart TV version of YouTube) for the desktop, with a built-in adblocker and minor enhancements.
It is not a custom client, YouTube Leanback is an official interface. This project simply encompasses it and makes it usable as a standalone desktop application.
YouTube Leanback is just an HTML5 app, and so you can just use it in your browser by going to https://www.youtube.com/tv, but they intentionally block browsers unless it's one of their console or TV apps.
You can technically bypass this by spoofing your user agent, but it isn't the same experience you'd get on a console or TV as it doesn't support controllers outside of the official app, and it's just a much more involved process to get it working.
VacuumTube solves all of this by wrapping it with Electron, pretending to be the YouTube app, implementing controller and touch support, and overall making it a much better experience than just spoofing your user agent.
If there's anything that you think makes it look lazy or half-baked, open an issue! The goal is to make it feel as official as possible, while also providing niceties like ad blocking, DeArrow and userstyles.
If you don't know the difference, pick the Installer.
- Installer
- Portable:
Note that macOS builds are not yet signed, so they do not auto-update. For now, please periodically check for updates.
In most cases, you very likely want to use the Flatpak, which works across all distributions and common architectures.
Otherwise, you can use a distribution package or a portable one. If you don't know the difference, you likely want amd64.
- amd64 / x86_64
- Arm® 64 / aarch64
VacuumTube has some settings that you can change, which are located directly in the YouTube settings. They can also be opened by pressing Ctrl+O on your keyboard or R3 on your controller.
- Ad Block
- Seamlessly blocks video and feed ads, not subject to YouTube's methods of preventing blockers
- Sponsorblock
- Automatically skips sponsored segments in videos based on a community-contributed database
- DeArrow
- Replaces titles and thumbnails with more accurate, less sensationalized versions from a public crowdsourced database
- Return Dislikes
- Uses community data from the Return YouTube Dislike API to show rough dislike counts
- Remove Super Resolution
- Removes "Super resolution" (AI upscaled) qualities from low quality videos
- Hide Shorts
- Hides YouTube Shorts from the homepage
- Force H.264
- Forces YouTube to only stream videos in the H.264 codec (like h264ify)
- Hardware Decoding
- Uses your GPU to decode videos when possible
- Low Memory Mode
- Tells YouTube to enable it's low memory mode
- Fullscreen
- Enables fullscreen, and makes VacuumTube always launch in fullscreen
- Keep on Top
- Enables Keep on Top, and makes VacuumTube launch with the window pinned on top of every other window
- Custom CSS (Userstyles)
- Enables injection of custom CSS styles. See the section below for more information
- Controller Support
- Allows toggling of controller support in VacuumTube (on by default, can be turned off to avoid conflicting with apps like JoyToKey)
- Wayland HDR (Linux)
- Enables HDR on Wayland (Linux) platforms, but can cause desaturated colors on unsupported platforms. Requires up to date drivers and a compatible Wayland compositor. See HDR - Arch Wiki
VacuumTube exposes a few extra input mappings for actions that may be desired on a desktop:
Ctrl+OorR3- Open VacuumTube Settings
Ctrl+Shift+C- Copy current video URL to clipboard
Shift+Enter- Simulate long-press of the Enter key
Right Click- Go back
You can apply custom styles to VacuumTube by first enabling it in the settings, and then creating .css files in the userstyles folder. They can then be managed in VacuumTube settings. You can access the developer tools by pressing Ctrl+Shift+I, which are extremely helpful when writing custom CSS.
The userstyles folder is located in the config folder mentioned below.
You can provide extra command line flags to Chromium via the flags.txt file located in the config folder.
For example, putting --disable-gpu into the flags.txt file will cause VacuumTube to run with the GPU disabled. You can find more flags by searching for Chromium command line flags, but you likely won't need to mess with this.
Your config folder is located at:
- Windows:
%APPDATA%\VacuumTube\ - macOS:
~/Library/Application Support/VacuumTube/ - Linux:
~/.config/VacuumTube/ - Linux (Flatpak):
~/.var/app/rocks.shy.VacuumTube/config/VacuumTube/
Builds will be created in the dist/ folder
git clone https://github.com/shy1132/VacuumTube
cd VacuumTube
# Install Dependencies
npm i
# Run without packaging
npm run start
# Or package builds for your operating system
npm run windows:build
npm run mac:build
npm run linux:build(-unpacked,-appimage)