TubeTV, formerly YouTube Up Next, is a small local control layer for YouTube. It adds the queue behavior I wanted from a desktop media player while leaving the underlying YouTube account, history, and playlists alone.
Project Reference
The latest release ships both a macOS Electron app archive and a browser extension archive. The queue remains local storage; no backend service is introduced.
The Problem
YouTube has playlists, Watch Later, recommendations, and autoplay. None of those are quite the same as a deliberate temporary queue. Watch Later is a saved list. Playlists are durable collections. Recommendations are YouTube's agenda. Autoplay is convenient, but it is not a plan.
The missing piece is a simple "play this next" workflow. When a video catches your eye, you should be able to add it to the front or the end of a local queue without changing any account-level playlist and without losing the current video-first shape of the page.
What It Adds
TubeTV injects + Next and + Last controls into YouTube surfaces. On browse, search, and recommendation pages those buttons appear on thumbnails. On video and Short pages, floating buttons give you the same queue controls without leaving playback.
The app also adds a fixed side pane for queued videos. From that pane you can play, remove, clear, and reorder items. Played items stay visible as greyed-out history instead of vanishing, which makes the queue easier to reason about during longer sessions.
The count is shown as unplayed over total. If you want to replay from the top, Reset Played makes greyed videos playable in queue order again.
Watch Later Without Turning It Into the Queue
When you are signed in, the side pane includes a Watch Later tab that reads your YouTube Watch Later playlist. That makes saved videos available to the queue workflow, but the local queue remains separate. The extension does not create, delete, or reorder real YouTube playlists.
Playback Flow
When the current video ends, the app automatically opens the next unplayed queued video. Watch pages open in Theater mode, keeping the page video-first while the queue side pane remains available.
Shorts get their own bottom dock for Short + Next and Short + Last, because YouTube's overlay can make top-right controls awkward on that surface.
Speed and Sponsor Controls
A playback speed overlay exposes speeds from 0.10x to 5.00x in 0.10x steps and reapplies the selected speed as YouTube navigates between videos.
SponsorBlock-compatible skipping is optional and uses the public SponsorBlock API. The app supports Sponsor, Quiet, and Aggro modes so the user can choose how much interruption to remove during continuous playback.
Retro TV Modes
TubeTV also includes a retro display mode for leaning back into the video window. Pressing R outside text fields cycles through randomized green phosphor, black-and-white, red, amber, tube TV, and normal display treatments.
Why It Is Local
The queue uses local extension storage. That is the right trade-off for this tool. The queue is intentionally temporary, private to the browser profile, and fast to mutate. There is no backend account, no sync service, and no claim that this is a replacement for YouTube playlists.
That local boundary is also what keeps the tool honest: it helps you decide what to watch next without trying to become another content library.
Install
The macOS app installs as /Applications/TubeTV.app. It intentionally keeps using the older Electron profile at ~/Library/Application Support/YouTube Up Next, so upgrades preserve the existing YouTube sign-in, local queue, and saved resume state from the previous app name.
The browser extension can still be loaded manually in Chrome, Edge, or Brave:
- Download or clone the repository.
- Open
chrome://extensions. - Enable Developer mode.
- Choose Load unpacked.
- Select the repository's
extension/folder. - Open YouTube in that browser.
The extension path runs inside your existing signed-in browser session. That matters because some Google sign-in flows can reject embedded browsers.
Packaging
The extension can be packaged with ./scripts/package-extension.sh, which writes dist/TubeTV-extension.zip. The macOS Electron app can be packaged with ./scripts/package.sh, which writes release/TubeTV-macOS-Electron-arm64.zip on Apple Silicon.
The project ship script syncs release metadata, runs checks, builds both release artifacts, publishes or updates the GitHub release, installs the app into /Applications, and relaunches it locally.
Observations
This is the kind of tool that stays useful because it does less than a platform feature. It does not try to own discovery, recommendations, playback history, or playlists. It only gives the user a local queue and precise controls: next, last, remove, clear, reorder, reset played.
The trade-off is maintenance. YouTube's DOM changes, and an unpacked extension install is less polished than a store release. But for a workflow tool that depends on exact page-level behavior, keeping the implementation small and inspectable is a practical starting point.