1
0
mirror of https://github.com/pixeltris/TwitchAdSolutions.git synced 2024-11-22 10:22:51 +01:00
TwitchAdSolutions/README.md
2020-12-31 03:27:21 +00:00

7.5 KiB

TwitchAdSolutions

This repo aims to provide multiple solutions for blocking Twitch ads.

Recommendations

M3U8 proxies (or full proxies) are currently the most reliable way of avoiding ads (assuming you trust the third party). More proxy hosts would be ideal (see #8).

  • Twitch Video Ad Blocker - chrome / firefox (proxied url includes your user id / a unique id used for gql requests)
  • proxy-m3u8 - see below (currently uses the proxy server used in Twitch Video Ad Blocker - author asks for donations to cover costs (see links above))

If you don't trust third parties then:

  • dyn-skip / dyn-skip-midroll-alt are decent.
  • ttv-tools (firefox) has nice features.
  • Alternate Player for Twitch.tv consistently updates with new ad-blocking methods.

Current solutions

These solutions generally aren't compatible with other Twitch ad blockers. e.g. ttv-ublock will break dyn-skip (and others).

  • dyn-skip (ublock / userscript)
    • Notifies Twitch that ads were watched before requesting the main live stream.
    • Falls back to mute-black if this fails (use an alternative solution if it always fails for you, as it adds additional load).
    • Midroll ads are muted/blacked out. See dyn-skip-midroll-alt for an alternative solution.
  • dyn-skip-midroll-alt (ublock / userscript)
    • A mix of dyn-skip / dyn. During midrolls this plays a low resolution stream instead of nothing - might be a little glitchy but should always play something.
    • If you see a Waiting for ads to finish banner without midroll in the banner text, you should be able to just refresh the page to get a regular stream.
  • dyn-skip-midroll (ublock / userscript) (not recommended)
    • The same as dyn-skip, but attempts to fully skip midroll ads (I'm not sure if this has ever actually worked - infinite reload).
    • This requires the script to work perfectly, otherwise the player will hit a reload loop.
  • dyn-video-swap (ublock / userscript)
    • Ads are replaced by a low resolution stream for the duration of the ad.
    • Similar to dyn, but skips closer to 20 seconds when switching to the live stream.
    • You might see tiny bits of the ad.
    • Audio controls wont work whilst the ad is playing.
  • dyn (ublock / userscript)
    • Ad segments are replaced by low resolution stream segments (on a m3u8 level).
    • Skips 2-3 seconds when switching to the live stream.
    • Stuttering and looping of segments often occur (during the ad segments).
    • NOTE: Removing segments doesn't notify Twitch that ads were watched (aka more served ads).
  • low-res (ublock / userscript)
    • No ads.
    • The stream is 480p for the duration of the stream.
  • mute-black (ublock / userscript)
    • Ads are muted / blacked out for the duration of the ad.
    • You might see tiny bits of the ad.
  • proxy-m3u8 (ublock / userscript)
    • Uses a proxy server to fetch an ad-free stream.
    • Currently only the initial m3u8 is proxied, so there shouldn't be any additional latency.
    • Assumes the proxy server acts in good faith and maintains a good uptime.

Applying a solution (uBlock Origin)

uBlock Origin solutions are single files, suffixed by ublock-origin.js e.g. low-res-ublock-origin.js.

  • Navigate to the uBlock Origin Dashboard (the extension options)
  • Under the My filters tab add twitch.tv##+js(twitch-videoad).
  • Under the Settings tab, enable I am an advanced user, then click the cog that appears. Modify the value of userResourcesLocation from unset to the full url of the solution you wish to use (if a url is already in use, add a space after the existing url). e.g. userResourcesLocation https://raw.githubusercontent.com/pixeltris/TwitchAdSolutions/master/dyn/dyn-ublock-origin.js

Applying a solution (userscript)

Tampermonkey / Greasemonkey can be used on the files suffixed by user.js e.g. low-res.user.js

  • Viewing one of the userscript files should prompt the given script to be added

Other solutions / projects


NOTE/TODO

NOTE: Many of these solutions could do with improvements.
TODO: Test midroll ads.
TODO: More testing in general.