Skip to content

plugins.twitch: fix ad filtering bug #5007

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

bastimeyer
Copy link
Member

Twitch doesn't include duration data for prefetch segments, which means when more than one prefetch segment is included in the HLS playlist, the start time of the second (or third) prefetch segment has to be guessed from the duration of the regular segments. This is done by calculating the average of all available regular segments and using that as an offset of the last regular segment for each prefetch segment.

This however can cause issues when segment durations vary a lot and the start time of an annotated ad block doesn't match the extrapolated start time of the first ad segment due to the miscalculation. The ad segment then gets incorrectly included in the output stream.

Since a discontinuity tag is always present, even between prefetch tags with ads, we can make use of it and treat prefetch segments after a discontinuity tag as ads. This won't cause any issues during the transition to the regular stream content, as it only affects the logic of prefetch segments.


Resolves #5006

Don't merge yet, I will need to run further tests on live data.

Once the fix got merged, I'll be preparing a new bugfix release.

@bastimeyer bastimeyer added the plugin issue A Plugin does not work correctly label Dec 2, 2022
@bastimeyer
Copy link
Member Author

@phxn Could you please check and see if this resolves the issue for you?
#5001 (reply in thread)

Twitch doesn't include duration data for prefetch segments, which means
when more than one prefetch segment is included in the HLS playlist,
the start time of the second (or third) prefetch segment has to be
guessed from the duration of the regular segments. This is done by
calculating the average of all available regular segments and using that
as an offset of the last regular segment for each prefetch segment.

This however can cause issues when segment durations vary a lot and the
start time of an annotated ad block doesn't match the extrapolated start
time of the first ad segment due to the miscalculation. The ad segment
then gets incorrectly included in the output stream.

Since a discontinuity tag is always present, even between prefetch tags
with ads, we can make use of it and treat prefetch segments after a
discontinuity tag as ads. This won't cause any issues during the
transition to the regular stream content, as it only affects the logic
of prefetch segments.
@bastimeyer bastimeyer force-pushed the plugins/twitch/fix-prefetch-ads branch from c40cba8 to c62be03 Compare December 2, 2022 21:01
@phxn
Copy link

phxn commented Dec 2, 2022

Nice thanks, where can I download the Windows 64bit executable?

@bastimeyer
Copy link
Member Author

You can't, because it's a pull request.
https://streamlink.github.io/install.html#pypi-package-and-source-code

@bastimeyer
Copy link
Member Author

@phxn
Copy link

phxn commented Dec 2, 2022

Thanks, I've side-loaded and will see how it goes.

EDIT: Still seeing the purple screen. It's really not a big deal for me because the stream will be interrupted either way, so don't stress too much over it. I'm seriously considering buying Turbo to just remove the ads permanently but I hate that I'm being pushed that way due to their aggressive ad campaign.

@bastimeyer
Copy link
Member Author

Still seeing the purple screen

Post the full debug log (--loglevel=debug) or "all" log (--loglevel=all --logfile=streamlink.log). You are very likely not side-loading the plugin correctly, or you're using an outdated version. This can be checked at the very top of the log output. This is not the first time that I see a response like this when asking for feedback from users, and I don't trust any of those comments anymore without any actual data. This is just not useful.

The issue which gets fixed in this PR is an edge case and it's specific to channels which have a variable duration of HLS segments while low latency streaming, which is not too common. The main issue already got fixed in 5.1.0 by #4942. I have checked several dozens of streams with pre-roll and mid-roll ads, and they all get filtered out correctly without any issues. If you have a reliable way of reproducing a bug while filtering out ads ("purple screens"), then post the log output, as mentioned.

This PR should be fine though. I will merge this now, so that the changes can be included in the Windows and Linux AppImage nightly builds, which will trigger in an hour or so.

@bastimeyer bastimeyer merged commit b9f3295 into streamlink:master Dec 2, 2022
@bastimeyer bastimeyer deleted the plugins/twitch/fix-prefetch-ads branch December 2, 2022 23:14
@phxn
Copy link

phxn commented Dec 2, 2022

I created a folder called plugins in my %appdata%\streamlink folder, in there I created a twitch.py from this:

https://raw.githubusercontent.com/bastimeyer/streamlink/plugins/twitch/fix-prefetch-ads/src/streamlink/plugins/twitch.py

It's created a "pycache" folder within the plugins folder so I think it's working.

Tried the log thing, got this at the top:

[23:43:19.610492][session][debug] Plugin twitch is being overridden by C:\Users<USER>\AppData\Roaming\streamlink\plugins\twitch.py

Just saw another purple screen on shrouds stream.

@bastimeyer
Copy link
Member Author

Just saw another purple screen on shrouds stream.

Once again, this is not a useful statement without a full log output on the "debug" or "all" log level. You could be running literally anything. If you're running the latest version, which the debug log will tell you, and without having made any modifications, then there should be no issues. If there are issues for whatever reason, then the log output will show this. If you're unable to provide a full log output where a filtering issue occurred, then nobody will be able to fix any potential issues.

I have just tested shroud's stream, which btw is not a low latency stream, and both pre-roll and mid-roll ads get filtered out correctly.

@phxn
Copy link

phxn commented Dec 3, 2022

[23:43:19.610492][session][debug] Plugin twitch is being overridden by C:\Users\AppData\Roaming\streamlink\plugins\twitch.py
[23:43:19.623971][cli][debug] OS:         Windows 10
[23:43:19.623971][cli][debug] Python:     3.10.8
[23:43:19.623971][cli][debug] Streamlink: 5.1.1
[23:43:19.624969][cli][debug] Dependencies:
[23:43:19.626965][cli][debug]  certifi: 2022.9.24
[23:43:19.627464][cli][debug]  isodate: 0.6.1
[23:43:19.628463][cli][debug]  lxml: 4.9.1
[23:43:19.629461][cli][debug]  pycountry: 22.3.5
[23:43:19.630459][cli][debug]  pycryptodome: 3.15.0
[23:43:19.631458][cli][debug]  PySocks: 1.7.1
[23:43:19.632456][cli][debug]  requests: 2.28.1
[23:43:19.634952][cli][debug]  urllib3: 1.26.12
[23:43:19.635951][cli][debug]  websocket-client: 1.4.2
[23:43:19.643439][cli][debug] Arguments:
[23:43:19.643939][cli][debug]  url=twitch.tv/shroud
[23:43:19.643939][cli][debug]  --loglevel=all
[23:43:19.643939][cli][debug]  --logfile=streamlink.log
[23:43:19.643939][cli][debug]  --player="C:\Program Files\MPC-HC\mpc-hc64.exe"
[23:43:19.643939][cli][debug]  --player-passthrough=['hls']
[23:43:19.643939][cli][debug]  --player-no-close=True
[23:43:19.643939][cli][debug]  --default-stream=['best']
[23:43:19.644437][cli][debug]  --stream-segment-attempts=6
[23:43:19.644437][cli][debug]  --stream-segment-threads=2
[23:43:19.644437][cli][debug]  --stream-segment-timeout=20.0
[23:43:19.644437][cli][debug]  --stream-timeout=120.0
[23:43:19.644437][cli][debug]  --hls-playlist-reload-attempts=5
[23:43:19.644437][cli][debug]  --ffmpeg-ffmpeg=C:\Program Files\Streamlink\ffmpeg\ffmpeg.exe
[23:43:19.644936][cli][debug]  --twitch-disable-ads=True
[23:43:19.645435][cli][info] Found matching plugin twitch for URL twitch.tv/shroud
[23:43:19.645435][plugins.twitch][debug] Getting live HLS streams for shroud
[23:43:19.931420][plugins.twitch][debug] {'adblock': False, 'geoblock_reason': '', 'hide_ads': False, 'server_ads': True, 'show_ads': True}
[23:43:19.974351][utils.l10n][debug] Language code: en_US
[23:43:20.255339][stream.hls_playlist][all] #EXT-X-TWITCH-INFO:NODE="video-edge-830814.lhr03",MANIFEST-NODE-TYPE="weaver_cluster",MANIFEST-NODE="video-weaver.lhr08",SUPPRESS="true",SERVER-TIME="1670024600.08",TRANSCODESTACK="2017TranscodeQS_V2",USER-IP="92.234.172.52",SERVING-ID="83d1c699295347449e5ca8b96cc20cc3",CLUSTER="lhr03",ABS="false",VIDEO-SESSION-ID="2888229245359884929",BROADCAST-ID="41565511115",STREAM-TIME="5671.078350",B="false",USER-COUNTRY="GB",MANIFEST-CLUSTER="lhr08",ORIGIN="pdx05",C="aHR0cHM6Ly92aWRlby1lZGdlLTg5MThmYy5wZHgwMS5hYnMuaGxzLnR0dm53Lm5ldC92MS9zZWdtZW50L0NpSFg5d2NmQldUMU9mdUFCUVB0YngyY3ozMzRvQkVad2lYOEhXWk9WajVPUVZyTERYMkx3RVY4QnNVYlliUnpwVld6cFdlNFdrQnBMRmlNTkdKT2pKQVdiZmFFYnBHenBnWGNpWUdRNDdodVJkemZuZGQ1SzF0d0ViUXlySE1VakMxQmwxZG9fdTVLMUtoMjlYaHRUUHlEZ2ZkSUNnYjRHaXlIbUlIVmZFME5DcGRudDRMS3ZGOWh0Mnp6VEliTHhhR3l3X1RtTzhpVVd4UVNLX015OEE2YmhpXzlCRkZpOEJ0WHFna19xU2RmTXF5WER3dTNDOUZoeHZLWFdVMUxZVjdkUENMUmlrYWRqYzkwbkh0NE1MUkduTEY0MWpJMlFUNVJ3b1VZZU5reUQ2ZmdydTRjWm82LUM4VUpGVTI1bk5nbTdBaWJWVV9pQTFnNzZDd19FMC11Nzc0LWFfR1pibnMwS1ZVYkNOSjFzcHBSLU9rZWNzWVRwaHBGQmR2c1VaOXZodXlETy15QnBZN1RXYVRHMUJuOFFVX1BaQVlaRnRTaTVIazRXaFpLc3dPdXB6LUttLTc3X2YzNl8zRFQzZlhQLTQtd3hrdUM5bHg4ZERSQ2dtaGxXSDZnaDdtN1FBanY3WmZhQ3pFMjFlaXFXbW1zdHBlZldKSUxKM3BxRGpEcGw3eXJYQ1JheW1NVGwtXzFreTNMdnpBekZhRzBFUWt4Qzc0bFVsOTZFY0tZYzk2ZkJfeVhlY205MVRJZ3NSTndFSmRYNjVpSGEydnBIZ2dEajF1WTJDaExKVjg3S24zdVpMSXdNQjhpclhrZmJ3WWpxbzdGSHRzUzFpX3VjOHY4eC1PR19SN1hhSXFWS05aYnBxVmhSU0VNNnNpWmp1dzNyWDQtNGNSNUQtSHdxQUY0ZV9RbGdOVnBTVFVIc0xvU2Q4aGdYVUtTS3l4ZFdqRXdySjJPSFpycEhQQzFBRmZTeXJJR3AxOHUtdEk5TE5qT0swbzFKS3daTnZ5M2hwcGh2NlpscF9id3BEOUsudHM",D="false"
[23:43:20.255339][stream.hls_playlist][all] #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="chunked",NAME="1080p60 (source)",AUTOSELECT=YES,DEFAULT=YES
[23:43:20.255339][stream.hls_playlist][all] #EXT-X-STREAM-INF:BANDWIDTH=8980499,RESOLUTION=1920x1080,CODECS="avc1.640032,mp4a.40.2",VIDEO="chunked",FRAME-RATE=60.000
[23:43:20.255339][stream.hls_playlist][all] https://video-weaver.lhr08.hls.ttvnw.net/v1/playlist/Co0ETX0wxLt_Emyg4DDVvkbNKXMM2NVqVqU2Uh8ebchRUJVe7sBBTpJ41E5k_J3VGHd8r8xYXKP6TmiIEqYCGDMQjOQ8fkwMGZ40V6BaXSeS0xUYllqeK1tPpR3dZrABmfQWaa-GQP8HkudH1yQMcJPNvSA2oahMI7f_jQDTQQOJ1Q9uvmWhTdHUDqmDDn9ucIsEVmvVr7Kwrg8KOKZe1CdroelluG5hrMGIamSna56DBlEgz_4hpXFDEeIioD1FuobHpnmma8uGn0Y1gbAvKP46SKkn9gQqPCKO-_UeMhtkKLL4HM2q0VW72kgks6PNNXhiK8i5NMg_MT7b-1kUI_8LUUg0TCtJdAHokeRtfdCTH6Wch0krMcsP7pztlq4Wgk9E287eWBVuV_wu3Idp94E8qV-Z1TyclbV9IS29yZDsanypvknVC13lD3fmaSjPLrKfU8qU9QPPZuk7FtocCmircL_O26KQfOVxWvMTr6rQqnEn1eprdIw-2RyZawG0xxm256PRUdgFHr5JHOzVSo2WQaOfTC20iSXHakR932DTQ9mFsHl-F7S09KlXEHrnATAdmSdgoYnWeG87Fyng1uobF-rLTam8Khr4Uj072K8BgX9taz1-mQOjWF4L_d1L6XHbn94ZTt3KyFdavKKIxmFS3nwSRG50TnMdk8l4ayRse9cyqWynf3ekV7Cb-ocaGgxLTvFSX9EVR0ucnjogASoJdXMtd2VzdC0yMKUF.m3u8
[23:43:20.255856][stream.hls_playlist][all] #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="720p60",NAME="720p60",AUTOSELECT=YES,DEFAULT=YES
[23:43:20.255856][stream.hls_playlist][all] #EXT-X-STREAM-INF:BANDWIDTH=3422999,RESOLUTION=1280x720,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="720p60",FRAME-RATE=60.000
[23:43:20.255856][stream.hls_playlist][all] https://video-weaver.lhr08.hls.ttvnw.net/v1/playlist/CosErCGb7PnkTR656Otwr83uXzDhlPyjK5mnUcr_iDCxI-8tPDHshnj5qdx5L-SSpSM0YYeHbhZux9FcWfxzqFAn2LUczoRJLXBwgFK6paFN6oE8GPZDWKOpTRn7b54ENg5ct_ndg6PkS0LgFGeRlFUNpq17gWMfmTwsXqWE3FVQIf1-jHYNfyarulTCRQAXpHX90FG2JdXbcT9jG_J55lXY3fwCCq3sBpTXEDCtpG2hLKurL8CneFMfEp4jdQWr4XdlEoT8LKJU7IcQt6PH2sGfjk9-x9ALFVp3E5JcJRGW_LiKJ57C8gTyu8HwXUZZ_X5f9ERVzgbwCUTpVj6C4mYtp8w9X65SapjkehC_FMnO-SZysS-y_4JhoDkQhHvK8VKQVKLgsbaC_vvZGQPWWXHhkdsIqWt3uN8QfD8xjvnLBwigMs4uAwi44H_dldsI91lr8qiwsj3giP-pQ36e-yuWFeHGMyj55hJ281vACympaBPbehX-jZNHz1pb_PUfr2PLzMeSxu6kX_k6J8yb82Wl6tTheTiFY2AgG6GFTfyksAgY_7DUcVIO0dB75ECGo8awp1YDFX6dJwmH4sViWDDRJgCmXS1s1osIQYurb-dur520Nn_OQJk6BnnC0_CiUTeVtKej8nxTZDjrQnGIW0VP9qd2M718whrReedb2aIYN5rrGy6oZ9JRUDoWVxoMCz0EDhD_xw6lNSMEIAEqCXVzLXdlc3QtMjClBQ.m3u8
[23:43:20.255856][stream.hls_playlist][all] #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="480p30",NAME="480p",AUTOSELECT=YES,DEFAULT=YES
[23:43:20.255856][stream.hls_playlist][all] #EXT-X-STREAM-INF:BANDWIDTH=1427999,RESOLUTION=852x480,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="480p30",FRAME-RATE=30.000
[23:43:20.256338][stream.hls_playlist][all] https://video-weaver.lhr08.hls.ttvnw.net/v1/playlist/CosE3m04fzfmttJSllhS93GoqJpMsQbKZPjjGUYrOE6xjnjwjbF6Uu2YYoHqjYwOgD_Fu2UKG9eyAcrDKcFZdvRaGo3HVKtCsC8fLqxio1p7Jw2g7Zf5uYfi1ZgSfGqxU8UgXwo7Vhx1M1TNMWaC5LbEwVbsKRwHHk9TdZcfncRWq-iA0A_NjN7E3I_1_3xbhbJFP4S0KcyQsxUb6V0c2uG_6WHdy5kZ-ZibkyYMWftwpakaeVzcZKdEUZ5fIvqd9-PGsbt6vUEIV7cHYojcKUBsx0JL3l6HgVJXzkQgEeBbGacsvqU6-UBgJgV_5aZy1-7ajsDXEb-F3afzjCp83HXmuDeNiWXDYWcJlHCb3Ys0NfPY648C3NJ7aLNNfJVs7fSZSRVQZruv9KIj7zuNIFJPJOxHgyie0yL4YOXEKwtyArni0nOwa1-VjMPKGbMUmFpvnB6PACPmysZo8E1c1Sqh4Eh6umBX5ZzH1EkwNZgF3LSzGE7EuL7vUR8wGc7rj3ztqEFIBgQ3YRSeISYUn-Dz_KpEmdMWMGHg4wFjBBbOSQmgl5bhM3gyT65gMy2K6M5BG9irMxoDvEfdbHEIGrAVtY3yXIhxw-vb4nb6I1bsDfyHZxyMsRVNnUjH3sqpu6vkOSM9DT4kuTetbxhBjOnxOb1YkEKoZe4XDElTn2uRUIUDrWS8Z_rDq0c0YxoMLZ7QmF7Sq7Ktrpu5IAEqCXVzLXdlc3QtMjClBQ.m3u8
[23:43:20.256338][stream.hls_playlist][all] #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="360p30",NAME="360p",AUTOSELECT=YES,DEFAULT=YES
[23:43:20.256338][stream.hls_playlist][all] #EXT-X-STREAM-INF:BANDWIDTH=630000,RESOLUTION=640x360,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="360p30",FRAME-RATE=30.000
[23:43:20.256338][stream.hls_playlist][all] https://video-weaver.lhr08.hls.ttvnw.net/v1/playlist/CosEkRyeI2Ra8GGuo5pBK4fx7VZLXsmpotZJ3GEL1wLI3U1T0obPFpq4pzYTdvpPmP2USZujrFbc8J_fmrR2x5JMGJbp0dBX-l6lZz8XlADQvG69fnFXuIEsyq7aBz_nzlHX9r6YpH35XDy8HSLv6gkeGJO1_9oUyiY4uIEGJ2CKMZukGkH9r1gLvYRSMFHjxzWrr2ttuqyE9TT88Ljr74B5jU4AECIihdN1RvcZO1d3tIIEuGYzfkecZtrWb6pLOiJhMtuu_SiJkuXBjaDJKeRskrhY3ncviKKLyuxlqyWBVaqD8kreRxk6l5kqNsz27by_0tBbick0wzqiBNeUULRC9CiE-ALxotFfnHlSiogtDLpV6oqNirjVtVHAVxguCs8ynlo0OW3WWLMzx0QwGS6lCXW3ps-cUxgeqvEKYlzxLdrFDNhguPQ2qWYmPM_tCeUYbvzRLWq8WeHmbJsBTOFyDmmT5pXkDH4gY_EB08znhtyC1T3vZCzKSaCONMvJ7Ke28WEOI2ATL-IlECbEYVJeO5DnlL3teJZYEuIT6ASH3kB9WKUFjB66rm_T4etkUvcMSiMJJeC2Rd684WQC38MesnsuBR4A1x3FS11Av7_AgyaGGrnOKoN7rQMQvNxBJbx5SK1MZ68s0n7CXdKxynLg8mYYruoQ2lY49d7mMDyCCQ5G3bpSL1hmrGO_GhoMPlvlQTqiEfWx6YcMIAEqCXVzLXdlc3QtMjClBQ.m3u8
[23:43:20.256338][stream.hls_playlist][all] #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="160p30",NAME="160p",AUTOSELECT=YES,DEFAULT=YES
[23:43:20.256338][stream.hls_playlist][all] #EXT-X-STREAM-INF:BANDWIDTH=230000,RESOLUTION=284x160,CODECS="avc1.4D401F,mp4a.40.2",VIDEO="160p30",FRAME-RATE=30.000
[23:43:20.256855][stream.hls_playlist][all] https://video-weaver.lhr08.hls.ttvnw.net/v1/playlist/CosE7Uf12FlFWS4p-Bd4Y8iExNgBHa1YstU1rwi5_TD4ADKMJESuSBILjOb3aCVgxrK3o4jGLHiiTvJmXpWFxPN5K2-Ms3YZdFo7X55KBj44xoIGU73Ralf9uOYIeUDyO3nJ65O1toMrhOagaEk6_puyGMuA6XcQfJ328xQEgxpwYEb3EAigOe5P3kZ9IzK9jn2EoCTaETMQ7cOgQsXp4EE01yzhctlLNLKURra7jfMCwP6a48tDQWVNHWyrttzDr9Ah6fDEwR6vKEoyf38TTUK3GZxlPY4c-A61jc8PDoxXuglUDYOMKZUUkZ-9Rc9gXFDpOI1Yh7HUxFDHIQJpes_LJoVZib_JCio_e6JgI3SPZ-5hIp-pI60C-HFtwt1xnWGXcOF-i9y3-WNGXw9rh2_aPpMx0e3fkSoN_C1SHTlhlGkPJx30y6kLedRCAdMxRgY62oR8EERZ6Vf0E_K9ie4gLfw8nVIO37LTdbuEbFvl5FjKsfMlOA2S7WWNui8Jayt1WTixlLkzRaMkaezjXDNIlTRhu0wf5peprDOQEqU1dpj9rFXvc0GdovNCJZzU0cYF4SLcy5uP2PBf_R_9aQM-eDJvzZHZWED9H8A2tW3xTVgTmE24oZwgxBqfaqqwdU3WTr-Hpoy-nMPC6_qtv3K0JSFfw6rNbhnthPFeOEjFe5zkl75D68ip0lV1KxoMbP2cjjENwdA_mIKRIAEqCXVzLXdlc3QtMjClBQ.m3u8
[23:43:20.256855][stream.hls_playlist][all] #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="audio_only",NAME="audio_only",AUTOSELECT=NO,DEFAULT=NO
[23:43:20.256855][stream.hls_playlist][all] #EXT-X-STREAM-INF:BANDWIDTH=160000,CODECS="mp4a.40.2",VIDEO="audio_only"
[23:43:20.256855][stream.hls_playlist][all] https://video-weaver.lhr08.hls.ttvnw.net/v1/playlist/Co0EprF57zCjrw-CHkXUx-2sAEXvJQRv6inN8hacol2j9Qgi0cEETlqNKsBvz6eqAZI6kZvJoJtTJqKmhEY3ttlYLf-CEhUaZqEET4NDBUWJWW29pKLmrPsIXe9qEkxIUatYJ03GrUuyH1eLmMqpAfqZDRUuqnagXRuQENnTVLEjApWyjnCi5pH-wTOx842uf1x8cMJTTu8SxtNeBOZpd4EaVBCC7LdLVP-z49NpMTXKqakKqdnIGpZl0if-6sLm4oiEZ0AkZg6HcCJOyvPFCT3pBTMt0GaWgeNRmHJ5rGKQVue4ddEE3D0KDSP1TejwZ3zMk9-fuk-yjYfENQV1j2tLrxm13jbramafvTGn1weZGVAzF7KCakKKHl40IrMAKqwzYa7oRL9t322nyQOkEbDCXcakWYe0jSU7SNZYFE7DbfXag5h9JWi4ew0sJMy_EEASj1rkBtfrsNJhkKeC-8YRwfuUHS4sA23FovZclRZa2inYoa7Ena0nT1qkYuhuGzceUwjVLlzYP-s7X43B7KE7Z4Tjp9dAlHS64W3QIN7CPLxPY4iUE32duNdhtiVUbM8OgafuvOd6cZSJR7fuKshfJ8P9fdZvg_Z7JfI9ifA1AGAmiBQrBVae8NxP8bLlnq327y2ZnE6U9A3_U3SBYBVO5qrUiqW_4Xu_3u-SwJNEuXjdK2EhCtPSaOP253MyGgyjl8PArnmiqOVBqIggASoJdXMtd2VzdC0yMKUF.m3u8
[23:43:20.257852][cli][info] Available streams: audio_only, 160p (worst), 360p, 480p, 720p60, 1080p60 (best)
[23:43:20.257852][cli][info] Opening stream: 1080p60 (hls)
[23:43:20.258834][cli][info] Starting player: "C:\Program Files\MPC-HC\mpc-hc64.exe"
[23:43:20.258834][cli.output][debug] Calling: "C:\Program Files\MPC-HC\mpc-hc64.exe" "https://video-weaver.lhr08.hls.ttvnw.net/v1/playlist/Co0ETX0wxLt_Emyg4DDVvkbNKXMM2NVqVqU2Uh8ebchRUJVe7sBBTpJ41E5k_J3VGHd8r8xYXKP6TmiIEqYCGDMQjOQ8fkwMGZ40V6BaXSeS0xUYllqeK1tPpR3dZrABmfQWaa-GQP8HkudH1yQMcJPNvSA2oahMI7f_jQDTQQOJ1Q9uvmWhTdHUDqmDDn9ucIsEVmvVr7Kwrg8KOKZe1CdroelluG5hrMGIamSna56DBlEgz_4hpXFDEeIioD1FuobHpnmma8uGn0Y1gbAvKP46SKkn9gQqPCKO-_UeMhtkKLL4HM2q0VW72kgks6PNNXhiK8i5NMg_MT7b-1kUI_8LUUg0TCtJdAHokeRtfdCTH6Wch0krMcsP7pztlq4Wgk9E287eWBVuV_wu3Idp94E8qV-Z1TyclbV9IS29yZDsanypvknVC13lD3fmaSjPLrKfU8qU9QPPZuk7FtocCmircL_O26KQfOVxWvMTr6rQqnEn1eprdIw-2RyZawG0xxm256PRUdgFHr5JHOzVSo2WQaOfTC20iSXHakR932DTQ9mFsHl-F7S09KlXEHrnATAdmSdgoYnWeG87Fyng1uobF-rLTam8Khr4Uj072K8BgX9taz1-mQOjWF4L_d1L6XHbn94ZTt3KyFdavKKIxmFS3nwSRG50TnMdk8l4ayRse9cyqWynf3ekV7Cb-ocaGgxLTvFSX9EVR0ucnjogASoJdXMtd2VzdC0yMKUF.m3u8"

@bastimeyer
Copy link
Member Author

--player-passthrough=hls

You're completely bypassing Streamlink and just using it as an HLS URL resolver. Your player is doing all the work, not Streamlink, and your player is not able to filter out ads. If you don't know what a specific parameter does, then don't use it.

https://streamlink.github.io/cli.html#cmdoption-player-passthrough

A comma-delimited list of stream types to pass to the player as a URL to let it handle the transport of the stream instead.
mpc-hc6.exe "resolved HLS-URL"

@phxn
Copy link

phxn commented Dec 3, 2022

I see, I think I started using it because I couldn't get more than 1 stream to play at a time without using HLS.

Found some info on that now here https://github.com/streamlink/streamlink-twitch-gui/wiki/Player-configuration

@Sokoloft
Copy link

Sokoloft commented Dec 4, 2022

Hello,

I'm having an issue where the player (vlc & mpv) will pause for 30 seconds to a minute and then resume the stream. This happens maybe 45 minutes to an hour into a stream. I'm unsure if this is the intended outcome with this merge or not. Below is my log file with loglevel all. I removed my oauth string.

streamlink.log

I closed the stream shortly after the pause happened. So maybe what you need to know is towards the end of the log.

Thanks.

@bastimeyer
Copy link
Member Author

Read this
#4949

@streamlink streamlink locked as resolved and limited conversation to collaborators Dec 4, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
plugin issue A Plugin does not work correctly
Projects
None yet
Development

Successfully merging this pull request may close these issues.

plugins.twitch: ad filtering via --twitch-disable-ads (partially) broken again (5.1.1)
3 participants