TTV AB - Lightweight Twitch.tv Ad Blocker version history - 25 versions
TTV AB - Lightweight Twitch.tv Ad Blocker by GosuDRM
Be careful with old versions! These versions are displayed for testing and reference purposes.You should always use the latest version of an add-on.
Latest version
Version 9.3.8
Released Jun 7, 2026 - 374.07 KBWorks with firefox 142.0 and later[v9.3.8] — 2026-06-07- Worker crash recovery is capped across replacement workers. Recovery attempts are tracked per stream context, so repeated worker recreation cannot reset the limit and loop player reloads indefinitely.
- Missed worker heartbeats now use the full recovery path. A worker that never replies is quarantined, degraded M3U8 fallback is installed, and the player is reloaded only after a current-page context check.
- Channel switches are safer during worker recovery. Tracked workers now receive updated page context, and crashed workers cannot process late recovery messages after being removed.
Source code released under MIT License
Older versions
Version 9.3.7
Released Jun 7, 2026 - 372.47 KBWorks with firefox 142.0 and later[9.3.7] - 2026-06-07
Fixed- Low-quality fallback no longer stalls while high-quality backups are probed. After the clean
autoplayfallback won during an ad, the next playlist polls could still spend several seconds checking source-tier backups before returning a fresh playlist. On a thin live buffer, that delay let the playhead catch the buffer end and Twitch loggedPlayhead stalling. The active ad-cycle now holdsautoplayas the only backup candidate and refreshes it directly until the ad ends. - Low quality → high quality recovery avoids mid-ad source hitches. The extension now defers high-quality restoration to the existing ad-end recovery path instead of swapping from the low-quality fallback to a source-tier backup while the ad cycle is still active.
Source code released under MIT License
- Low-quality fallback no longer stalls while high-quality backups are probed. After the clean
Version 9.3.6
Released Jun 7, 2026 - 372.75 KBWorks with firefox 142.0 and later[9.3.6] — 2026-06-07- No more occasional loading circle during ad breaks. The clean backup stream was served as a frozen playlist snapshot and replayed for up to 15s, so its buffer capped at ~4s and the playhead froze; the backup playlist is now re-fetched every ~2s so it keeps advancing like a live stream should.
- A stalled backup switches to a working one within seconds. When the playhead-stall watcher fires, the stuck backup type is put on a short cooldown so the re-search rotates to the next type (e.g. site → embed) instead of re-selecting the broken one and giving up.
- Playback recovery now runs during ads too. A new in-ad watchdog issues a pause/play nudge and then reloads the player if the playhead stays frozen on a drained buffer, even while an ad is active — previously that recovery only ran between ad breaks.
Source code released under MIT License
Version 9.3.4
Released Jun 7, 2026 - 369.97 KBWorks with firefox 142.0 and later[9.3.4] - 2026-06-07
Fixed- No more 5-12s loading circle on preroll. The cold-start autoplay-first strategy (pin autoplay as the first backup on a fresh ad cycle for a fast first-frame) was the source of the silent autoplay-gate stalls that froze the playhead at ~3.97s while Twitch's "Autoplay is only allowed when approved by the user…" UI sat in the background. Autoplay is now appended as last-resort on a fresh ad cycle, so Source-tier backups (site, embed, popout, mobile_web) are tried first. The LQ→HQ dwell window still uses autoplay-first (continuation case where autoplay is already pinned and we don't want to flicker back to HQ), but that path doesn't re-hit the autoplay-gate. Trade-off: ~500ms slower first clean frame in the rare case autoplay would have been the cleanest backup; gain: 5-12s loading circle eliminated on every preroll that hits the gate.
Source code released under MIT License
Version 9.2.3
Released Jun 6, 2026 - 362.97 KBWorks with firefox 142.0 and laterv9.2.3 — 2026-06-06- Fixes Firefox ad breakthrough during full-pod ad breaks. The injected Worker (which does all the ad blocking) was intermittently failing to load on Firefox because the blob: URL was created without a MIME type and revoked too quickly. The blob now has an explicit
text/javascripttype, revocation is delayed to 30s, and a heartbeat check detects if the Worker never started. If it didn't, a page-side M3U8 fetch override kicks in as degraded-mode ad blocking.
Source code released under MIT License
- Fixes Firefox ad breakthrough during full-pod ad breaks. The injected Worker (which does all the ad blocking) was intermittently failing to load on Firefox because the blob: URL was created without a MIME type and revoked too quickly. The blob now has an explicit
Version 9.2.2
Released Jun 6, 2026 - 361.68 KBWorks with firefox 142.0 and laterv9.2.2 — 2026-06-06- Crashed playback workers now actually recover: the watchdog could never detect a hung worker (posting to a dead worker never fails), and "restarts" spawned an orphan worker Twitch never used so a dead worker stayed dead. Workers now reply to a liveness ping, the watchdog acts only when a pong is missed for 15s, and recovery reloads the player so Twitch creates a fresh, fully-wired worker (with a 30s cooldown to avoid reload loops).
- "Ads Blocked" no longer overshoots after a connection blip: queued counter updates were summed without a cap while the messaging bridge was down; the merged increment is now clamped to the real total.
- The active stream is no longer evicted from the worker cache: the URL→stream table now drops least-recently-used entries instead of oldest-inserted, preventing brief moments where ads slipped through on the stream you're watching.
- Hardened against stat tampering: the background worker now only accepts counter messages from the extension itself.
- Popout / Picture-in-Picture hooks fail safe: they can no longer throw into Twitch's own code and break login popups, clip sharing, or PiP.
- Recovery timers respect channel switches: post-ad and handoff timers no longer pause or seek the wrong stream after a fast channel change.
Source code released under MIT License
Version 9.2.1
Released Jun 1, 2026 - 360.36 KBWorks with firefox 142.0 and later[9.2.1] - 2026-06-02
Changed- The "Low quality fallback" option is now turned off by default.
Previously, it would automatically drop to 360p every time an ad played, which felt jarring for most people watching on good connections. The system now only switches to low quality as a last resort when needed. This gives a cleaner, higher-quality experience by default while still preventing black screens during ads.
Fixed- The "Low quality fallback" and "Ad Spoofing" toggles no longer randomly turn themselves back on after refreshing the page or switching channels.
- Updated the explanation text in the info popup for "Low quality fallback" so it accurately reflects the new behavior and default setting (translated in all 11 languages).
- Fixed ads sometimes leaking through during prerolls when Low Quality Fallback was disabled. The backup system now properly kicks in as a last resort and smoothly returns to high quality once the ad ends — with no flashing or black screens.
- Fixed a bug that could cause the video to briefly flash ads or get stuck in a recovery loop during ad breaks.
Source code released under MIT License
- The "Low quality fallback" option is now turned off by default.
Version 9.1.4
Released May 28, 2026 - 359.81 KBWorks with firefox 142.0 and later[9.1.4] - 2026-05-28
Fixed- Synced 6 accidental hooks.ts divergences from main: deviceId hex validation, proper gql.twitch.tv URL parser, missing worker function injections (_forceClearBackupCooldownsIfStale, _incrementPlaylistMediaSequence, _fetchWithTimeout), previousMediaKey cleanup with object-type guards
Source code released under MIT License
Version 9.1.3
Released May 28, 2026 - 359.29 KBWorks with firefox 142.0 and later[9.1.3] - 2026-05-28
Fixed- Consecutive ad stale stream: when a second ad arrives within the 8-second post-ad continuation window, the "buffer drain prevention" path and the 3-second backup search cooldown both served stale cached playlists from the previous ad cycle, causing the user to watch past stream content. Both paths now skip cached returns during post-ad re-entry so a fresh backup search runs immediately.
Source code released under MIT License
Version 9.1.2
Released May 27, 2026 - 419.73 KBWorks with firefox 142.0 and later[9.1.2] - 2026-05-27
Fixed- Low quality fallback toggle now correctly filters autoplay from backup search when disabled
- Reload trigger on fallback disable no longer blocked by unreachable pinned-type guard
Source code released under MIT License
Version 9.1.0
Released May 27, 2026 - 419.62 KBWorks with firefox 142.0 and later[9.1.0] - 2026-05-27
Changes- Real-Time UI controls: Settings toggles automatically grey out and disable when Ad Blocking is OFF, while preserving descriptive help popup interactions
- Auto Player Soft-Reload: Toggling Low Quality Fallback OFF during active backup playback now programmatically triggers a non-disruptive, soft reload of the Twitch player, instantly returning you to native source-tier quality
- Audited 11-Locale Translations: Perfected translation phrasing line-by-line in German (
de), Spanish (es), Portuguese (pt), Italian (it), Japanese (ja), Korean (ko), and Russian (ru). - Critical Fixes: Fixed the info modal Got It button click toggling settings off, and resolved the popup TDZ crash on declaration
- UI & Modal Layout Fixes: Relocated modals to prevent border-radius layout clipping, and fixed a load crash due to missing elements
Source code released under MIT License
Version 9.0.8
Released May 23, 2026 - 414.54 KBWorks with firefox 142.0 and later[9.0.8] - 2026-05-23
Fixed- Fix consecutive midroll backup contamination: BackupVariantUrls whitelist no longer cleared on ad-end reset, and cached encodings re-populate variant URLs prevents backup media playlists contaminating native snapshot across ad breaks
Source code released under MIT License
Version 9.0.7
Released May 21, 2026 - 414.12 KBWorks with firefox 142.0 and later[9.0.7] - 2026-05-21
Changed- Buffer monitor throttles to 900ms during steady-state playback — ~33% fewer ticks on healthy streams, stall detection latency unchanged in practice
- Cached React fiber root, container key, and player reference across transient skip ticks — eliminates fiber-tree re-walks after every ad break and idle interval
- HLS strip path: single combined regex for ad metadata, no redundant
text.split, single-pass output build, hoisted per-line scan
Source code released under MIT License
Version 9.0.6
Released May 21, 2026 - 411.25 KBWorks with firefox 142.0 and later[9.0.6] - 2026-05-21
Added- Worker-hook coexistence with TwitchNoSub run TTV-AB alongside TwitchNoSub simultaneously
Source code released under MIT License
Version 9.0.5
Released May 21, 2026 - 410.87 KBWorks with firefox 142.0 and later[9.0.5] - 2026-05-21
Fixed- First poll now awaits backup search synchronously instead of fire-and-forget + stopgap — eliminates all ad-flash leakage paths on prerolls. Player sees loading spinner until clean backup arrives, then plays clean stream directly.
Source code released under MIT License
Version 9.0.4
Released May 21, 2026 - 411.13 KBWorks with firefox 142.0 and later[9.0.4] - 2026-05-21
Fixed
-Stopgap during backup search now returns headers-only playlist on all requests — eliminates ad flash during prerollsSource code released under MIT License
Version 9.0.2
Released May 21, 2026 - 411.06 KBWorks with firefox 142.0 and laterSource code released under MIT License
Version 9.0.0
Released May 20, 2026 - 410.16 KBWorks with firefox 142.0 and later[9.0.0] - 2026-05-21
Fixed- Ad-blocking pipeline restored to stable working version zero decoder corruption
- Fixed persistent buffering and slideshow playback during ad breaks on certain streams (#18)
- Empty playlist fallback returns original content instead of header-only to prevent player stalls
- Backup search now checks all 5 player types (including autoplay 360p) for clean streams
- Eliminated brief black screen when first loading a channel backup search now starts immediately with stripped native as stopgap (~100% faster channel load)
Added- CSAI fast path for all-live ad breaks strips tracking URLs from native and returns directly with no stream switch
- Ad segment caching preserves playlist structure for stable playback
Source code released under MIT License
Version 8.8.4
Released May 20, 2026 - 319.81 KBWorks with firefox 142.0 and laterRollback to last stable version while investigating the 8.x.x regressionSource code released under MIT License
Version 8.8.3
Released May 19, 2026 - 415.38 KBWorks with firefox 142.0 and later[8.8.3] - 2026-05-20
Fixed- CSAI Fast Path sticky loop: properly reset the CSAI flag when exiting early due to empty or too short playlists, preventing player buffer freezes.
- Fallback backup stream searching: reset the fallback filler count whenever a stripped playlist contains valid segments, preventing infinite token re-fetch loop locks.
- Midroll ad leakage: require refreshed backup stream playlists to be clean and verified, successfully blocking late-entering midrolls on stream switches.
- Vitest configuration type safety: standardized the mock AdSegmentCache in setup files to Map matching the production environment.
Changed- Playlist parsing performance: optimized HLS segment cache validation by passing pre-split arrays directly to avoid redundant split overhead on large VOD files.
Source code released under MIT License
Version 8.8.1
Released May 19, 2026 - 414.96 KBWorks with firefox 142.0 and laterv8.8.1 — 2026-05-20
Fixed- Stripped playlists now pass through even when identical to source — prevents false rejections
- Live-segment lockout cleared after empty playlist to allow recovery on next poll
- Fallback backup streams no longer mark the stream as using backup
Source code released under MIT License
Version 8.8.0
Released May 19, 2026 - 415.01 KBWorks with firefox 142.0 and later[8.8.0] - 2026-05-19
Fixed- Ad leak during backup search cached clean playlists served with incremented media sequences while worker searches for backup
- Worker hangs 3500ms fetch timeouts on all Twitch Usher, GQL, and stream requests
- Duplicate backup searches guard prevents redundant searches when multiple m3u8 requests arrive simultaneously
- Empty segments now created in-memory (Blob URL) instead of network fetch, eliminating round-trip delay during ad replacement
- Stripped ad segments insert alternating DISCONTINUITY markers to help the video decoder handle segment gaps
- Silent filler format changed from 2 long segments to 6 short 1-second segments with DISCONTINUITY for smoother recovery
- Backup search retry loop removed, fresh-token fetch cap added to prevent excessive API calls
Changed- Ad spoofing now enabled by default — sends fake ad-watch beacons to reduce anti-adblock fingerprinting
- Build process auto-generates .xpi and source .zip during packaging
- Native recovery probe cooldown increased (250→500ms min, 750→1500ms default)
- Fast-fallback promotion policy default fixed, autoplay player type properly flagged for downstream recovery
- Low-latency recovery min clean playlists reduced (12→6) for faster post-ad resume
- Verbose token error payloads removed from backup search logs
Source code released under MIT License
Version 8.7.1
Released May 19, 2026 - 334.5 KBWorks with firefox 142.0 and later[8.7.1] - 2026-05-19
Fixed
Autoplay (360p) backup — added as last-resort player type when all Source-tier types are ad-marked
Fallback filler cycle cap — prevents Error #2000 crash from indefinite silent filler loops
Force-strip CSAI segments — fallback path no longer leaks ad-marked content
Silent video filler — empty playlists serve valid MP4 segments instead of bare headers
Stripped playlist padding — prevents buffer underrun while backup loadsSource code released under MIT License
Version 8.6.9
Released May 19, 2026 - 321.22 KBWorks with firefox 142.0 and laterAutomatic rollback based on version [8.0.0].Source code released under MIT License
Version 8.6.8
Released May 19, 2026 - 334.29 KBWorks with firefox 142.0 and later[8.6.8] - 2026-05-19
Fixed
Empty playlist after ad stripping now serves minimal HLS headers instead of ad-marked content
Misleading "Token relay error" log renamed to "Spoof relay error"
GQL ad spoofing timeout: 1500ms → 5000msSource code released under MIT License