A lightweight browser extension that blocks Twitch ads on live streams and VODs while keeping playback stable.
- Chrome Web Store: TTV AB - Lightweight, powerful ad blocker
(Waiting for approval) - Firefox Add-ons: TTV AB - Twitch 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 - 11 languages supported (EN, ES, FR, DE, PT, IT, JA, KO, ZH-CN, ZH-TW, RU)
- ✅ Per-channel ad blocking breakdown
- ✅ Modern, animated UI (Cyberpunk/Neon aesthetic)
- ✅ Lightweight and fast
- Navigate to twitch.tv
- Open any live stream or VOD
- Ads will be automatically blocked
- Click the extension icon and use the toggle to enable/disable
- Change language via the dropdown in the footer
The extension intercepts Twitch's live and VOD HLS video playlists and:
- Strips ad-marked segments from M3U8 playlists when Twitch injects them
- Fetches backup ad-free streams when Twitch forces playback onto an ad path
- Cleans up stale Twitch ad UI after recovery
- Suppresses competing media during ad recovery and returns playback to the real stream
- Caches known ad segments to reduce repeated playback disruption
During active ad recovery, Twitch may temporarily fall back to a lower-quality backup stream, such as 360p, while the extension keeps playback alive. Once the ad window ends and the player returns to native playback, your chosen quality is restored.
- Shared Stream-Info Factory - Refactored the duplicated stream-info construction in the worker fetch hook and the playlist processor into a single shared factory. Behavior unchanged.
See CHANGELOG.md for full version history.
npm install
npm run build
npm run package:chrome
npm run lint
npm run knipLoad the unpacked extension from dist/manifest.json after npm run build.
Create a Chrome Web Store upload archive with npm run package:chrome; it writes ttv-ab-<version>-chrome-store.zip at the repo root.
npm run knip is expected to pass cleanly with the current knip 6.1.1 configuration.
If you enjoy TTV AB, consider buying me a coffee! Your support helps keep this project alive.
This extension operates entirely locally and does not send any browsing or usage data off your device. See PRIVACY.md for details.
MIT License with Attribution - See LICENSE for details.