User manual
Slipstream Live watches how much video your browser has loaded ahead and nudges the playback speed so you stay close to the live edge — without the video stopping to buffer. This manual covers installation, every setting, and what to do when something looks wrong.
1 Introduction
A live stream always plays a few seconds behind what the streamer is doing right now. That gap grows every time your connection hiccups, and it never shrinks on its own.
Slipstream Live measures how much video your browser has loaded ahead — the buffer — about 50 times per second, and nudges the playback speed up or down to close the gap without letting the video stall.
| Situation | What Slipstream Live does |
|---|---|
| You're behind, and plenty of video is loaded ahead | Speeds up slightly (1.25x) until you catch up |
| Loaded video is nearly gone | Drops to 0.15x and lowers the volume to avoid a freeze |
| Everything is fine | Nothing — plain 1.00x |
Once installed, no operation is required while you watch.
2 System requirements
| Manifest version | V3 |
| Chrome / Edge / Brave and other Chromium browsers | v148 or later |
| Mozilla Firefox | v140.0 or later |
| Firefox for Android | v142.0 or later |
| Supported sites | YouTube (including m.youtube.com and youtube-nocookie.com), Twitch (including player.twitch.tv), TwitCasting, TikTok LIVE (the LIVE pages on www.tiktok.com), DAZN (www.dazn.com, only once you allow it in the popup), Kick (kick.com and its embeddable player player.kick.com, likewise only once you allow it) |
| UI languages | English, 日本語, 한국어, Deutsch, Español, Français, Português (BR), Português (PT), Polski, Čeština, Slovenčina, Русский, Українська, Bahasa Indonesia, Bahasa Melayu, हिन्दी, العربية, 简体中文, 繁體中文 — follows your browser's language setting |
3 Installation
3.1 Chrome / Edge / Brave / other Chromium browsers
Install from the Chrome Web Store.
After installing, open the puzzle-piece menu in the toolbar and pin Slipstream Live so its icon is always visible.
3.2 Firefox
Install from Firefox Add-ons.
3.3 Installing from source (developers / manual installation)
Chromium browsers
- Download the repository as a ZIP and extract it (or
git cloneit). - Enter
chrome://extensionsin the address bar. - Turn on Developer mode with the toggle in the top-right corner.
- Click Load unpacked and select the extracted folder — the one containing
manifest.json.
Firefox — temporary install (disappears when Firefox closes)
- Open
about:debugging#/runtime/this-firefox. - Click Load Temporary Add-on….
- Select the
manifest.jsonfile inside the extracted folder.
Firefox — permanent install (Developer Edition / Nightly only)
- ZIP the contents of the folder.
- In
about:config, setxpinstall.signatures.requiredtofalse. - In
about:addons, click the gear icon → Install Add-on From File… → choose your ZIP.
3.4 Verifying the installation
- Open a live stream on YouTube, Twitch, TwitCasting, TikTok LIVE, DAZN, or Kick. A VOD or clip will not work. On DAZN and Kick, press Enable on this site in the popup first (see “Using DAZN and Kick” in section 6).
- Click the Slipstream Live toolbar icon.
- In the All sites panel, turn on Show playback rate.
- A small
1.00xappears in the player's control bar, changing colour as Slipstream Live works.
4 Parts of the settings screen
Click the toolbar icon to open the settings popup. The same screen can also be opened as a full tab from your browser's extensions management page (Options).
| No. | Part | Description |
|---|---|---|
| 1 | Icon and title | Clicking the icon opens the project page. The version number is shown next to the name. |
| 2 | Change playback speed | The master switch. Turning it off stops all control and all badges. Marked All sites. |
| 3 | Site tabs | YouTube / Twitch / TwitCasting / TikTok / DAZN / Kick. Each site stores its own values, and the tab for the site you are currently on is selected automatically. On any other site, the tab you last had selected is shown. |
| 4 | Site settings panel | Speed-up settings and maximum-slowdown settings for the selected site. |
| 5 | ? buttons | Opens a plain-language explanation of that row. |
| 6 | Reset · (site name) | Restores only the currently selected site's settings to their defaults. |
| 7 | All sites panel | The three on-screen badge switches. |
| 8 | Reset · All sites | Restores the all-sites settings to their defaults. |
- Changes take effect immediately. There is no Save button.
- Rows that are not currently in use are greyed out. For example, Speed-up start buffer threshold (sec) and Speed-up stop buffer threshold (sec) are disabled while Auto-adjust buffer threshold is set to anything other than Off.
- On the Twitch tab only, an explanatory note about that site's larger default threshold appears at the bottom of the panel, along with a Recover from player errors switch that has no equivalent on the other sites.
- On the Kick tab only, a note explaining why that site's defaults differ from the others appears at the bottom of the panel, along with a Recover from endless loading switch.
- On the TikTok tab only, an Allow speed changes in Chrome switch appears at the bottom of the panel (see “TikTok LIVE on Chrome” in section 6).
- On the DAZN and Kick tabs, until you have allowed access to the site, an Enable on this site button appears at the top of the panel (Enable on DAZN or Enable on Kick when the popup is opened on any other page; see “Using DAZN and Kick” in section 6).
5 Reading the on-screen badges
All three badges are off by default. Turn them on in the All sites panel. They appear in the player's control bar; if that bar cannot be found, they fall back to a small dark strip in the top-left corner of the player.
| Badge | Example | Meaning |
|---|---|---|
| Playback rate | 1.25x | The actual current speed. The text colour shows which mode is active. |
| Latency | 1.50s | How far behind the live edge you are. While you are watching behind the live edge (DVR), the number is replaced by (DVR), because a latency figure has no meaning there. TikTok doesn't report how far behind the broadcaster you are, so there it shows how far playback trails the newest video received (usually the same number as buffer health). On DAZN it usually shows how far playback trails real time; on channels that don't time-stamp their video with the wall-clock time, it shows the same measure as TikTok. On Kick it shows how far playback trails real time, using the time stamp Kick's player attaches to every frame (the moment it was broadcast). Both the DAZN and Kick figures assume your computer's clock is right. |
| Buffer health | 2.50s | Seconds of video loaded ahead of you. A +9s suffix means more video is loaded beyond a gap. |
(DVR). Here the buffer holds 61.99 s, plus a further 9 s beyond a gap.6 The three control modes
| Mode | Priority | Badge colour | Speed | When it applies |
|---|---|---|---|---|
| Floor | Highest | Blue #83c1ff | 0.15x (fixed) | The buffer is about to run out. Emergency brake, plus volume ducking. |
| Speedup | Low | Red #ff8983 | 1.25x (default) | The buffer is comfortably deep and speeding up is actually gaining ground. Catches up to the live edge. |
| Normal | — | White #eee | 1.00x | Nothing to do. |
Higher-priority modes always win. The 0.15x floor speed is deliberately not configurable — it is a safety net, not a preference.
Each threshold carries hysteresis in the direction of the current mode, so speed and volume don't chatter when the buffer sits exactly on a boundary. The width is 0.2 s at every level. On top of that, starting a speed-up is rate-limited to once every 2 seconds. Nothing else is delayed — not leaving a speed-up, not entering Floor, not leaving it. Only the direction that increases intervention is treated cautiously; backing off and falling back to safety always take effect at once. Widening a threshold alone can't stop the chatter, because the value being compared against it moves as well.
When speeding up stops helping, it stops speeding up. Live video is only ever produced in real time, so once you reach the live edge there is no gap left to close. Holding a higher rate there just makes playback outrun each arriving segment and stall briefly, over and over, which lowers the effective speed rather than raising it. Slipstream Live compares the seconds the speed-up should have gained against the seconds it actually gained, and stands down when the latter falls below half the former. If you drift behind again, it goes straight back to catching up.
Recovering from a dead player
On Twitch the player occasionally stops outright with a numbered error — #3000 is the common one. The usual cure is a page reload, which costs you the chat and your place in it. Slipstream Live watches for that error and presses Twitch's own reload button instead, so playback comes back in about a second with the page untouched. It waits a moment first in case the player rights itself, tries a few times at widening intervals, and then stops rather than hammering a stream that has simply ended. This is on by default and can be switched off on the Twitch tab.
On Kick, playback sometimes stays on the loading spinner and never resumes, typically after video data has stopped arriving for a while. No error is raised, so Kick's own reconnect logic never kicks in either, and the usual cure is again a page reload. When the position hasn't moved for about 6 seconds while loading, Slipstream Live has Kick's player reload the stream — the same steps Kick takes itself when recovering from an error. If the player is stuck on a seek that never completed, it first seeks again to the current position to finish it. The page stays as it is, so the picture comes back within a few seconds. It tries a few times at widening intervals and then stops, and never acts while you've paused, during ads, or on VODs. If the playback token has expired, Kick's own reconnect logic fetches a fresh one and loads it (Slipstream Live never makes a request itself). This is on by default and can be switched off with Recover from endless loading on the Kick tab.
TikTok LIVE on Chrome
TikTok picks one of two playback methods when the page opens. On Chrome 122 or later with 6 or more CPU cores (Edge excluded), it decodes the video itself and only shows the result in the <video> element as a MediaStream. That always plays at 1.0x by definition, so its speed cannot be changed by any means. Everywhere else — Firefox, Edge, Chrome with fewer cores — TikTok uses ordinary playback whose speed can be changed just as on YouTube.
So, before any of TikTok's own scripts run, Slipstream Live has TikTok pages see at most 4 CPU cores, and TikTok picks the same standard method it uses on Firefox and Edge. This only happens on TikTok's own pages in Chromium browsers and doesn't reach other sites. It is on by default; switch Allow speed changes in Chrome off on the TikTok tab to let TikTok choose on its own. The choice is made when the page loads, so reload the page after changing the setting.
Using DAZN and Kick
DAZN and Kick are the two sites that don't work straight after installing. Open a DAZN (or Kick) page, click the toolbar icon, and press Enable on this site at the top of the DAZN (or Kick) tab. Your browser asks for access to www.dazn.com — for Kick, to kick.com and player.kick.com (the player other sites embed) — and once you allow it, Slipstream Live starts working right away, including on pages that are already open (reload the page if it doesn't). You can withdraw the access at any time from your browser's extension settings.
These sites work this way so that adding a site never asks every user to approve new permissions: Chrome disables the extension until they do, and Firefox doesn't grant host permissions that an update adds.
DAZN's player only reads about 12 seconds ahead, even when the newest point of the stream is much further on. So while Slipstream Live speeds up, buffer health barely drops until it reaches the live edge — only the latency shrinks.
Kick's low-latency streams normally keep only 1.3–2.5 seconds of video loaded. Kick often stops delivering video for around 10 seconds; once it resumes, playback carries on about that far behind, and Kick's player doesn't catch up by itself. Slipstream Live uses the video that piled up to get back to the live edge — in testing, from about 12 seconds behind to about 1.6 seconds in roughly 40 seconds at 1.25x. Because the gaps are so frequent, Kick's defaults keep about 5 seconds of video loaded and bridge the last 2 seconds at 0.15x (see Why are Kick's defaults different? in chapter 7). If playback still stalls on the loading spinner, the stream is reloaded automatically (see Recovering from a dead player). Kick only builds its control bar while you move the mouse over the player and removes it a few seconds later, so the badges come and go with it.
What Slipstream Live leaves alone
- Archived videos (VODs), clips, and ad breaks are never touched. Only live playback is controlled.
- YouTube premieres are skipped by default. A premiere plays a pre-recorded video on a live schedule, and while one is running it is indistinguishable from a live stream — but the point of a premiere is that everyone watches the same moment together, so catching up only puts you ahead of the chat. Turn Control premieres on at the bottom of the YouTube tab to have them treated like any other live stream.
- TwitCasting low-latency streams are out of scope. They arrive over WebRTC, which has no read-ahead buffer to measure and ignores playback-rate changes entirely. Such streams are already close to real time, so there is nothing to catch up on.
- On TikTok, only LIVE pages (
/liveand/@name/live) are watched. Videos in the feed are never touched. - On Kick, VODs (including the VOD of a stream that's still live) and clips are left alone, and so are the ad breaks Kick inserts into a live stream — the player announces them, and control resumes when they end.
- On YouTube and TwitCasting, if you choose a speed other than 1.00x in the player's own menu, Slipstream Live hands control back to you and stops adjusting. Set the speed back to normal to resume automatic control. Twitch, TikTok LIVE, DAZN, and Kick have no such menu, so Slipstream Live stays in charge there — and on Twitch and Kick, whose players come from the same family, it also suppresses the player's own built-in catch-up so the two don't fight. On DAZN's low-latency streams, where the player tries to speed up and slow down by itself, Slipstream Live's decisions take precedence in the same way.
7 Settings reference
7.1 Site settings (stored separately per site)
| Setting | Range / step | YouTube | Twitch | TwitCasting | TikTok | DAZN | Kick | Description |
|---|---|---|---|---|---|---|---|---|
| Speed up when delayed | ON / OFF | ON | ON | ON | ON | ON | ON | Master switch for catching up. |
| Speed-up playback rate | 1.05x–4.00x / 0.05 | 1.25x | 1.25x | 1.25x | 1.25x | 1.25x | 1.25x | How fast to catch up. Higher catches up sooner but consumes buffer faster. |
| Auto-adjust buffer threshold | Off / Stable / Standard / Aggressive | Standard | Standard | Standard | Standard | Standard | Off | Lets Slipstream Live decide when speeding up is safe. Recommended. Kick alone defaults to Off (see Why are Kick's defaults different? below). |
| Speed-up start buffer threshold (sec) | 0.1–100.0 / 0.1 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 5.5 | Used only when Auto-adjust is Off. Starts speeding up once this much video is loaded ahead. With maximum slowdown on, speed-up won't start until buffer health is more than 0.4 s above the maximum slowdown threshold (so it can't bounce between speed-up and 0.15x). |
| Speed-up stop buffer threshold (sec) | 0.1–100.0 / 0.1 | 9.0 | 9.0 | 9.0 | 9.0 | 9.0 | 5.0 | Used only when Auto-adjust is Off. While speeding up, returns to normal speed once buffer health drops below this. The gap to the start threshold is the hysteresis; setting it above the start threshold raises the start threshold to match. |
| Maximum slowdown on buffer depletion | ON / OFF | ON | ON | ON | ON | ON | ON | Master switch for the 0.15x emergency brake. |
| Maximum slowdown threshold (sec) | 0.0–10.0 / 0.1 | 0.80 | 2.00 (FF 0.50) | 0.30 | 0.50 | 0.80 | 2.00 | Drops to 0.15x while buffer health stays below this. |
| Lower volume during maximum slowdown | ON / OFF | ON | ON | ON | ON | ON | ON | Ducks the audio while at 0.15x. |
| Volume during maximum slowdown (%) | 0–100 / 5 | 30 | 30 | 30 | 30 | 30 | 30 | A percentage of your current volume. 100 = no change, 0 = mute. |
| Control premieres | ON / OFF | OFF | — | — | — | — | — | Whether premieres count as live streams. Left off, they are not touched at all. The other sites have no equivalent, so this row only appears on the YouTube tab. |
| Recover from player errors | ON / OFF | — | ON | — | — | — | — | Presses Twitch's own reload button when the player stops with a numbered error such as #3000, so playback returns without a page reload. Twitch only, so this row appears on the Twitch tab alone. |
| Recover from endless loading | ON / OFF | — | — | — | — | — | ON | When the position hasn't moved for about 6 seconds on the loading spinner, has Kick's player reload the stream, so playback returns without a page reload (see Recovering from a dead player in chapter 6). Kick only, so this row appears on the Kick tab alone. |
| Allow speed changes in Chrome | ON / OFF | — | — | — | ON | — | — | Has TikTok pages see at most 4 CPU cores, so Chrome plays TikTok LIVE through the standard method whose speed can be changed (see “TikTok LIVE on Chrome” in section 6). Takes effect after a page reload, and does nothing on Firefox. TikTok only, so this row appears on the TikTok tab alone. |
FF = the default used on Firefox, which reports buffer levels differently. Twitch is the only site where it differs.
Why is Twitch's threshold so much higher? Twitch sometimes stops delivering video for around 10 seconds at a time. On Chrome that ends in error #3000 and needs a reload, so the default is set higher. Firefox recovers on its own, so it keeps the normal default.
And TikTok's 0.50? TikTok LIVE arrives in small pieces every 0.05–0.2 seconds, so its buffer hardly saw-tooths at all. 0.50 sits between TwitCasting's 0.30 and YouTube's 0.80.
And DAZN's 0.80? DAZN, like YouTube, streams MPEG-DASH in chunks (segments) a few seconds long, and its buffer saw-tooths in much the same way, so it shares YouTube's value.
Why are Kick's defaults different? Kick often stops delivering video for around 10 seconds, and once the loading spinner appears, playback frequently never resumes. Each gap throws off the statistics auto-adjust relies on, so Kick alone has Auto-adjust buffer threshold set to Off and uses values chosen so that a gap doesn't stop playback (the same on Chrome and Firefox). Speed-up starts at 5.5 seconds of buffer and stops at 5.0, so about 5 seconds of video stays loaded even after catching up. The maximum slowdown threshold is 2.00, as on Twitch: the last 2 seconds last about 13 seconds at 0.15x. Spending 3 of those 5 seconds at 1.00x and the last 2 at 0.15x rides out about 16 seconds without data. On low-latency streams the buffer normally sits at only 1.3–2.5 seconds, so 0.15x kicks in more often at first, and the buffer builds up as it does. For the times playback stalls anyway, Recover from endless loading is on by default. If you'd rather keep latency lower, set auto-adjust back to Standard and the maximum slowdown threshold back to 0.80 (the defaults up to 1.8.x).
7.2 The four auto-adjust levels
| Level | Trough window | Safety factor | Added margin | Hysteresis | Character |
|---|---|---|---|---|---|
| Off | — | — | — | start − stop | No estimation; uses the Speed-up start/stop buffer thresholds as-is. |
| Stable | 60 s | 10 | 1.0 s | 0.2 s | Longest window, largest factor. Speeds up only once the troughs have stayed high for a while, so it rarely drops to 0.15x — at the cost of speeding up far less often. A good fit for music. |
| Standard | 30 s | 5 | 0.3 s | 0.2 s | The balanced middle ground. The default, and enough for most connections. |
| Aggressive | 5 s | 3 | 0.1 s | 0.2 s | Short window; reacts quickly to recent headroom and closes the gap harder, but reaches maximum slowdown more often. |
Why the window and the factor move together. A longer window makes a consistent trough history harder to accumulate, and a larger safety factor makes whatever scatter remains count for more. Changing only one of them would blur the difference between the levels.
Why Stable suits music. On a concert, DJ set, or any performance stream, a change of playback rate is something you hear. Your browser holds the pitch steady, but the tempo still shifts — and a drop to 0.15x wrecks the audio outright. Stable cuts down how often the rate moves at all and makes the emergency brake far less likely to fire. You stay a little further behind the live edge in exchange, which rarely matters when you are listening rather than chatting.
What the added margin is added to. It sits on top of your Maximum slowdown threshold. With that switch Off, the automatic levels protect one segment's worth of buffer instead (0.5–5 seconds, as reported by the site), because there is no 0.15x brake left to catch a trough that reaches zero.
Damping. On the automatic levels, hysteresis raises the entry line by 0.2 s and a mode change waits 2 seconds before the next speed-up may begin. With auto-adjust Off neither applies: the speed-up starts the instant buffer health reaches your number and stops the instant it drops below. The 0.15x brake is a separate test and keeps its own hysteresis either way.
7.3 All-sites settings
| Setting | Default | Description |
|---|---|---|
| Change playback speed | ON | Master switch. Off = Slipstream Live does nothing at all. |
| Show playback rate | OFF | Shows the speed badge in the player. |
| Show latency | OFF | Shows how far behind the live edge you are. |
| Show buffer health | OFF | Shows how many seconds are loaded ahead. |
8 How it works
Every 20 milliseconds (once a second while paused) Slipstream Live measures buffer health — how many seconds of video are loaded and ready to play — and picks one of the three modes from that number.
The hard part is knowing when speeding up is safe. Buffer health is never steady: video arrives in chunks ("segments"), so the buffer jumps when a chunk lands and then drains until the next one. Plotted over time it looks like a sawtooth. A single reading taken at a peak would suggest plenty of room, leading to a speed-up that hits the very next trough with nothing left.
So instead of trusting one reading, Slipstream Live estimates statistically where the troughs are, over a window that adapts to each stream, and only allows a speed-up while that estimated headroom stays above the buffer level you have asked it to protect — your maximum slowdown threshold plus the level's added margin, or one segment's worth of buffer if maximum slowdown is switched off. Because the safety factor is large, headroom only opens up when the troughs are consistent — an unstable connection naturally suppresses speed-ups, and while there isn't enough data yet, Slipstream Live simply does nothing.
One shortcut sits above that test. Once buffer health passes 20 seconds — or your maximum slowdown threshold plus 10 seconds, whichever is higher — the trough estimate is no longer what limits the decision, so Slipstream Live speeds up without waiting for it, and returns to the statistical test below 15 seconds. This is what keeps it responsive right after you seek, when the buffer refills so quickly that the statistics are temporarily unusable. The shortcut applies to the automatic levels only; with auto-adjust Off, the speed-up simply begins the moment buffer health reaches your threshold and ends the moment it drops below.
All of that answers "is there enough buffer to speed up safely?" — a different question from "is there any point in speeding up?" Live video is produced in real time, so the buffer refills at 1.0x no matter how fast you play it. Once the cushion is spent you are at the live edge, and holding a higher rate there makes playback outrun each arriving segment and stall for a fraction of a second, over and over. Buffer health can't see this, because every stall lets the buffer refill. So Slipstream Live compares the gain the speed-up should have produced against the gain the playhead actually made, over a 12-second window, and stands down when the latter falls below half the former. It re-arms once latency grows past a threshold — one that scales with the site's segment length, so it means the same thing on sites whose baseline latency differs by more than tenfold — or after 30 seconds.
Badges are redrawn at most 10 times per second and all statistics are smoothed, so the speed does not visibly oscillate. When there is nothing to control, the loop drops to a 1-second watch mode instead of stopping, because ads play through the same video element and end without firing any media event. It also runs once immediately when the tab becomes visible again.
The full derivation — including how the trough is located without knowing the segment length — is in the project README.
9 Troubleshooting
It never speeds up.
Auto-adjust is deliberately cautious: on an unstable connection it decides that speeding up isn't safe. Move Auto-adjust buffer threshold one step toward Aggressive first. If that still isn't enough, set it to Off and configure Speed-up start buffer threshold (sec) manually — start around 15–20 seconds and work down. The manual mode speeds up the instant buffer health reaches the start threshold and stops as soon as it drops below Speed-up stop buffer threshold (sec), with no added margin and no waiting period; if the rate switches back and forth more than you'd like, lower the stop threshold to widen the gap between the two, or switch auto-adjust back on.
It sits at 1.00x right after seeking, even with plenty of video buffered.
Make sure you are on version 1.1.0 or later. From that version, buffer health above 20 seconds allows a speed-up on its own, without waiting for the trough statistics — which the burst of fast loading that follows a seek would otherwise keep unusable for a while.
The badge says 1.25x but nothing feels faster, and the picture hitches every few seconds.
You've reached the live edge. Live video only arrives in real time, so beyond that point a higher rate adds stalls without adding speed. Version 1.1.2 and later detects this and stands down automatically — check your version first. If it persists, look at gain= in the debug log; FUTILE means the detection is working.
It drops to 0.15x too often.
Move Auto-adjust buffer threshold one step toward Stable: the longer window and larger safety factor mean a speed-up is only allowed once the troughs have proved themselves. Otherwise raise Speed-up stop buffer threshold (sec), or lower Speed-up playback rate so the buffer drains more slowly. Lowering Maximum slowdown threshold (sec) delays the brake, but increases the chance of an actual freeze.
Nothing happens at all.
Check that Change playback speed is ON, that you are on a live stream rather than a VOD or clip, and that you haven't selected a manual playback speed in the player's own menu. On a YouTube premiere, check Control premieres at the bottom of the YouTube tab as well — it is off by default, so premieres are skipped until you turn it on. Right after the extension is updated or disabled, tabs that were already open stop being controlled; reload the page to pick up the new version.
Nothing happens on TwitCasting.
Check whether the stream is playing in low-latency mode. Low-latency streams arrive over WebRTC and are outside Slipstream Live's scope — turn low latency off in the player settings if you want Slipstream Live to manage the stream.
Nothing happens on TikTok.
Make sure you're on a LIVE page (tiktok.com/live or tiktok.com/@name/live) — videos in the feed are left alone. On Chrome, check that Allow speed changes in Chrome is ON on the TikTok tab, then reload the page: TikTok picks its playback method when the page loads, so switching the setting on doesn't affect a page that's already open. With the debug log on, a line starting with tiktok: the WebCodecs player is in use means the page is still on the method that can't be sped up.
Nothing happens on DAZN.
If Enable on this site (or Enable on DAZN) is showing at the top of the DAZN tab, access to the site hasn't been granted yet — press it and allow access. If it still does nothing afterwards, reload the page. Replays, highlights and other videos that aren't live are left alone.
Nothing happens on Kick.
Same as DAZN: if Enable on this site (or Enable on Kick) is showing at the top of the Kick tab, press it and allow access, then reload the page if needed. VODs and clips are left alone, and so are ad breaks. Kick only builds its control bar while you move the mouse over the player, so the badges come and go with it.
Kick stays on the loading spinner.
Check that Recover from endless loading is ON in the Kick tab. When it is, the stream is reloaded once the position hasn't moved for about 6 seconds. If a few attempts don't bring it back, the stream itself or your connection has most likely stopped, so reload the page. To hit the spinner less often in the first place, raise Maximum slowdown threshold (sec) (default 2.00) and Speed-up stop buffer threshold (sec) (default 5.0): more video stays loaded for the next gap, at the cost of more latency.
The badges don't appear.
They are off by default — turn them on in the All sites panel. If a site's control bar cannot be found, the badges fall back to a small dark strip in the top-left corner of the player.
Twitch video freezes or shows an error (unrelated to Slipstream Live).
Slipstream Live only adjusts playback speed, so a complete stop or an "Error #XXXX" code is almost always a Twitch or browser issue. Since 1.3.0 it does try to clear those errors for you, so first check that Recover from player errors is ON in the Twitch tab. If the error keeps coming back, try these in order:
- Check status.twitch.com for an ongoing outage.
- Open the same stream in an Incognito window (
Ctrl+Shift+N,Cmd+Shift+Non Mac). If that fixes it, the cause is an extension or cached data. - Turn off all extensions, especially ad blockers — Twitch embeds ads directly into the video stream, so ad blockers are one of the most common causes of playback errors.
- Update Chrome via
chrome://settings/help. Official support covers only the two most recent versions. - Clear cache and cookies with
Ctrl+Shift+Delete(Cmd+Shift+Deleteon Mac).
If the screen still freezes or goes black, toggle Hardware acceleration in chrome://settings/system and restart the browser. Switch it back if it doesn't help — this is a diagnostic step, not a setting to leave changed.
Twitch's own resources are worth a look too: Playback Issue Troubleshooting, Supported Browsers, How to File a Video Playback Issue.
10 Collecting a debug log
If you need to report a problem, a debug log makes it far easier to diagnose.
- Open the stream page and press
F12to open the browser console — the page console, not the extension's own console. - Run the line below.
- Wait about 30 seconds while the problem is happening, then copy the output.
Once per second you will see the current mode, the real playback rate, buffer health, the short-term and trough statistics, the room calculation, the shortcut level ample, the accumulated excess consumption drift, the stationarity verdict calm, and the speed-up effectiveness gain.
- Buffer figures shown as
----mean the value is unavailable, usually because the browser reports an empty buffer. - A persistent
calm=NOmeans the stationarity gate is rejecting samples, soroomstays----as well. A speed-up can still happen while buffer health is aboveample. lat=is the latency the site reports.sdis the standard deviation over a 5-second window andjumpis the largest change seen in the last second. In practicesdstays at or below 0.11 andjumpbelow 0.2 while latency is steady. Ajumpthat stays well above that means the latency reading is noisy enough to re-arm speed-ups that were correctly stood down.gain=reads "seconds actually gained / seconds the speed-up asked for". When the right-hand figure passes 1 second and the left-hand one is under half of it,FUTILEis appended and speed-ups are being skipped.timer stoppedmeans the extension is switched off. During playback it should never appear.
11 Privacy
Slipstream Live makes no network requests whatsoever. It requests three permissions:
storage— to save your settings locally on your device.activeTab— to see which supported site the popup was opened on, so it can select the right tab.scripting— to register DAZN's or Kick's scripts once you allow that site (nothing is registered for sites you haven't allowed).
Access to DAZN (https://www.dazn.com/*) and to Kick (https://kick.com/* and https://player.kick.com/*) is an optional permission, granted only when you press Enable on this site on that site's tab. You can revoke it at any time from your browser's extension settings.
No analytics, no telemetry, no identifiers, no ads. Full details are in the privacy policy.
12 Support
| Purpose | Where |
|---|---|
| Bug reports | GitHub Issues — use the bug report template |
| Questions, feature requests, site support requests, translation feedback | GitHub Discussions |
| Security vulnerabilities | GitHub Security Advisories — report privately |
Please report vulnerabilities privately. A public issue is effectively a published exploit.
When reporting a bug, please include: the site, browser and version, extension version, OS, what happened, steps to reproduce, any settings changed from the defaults, and a debug log if possible.
13 License
Dual-licensed under the Apache License 2.0 or the MIT License, at your option.