1
0
mirror of https://github.com/pixeltris/TwitchAdSolutions.git synced 2024-11-22 18:32:46 +01:00
Go to file
pixeltris 2424ab3cc1 Fix buffering issue after ad segments
- Also switch to an MutationObserver model for mute-black / vide-swap #16
2021-02-03 14:15:11 +00:00
base Fix buffering issue after ad segments 2021-02-03 14:15:11 +00:00
dyn Add urls to build_scripts for versioning userscript 2021-01-15 04:27:27 +00:00
dyn-skip Refactor / update "notify ad watched" method 2021-01-27 11:31:03 +00:00
dyn-skip-midroll Add urls to build_scripts for versioning userscript 2021-01-15 04:27:27 +00:00
dyn-skip-midroll-alt Add urls to build_scripts for versioning userscript 2021-01-15 04:27:27 +00:00
dyn-video-swap Add urls to build_scripts for versioning userscript 2021-01-15 04:27:27 +00:00
low-res Update downloadURL for low-res solution 2021-01-06 15:14:42 -05:00
mute-black Fix buffering issue after ad segments 2021-02-03 14:15:11 +00:00
notify-reload Fix buffering issue after ad segments 2021-02-03 14:15:11 +00:00
notify-strip Fix buffering issue after ad segments 2021-02-03 14:15:11 +00:00
notify-strip-reload Fix buffering issue after ad segments 2021-02-03 14:15:11 +00:00
proxy-m3u8 Fix buffering issue after ad segments 2021-02-03 14:15:11 +00:00
strip Fix buffering issue after ad segments 2021-02-03 14:15:11 +00:00
video-swap Fix buffering issue after ad segments 2021-02-03 14:15:11 +00:00
other-solutions.md Update "Twitch AdBlock" info 2021-01-15 14:32:00 +00:00
README.md Improve ad stripping 2021-01-29 21:11:21 +00:00
utils.bat Add page for testing m3u8 modifications and latency 2020-12-28 06:22:10 +00:00
utils.cs Fix buffering issue after ad segments 2021-02-03 14:15:11 +00:00
utils.js Add page for testing m3u8 modifications and latency 2020-12-28 06:22:10 +00:00

TwitchAdSolutions

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

Recommendations

M3U8 proxies (or full proxies / VPNs) are currently the most reliable way of avoiding ads. More proxy hosts would be ideal (see #8).

Alternatively:

  • notify-strip is ok-ish.
  • Alternate Player for Twitch.tv consistently updates with new ad-blocking methods.
  • ttv_adEraser somewhat fixes the purple screen issue of ttv-ublock.
  • ttv-tools (firefox) has nice features.

Current solutions

These solutions generally aren't compatible with other Twitch ad blockers. e.g. ttv-ublock will break some of these.

If you want a perfect solution, please use Twitch AdBlock.

  • notify-strip (ublock / userscript)
    • The same as strip, but notifies Twitch that ads were "watched" (reduces preroll ad frequency).
  • notify-reload (ublock / userscript)
    • Notifies that ads were watched, then reloads the player.
    • Repeats this until no ads (which may never happen ~ infinite reload).
    • You should expect 3-10 player reloads (give or take). Once successful you shouldn't see preroll ads for a while on any stream (10+ minutes?).
  • strip (ublock / userscript)
    • Ad segments are replaced by low resolution stream segments (on a m3u8 level).
    • TODO: Fix midrolls issues (stream freezes for several seconds / potentially longer low res than needed).
    • 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.
  • video-swap (ublock / userscript)
    • Ads are replaced by a low resolution stream for the duration of the ad.
    • Similar to strip, but skips closer to 20 seconds when switching to the live stream (TODO: low latency support).
    • You might see tiny bits of the ad.
    • Audio controls wont work whilst the ad is playing.
    • There are various UX/UI issues with this script which need to be addressed.
  • proxy-m3u8 (ublock / userscript) (proxy currently points to a dead url)
    • 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.

The following renamed/deprecated scripts will be removed from the master branch on 1st March 2021:

  • dyn renamed to strip as this better reflects the functionality (strips ad segments).
  • dyn-skip removed as it no longer works.
  • dyn-skip-midroll renamed to notify-reload as the original name has lost its meaning.
  • dyn-skip-midroll-alt renamed to notify-strip as the original name has lost its meaning.
  • dyn-video-swap renamed to video-swap.

Applying a solution (uBlock Origin)

  • 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://github.com/pixeltris/TwitchAdSolutions/raw/master/notify-strip/notify-strip-ublock-origin.js
  • To ensure uBlock Origin loads the script I recommend that you disable/enable the uBlock Origin extension (or restart your browser).

Applying a solution (userscript)

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

Other solutions / projects

For a more detailed description of the following please refer to this.


NOTE/TODO

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