YouTube Leanback on the desktop, with enhancements
JavaScript
1,158
369 commits
updated Oct 18, 2026
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.
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.
VacuumTube has some settings that you can change, which are located in the YouTube settings. They can also be opened by pressing Ctrl+O on your keyboard.
VacuumTube exposes a few extra input mappings for actions that may be desired on a desktop:
Ctrl+O
Ctrl+Shift+C
Shift+Enter
Right Click
+ or Start
- or Select
M or L3
D
A
C
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.
--version/-v
--portable/-p
data in the executable directory (you can also create portable.txt in the executable directory, which works in the same way)--fullscreen
--no-window-decorations
--enable-devtools
--debug-gpu
[url] or --deeplink [url]
https:// part is optionalyoutube.com/ also is optionalyoutu.be links work toov=Somethingvacuumtube 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' --fullscreenvacuumtube --fullscreen 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'vacuumtube --fullscreen 'youtube.com/watch?v=dQw4w9WgXcQ'vacuumtube --fullscreen 'watch?v=dQw4w9WgXcQ'vacuumtube --fullscreen 'v=dQw4w9WgXcQ'vacuumtube --deeplink 'https://youtu.be/dQw4w9WgXcQ'--deeplink, put it after -- (e.g. vacuumtube --fullscreen -- 'v=dQw4w9WgXcQ'), or give other flags their value with = (e.g. --ozone-platform=wayland)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.
Flags that take a value can be written as either --name=value or --name value (e.g. --ozone-platform=wayland or --ozone-platform wayland).
Your config folder is located at:
%APPDATA%\VacuumTube\~/Library/Application Support/VacuumTube/~/.config/VacuumTube/~/.var/app/rocks.shy.VacuumTube/config/VacuumTube/(executable directory)\data\You should always clone from the latest release tag, since latest commit may contain incomplete features and bugs.
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
# Run the automated tests
npm test
# Or package builds for your operating system
npm run windows:build
npm run mac:build
npm run linux:build(-unpacked,-appimage)
1,647 followers · starred Dec 2025
1,045 followers · starred Dec 2025
56 followers · starred Nov 2025
73 followers · starred May 2025
YouTube Leanback on the desktop, with enhancements
JavaScript
1,158
369 commits
updated Oct 18, 2026
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.
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.
VacuumTube has some settings that you can change, which are located in the YouTube settings. They can also be opened by pressing Ctrl+O on your keyboard.
VacuumTube exposes a few extra input mappings for actions that may be desired on a desktop:
Ctrl+O
Ctrl+Shift+C
Shift+Enter
Right Click
+ or Start
- or Select
M or L3
D
A
C
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.
--version/-v
--portable/-p
data in the executable directory (you can also create portable.txt in the executable directory, which works in the same way)--fullscreen
--no-window-decorations
--enable-devtools
--debug-gpu
[url] or --deeplink [url]
https:// part is optionalyoutube.com/ also is optionalyoutu.be links work toov=Somethingvacuumtube 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' --fullscreenvacuumtube --fullscreen 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'vacuumtube --fullscreen 'youtube.com/watch?v=dQw4w9WgXcQ'vacuumtube --fullscreen 'watch?v=dQw4w9WgXcQ'vacuumtube --fullscreen 'v=dQw4w9WgXcQ'vacuumtube --deeplink 'https://youtu.be/dQw4w9WgXcQ'--deeplink, put it after -- (e.g. vacuumtube --fullscreen -- 'v=dQw4w9WgXcQ'), or give other flags their value with = (e.g. --ozone-platform=wayland)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.
Flags that take a value can be written as either --name=value or --name value (e.g. --ozone-platform=wayland or --ozone-platform wayland).
Your config folder is located at:
%APPDATA%\VacuumTube\~/Library/Application Support/VacuumTube/~/.config/VacuumTube/~/.var/app/rocks.shy.VacuumTube/config/VacuumTube/(executable directory)\data\You should always clone from the latest release tag, since latest commit may contain incomplete features and bugs.
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
# Run the automated tests
npm test
# Or package builds for your operating system
npm run windows:build
npm run mac:build
npm run linux:build(-unpacked,-appimage)
1,647 followers · starred Dec 2025
1,045 followers · starred Dec 2025
56 followers · starred Nov 2025
73 followers · starred May 2025