A lightweight browser extension that blocks Twitch ads on live streams and VODs while keeping playback stable.
⚠️ Supported browsers: Firefox and Chromium-based desktop browsers only. TTV AB can't run on WebKit-based browsers like Orion, or on anything on iOS/iPadOS (every iOS browser is WebKit under the hood). The ad-blocker can't load there and the player goes to a black screen, so please use Firefox or a Chromium-based browser on a computer.
| Store | Link | Status |
|---|---|---|
| Firefox Add-ons | TTV AB - Twitch Ad Blocker | Stable |
| Chrome Web Store | TTV AB - Lightweight, powerful ad blocker | Stable |
- ✅ Blocks preroll and midroll ads on live streams and VODs
- ✅ Supports both live playback and Twitch
/videos/<id>archives - ✅ Cleans up stale Twitch ad UI after recovery
- ✅ Avoids purple-screen playback interruptions
- ✅ Restores your chosen quality after ad recovery
- ✅ Manifest V3 compatible
- ✅ Simple enable/disable toggle
- ✅ Accessible popup controls and live-updating stats
- ✅ Persistent "Ads Blocked" statistics
- ✅ Statistics Dashboard with time saved, weekly charts, and achievements
- ✅ 12 Achievement Badges to unlock as you block ads
- ✅ Language Selector - 12 languages supported (EN, ES, FR, DE, PT, IT, JA, KO, ZH-CN, ZH-TW, RU, UK)
- ✅ Per-channel ad blocking breakdown
- ✅ Modern, animated UI (Retro/Neon aesthetic)
- ✅ Theme Picker - switch between the default Retro synthwave theme and the original Neon theme via two color circles in the popup
- ✅ Lightweight and fast
- Install the extension from your browser's add-on store
- Navigate to twitch.tv and open any live stream or VOD
- Ads are blocked automatically, no configuration needed
- Click the extension icon to view stats or toggle Ad Blocking, Ad Spoofing, and Low Quality Fallback
- Change language via the dropdown in the popup footer
TTV AB intercepts Twitch's HLS video playlists at the network level. When Twitch injects ad-marked segments or forces the player onto an ad-only path, the extension:
- Strips ad segments from M3U8 media playlists in real time
- Fetches clean backup streams using alternative player types when the native stream is ad-locked
- Serves a valid empty video segment in place of blocked ad content to keep the decoder stable
- Monitors playback health and automatically recovers from stalls after ad breaks
- Restores your original quality and volume settings once native playback resumes
When a channel opens during an ad, or an ad starts mid-stream, the extension switches to a clean backup stream within a couple of seconds so video starts playing right away. The backup targets the quality your connection has been sustaining (even if the player had just restarted on a low rung when the ad hit), with a 360p floor so a channel-open preroll never starts blurrier than 360p while the player is still ramping up from its lowest quality. Your full native quality and audio are restored automatically and seamlessly once the ad window ends. The optional Low Quality Fallback toggle trades some quality for an even faster first frame, starting on a quick low-resolution stream and climbing back up as the break ends.
- Made Generate Log faster, safer, and more useful. Unresponsive tabs can no longer hold an export open indefinitely, while bounded playback diagnostics and stronger privacy redaction make bug reports easier to investigate.
- Fixed some smaller channels remaining at 360p after ads. When Twitch returns an empty higher-quality stream, TTV AB gets one bounded fallback while keeping the clean backup advancing and all ad-marked media blocked.
- Fixed ad recovery repeatedly restarting playback after a break. Required playback rebuilds now keep the verified stream session, preventing extra prerolls from extending recovery for many minutes.
See CHANGELOG.md for the complete list of changes.
git clone https://github.com/GosuDRM/TTV-AB.git
cd TTV-AB
npm install
npm run build # compiles TypeScript, minifies, and bundles
npm run package:chrome # creates Chrome Web Store upload archive
npm run lint # runs Biome linter
npm run knip # checks for unused exportsThe build outputs to dist/. Load the unpacked extension from dist/manifest.json in your browser's developer mode after building.
The source tree under src/ is organized by concern: modules/ for core ad-blocking logic (processor, parser, player, hooks, worker, state, API), scripts/ for the bridge and background service worker, and popup/ for the extension UI.
- Found a bug? Open an issue
- Want to contribute? Pull requests are welcome
- If TTV AB saves you from ads, consider supporting development:
TTV AB operates entirely on your device. No data is ever sent to external servers: not your browsing history, not your Twitch activity, not your ad-block statistics. All counters and settings are stored in your browser's local storage. See PRIVACY.md for the full privacy policy.
MIT License with Attribution. See LICENSE for details.