Open-source. Self-hosted. GPLv3.

Pair every smart TV in the house. Sponsors and ads skip automatically, anything unskippable gets muted, all from one calm dashboard.

Living Room RokuSkipping in real time
SponsorAd breakSelf-promoIntroOutroPreviewInteraction reminder

At a glance

Skips sponsors, ads, intros, outros, and self-promo across every paired TV. Mutes the ads it can't skip.

Install to first paired device takes about five minutes.

Self-hosted on your LAN. No cloud account, no tracking, no SaaS in the loop.

GPL-licensed and free. Community project, no SaaS bill to upsell to.

Built for the operator

One surface for every TV you skip on.

SponsorShield turns the SponsorBlock engine that lives in JSON files and SSH sessions into a calm dashboard. Pair devices, tune skip categories, dial in per-room timing.

  • Auto-discover and pair every TV on your LAN, no SSH or hand-edited JSON.
  • Skips sponsor segments, presses Skip Ad for you, and mutes the ads that can't be skipped.
  • Catch upstream breakages before the TV does, with a dashboard banner.
A dark home at night with a smart TV glowing in three different rooms, each screen showing a sponsor segment highlighted in red on the playback timeline.

Why SponsorShield

The control panel for SponsorBlock skipping on every YouTube TV.

The core engine is powerful, but it lives in JSON files and SSH sessions. SponsorShield gives every part of it a face, and surfaces problems before you notice them on the TV.

Pairing console

Pair without the command line

Auto-discover smart TVs on your network, or type the 12-digit code from the YouTube app on your TV. No SSH, no editing JSON.

TV code4829 1640 7351Shell worknone
On your LAN5 paired
  • Living Room Roku
  • Bedroom Apple TV
3 more pairedcast + firetv + shield

See what's being skipped

24h, 7d, and 30d views show what changed, what was skipped, and how much watch time came back.

24h skip mix

31h saved

Sponsor54%Intro18%Self-promo12%

1,284 skipped

Catch breakages instantly

A rotated token or a YouTube schema change shows up as a dashboard banner, not a black screen mid-episode. Re-pair in two taps.

YouTube schema changed

Engine paused skips on Bedroom Apple TV.

2m agoRepair pairing

Per-device overrides

Tune each room without touching JSON: name every TV, drag its timing offset into sync, and pause skipping on one device while the rest keep going.

DeviceOffsetStatus
Living room+250 msActive
Bedroom−120 msActive
Kids room0 msPaused

Ownership

Yours, on your network

Runs beside the Engine you already use. One local container, two processes, single-admin auth from environment variables.

config.json compatible

Keeps config.json as source of truth. Dashboard edits go through the Engine, which writes the same file it always has and reloads live. No restart.

No cloud. No tracking. GPLv3.

Architecture: the Dashboard (Next.js) and the Engine (Python) run as two processes in one local container on your network. The Dashboard talks to the Engine over a unix socket; the Engine reaches your four TVs over the YouTube Lounge API, the only hop that leaves your LAN. config.json stays the source of truth: the Engine writes it and hot-reloads live, with no restart.

Three steps from “I have a TV” to “I never see a sponsor or ad again.”

  1. Install the container

    Pull the SponsorShield image to your home server, NAS, or Pi. Engine and dashboard run as two processes inside, talking over a Unix socket.

    $ docker compose up -d
  2. Pair your TVs

    Open the dashboard. Scan your LAN: devices running the YouTube TV app reply with metadata. Or type the 12-digit code from the YouTube app on the TV.

    Living Room Roku · 192.168.1.42
    Master Bed Firestick · 192.168.1.58
  3. Tune and forget

    Pick which categories to skip, set per-device timing offsets if you need them, then close the tab. Re-open it next week to see how much TV time you got back.

    31h 12m saved this week

Same engine. None of the JSON-editing.

Same config.json, same skips, two ways to drive it. Here is how they compare.

Pair a new smart TV

Command-line

Run the CLI in pairing mode, paste the 12-digit code into the terminal

With SponsorShield

Auto-discover on LAN, or type the 12-digit TV code into the pairing dialog

Adjust skip categories

Command-line

Edit config.json, restart the daemon, hope nothing typo'd

With SponsorShield

Toggle each category. Saves and hot-reloads automatically.

Tune audio sync per device

Command-line

Math out the offset, edit the device entry by hand

With SponsorShield

Drag the slider in the device drawer. −2.0 to +2.0 seconds.

Know when something's broken

Command-line

Notice the TV is showing sponsors again, grep the logs

With SponsorShield

Banner in the dashboard the moment the token revokes

See what's been skipped

Command-line

Tail the log file, eyeball the timestamps

With SponsorShield

24h, 7d, 30d charts, sortable activity log, category breakdown

Questions worth answering up front.

No. SponsorShield is a hard fork of iSponsorBlockTV, not an add-on to it. The container ships the skip engine and the dashboard together. One image, one docker run, no upstream install.

Get your TV time back.

Self-hosted, set up in minutes, and your smart TV skips every YouTube sponsor, and skips or mutes every ad, on its own from then on.