YouTube Up Next: A Local Queue for YouTube

A browser extension and optional local Mac wrapper that turns YouTube into a video-first queue without creating or editing real YouTube playlists.

Category: Browser Extension, Media Workflow, Local-First Tools

Timeframe: 2026

Repo: github.com/Leopere/youtube-up-next-app

Primary install: Unpacked Chrome, Edge, Brave, or Chromium extension

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 source lives on GitHub. The current local README describes the project primarily as a browser extension, with the macOS Chromium wrapper kept as an optional local app path.

Reviewed from local repo commit 3ed7e3d. Queue and played state are stored locally by the extension.

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

YouTube Up Next 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 extension 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 extension 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.

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 Shape

The current recommended path is to load the extension manually in Chrome, Edge, Brave, or Chromium:

  1. Download or clone the repository.
  2. Open chrome://extensions.
  3. Enable Developer mode.
  4. Choose Load unpacked.
  5. Select the repository's extension/ folder.
  6. Open YouTube in that browser.

This approach runs inside your existing signed-in browser session. That matters because Google often rejects sign-in inside embedded browsers, including Electron-style wrappers, with browser-security warnings.

Optional Mac Wrapper

The repository still includes an optional macOS wrapper for local use. It launches YouTube in Chromium with the extension preloaded, uses a separate persistent profile at ~/Library/Application Support/YouTube Up Next Chromium, and opens a predictable 1600x900 window positioned at 80,60.

That wrapper path requires Chromium at /Applications/Chromium.app. It is useful when you want a standalone app window, but the extension path is the cleaner public install story.

Packaging

The extension can be packaged with ./scripts/package-extension.sh, which writes dist/YouTube-Up-Next-extension.zip. The Mac wrapper can be packaged with ./scripts/package.sh, which writes dist/YouTube-Up-Next-macOS.zip.

Those generated app and zip files are build artifacts and are intentionally ignored by git.

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.