streamlink: plugins.twitch: mid-roll ads ("Commercial Break in Progress") filtering issue with --twitch-disable-ads

Checklist

Streamlink version

Latest stable release

Description

Basically the same as this issue, but its marked as resolved, so I can’t comment to say its back, apologies 🙏 #4106

Debug log

-

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 10
  • Comments: 40 (21 by maintainers)

Most upvoted comments

Bastimeyer, if you feel the need to apologize for your tone, then don’t be so brusque to begin with. You do not have to deal with anything. Not everyone possesses the same skillset as you, and berating people with a wall of text that doesn’t pertain to this issue is no more helpful than the spam you decry. Take a break from the Internet, if that’s what you need.

That said, ads are indeed not being filtered. Preroll ads do seem to be, but midroll ads are not. For whatever reason (I’m fairly technically savvy, but not a programmer), ads weren’t being displayed with Streamlink for quite some time without the need for twitch-disable-ads. That flag currently blocks (most?) preroll ads, but not midroll.

This is exactly the bug as described in #4106 because of the segment prefetching. Read the last comment in that thread. This requires a rewrite of the low latency implementation which would add an additional delay of two seconds, as mentioned and explained there.

This thread here is therefore a duplicate.

Nope, same happens without --twitch-low-latency flag. I just tested it. Also I never had any problems with midroll ads before today.

Just merged #4942, so that the main issue is fixed. The next nightly builds for users of Windows will be available in a couple of hours. Otherwise, install from the master branch via pip: https://streamlink.github.io/install.html#pypi-package-and-source-code

Streamlink 5.1.0 will be published soon.

I will also delete my secondary dev branch now, as it’s not needed anymore.

As said in #4942, I haven’t been able to find a mid-roll ad block again where the --twitch-disable-ads ad-filtering didn’t stop and the stream stayed paused forever. Not even sure if it’s an actual bug or if Twitch was simply serving infinite ads. If this keeps happening again, then please open a new issue and provide a proper log file, but do not open new issues if you don’t understand any of this. We’ve just added a new log level called all and added all log messages to the HLS implementation’s M3U8 parser, so the same verbose logs can be generated as mentioned above, just with the --loglevel=all parameter instead of --loglevel=trace.

twitch-disable-ads

--twitch-disable-ads was never meant to skip ads, this is just for filtering out embedded ads, as you can read in the docs.

Skipping ads is an entirely different thing which we had also implemented several times in the past, and all of those implementations/workarounds had to be restored at some point because they caused other issues later on. This is done by applying certain HTTP headers or query string parameters to the API request / Twitch’s Usher service when acquiring a streaming access token for the HLS playlist. See the --twitch-api-header option and why this specific CLI parameter was implemented. The git log / blame of the twitch plugin will also help you understand that.

same happens without --twitch-low-latency

Prefetch segments get parsed regardless whether the option is set or not. The way prefetch segment handling is implemented could still cause issues with how the ads filtering works.

However, it’s also possible that Twitch annotates mid-roll ads differently, which incorrectly causes the last segment to be included in the output, which we don’t want.

The ads-filtering implementation works like this: Each HLS playlist response includes a set of tags for metadata and segments. Metadata includes date ranges, with annotated names, class names and other stuff. Ads are annotated this way, in specific date ranges. The stream segments included in the HLS playlist also have their own metadata, including program dates. Streamlink checks whether a segment’s program date is part of the annotated ad date range, and if that’s the case, then it starts filtering out the segments until the first one appears which doesn’t fall into the ad date range again.

In addition to that, segments each have a duration and optional title attribute. The segment titles are currently not being used when filtering out ads, even though they seem to contain specific names which are unlikely to be used by regular segments. For example, pre-roll ad segments at least contain the “Amazon” string in their title, which could be used as an additional indicator in addition to the date range checks. If there’s something wrong with the date ranges of mid-roll ads, then this could be used as a fallback.

However, I don’t know the contents of HLS playlists yet which contain mid-roll ads, so I could use some help.

Please apply the following diff and help debugging this, as we need to know the exact HLS playlist contents of the moment when a mid-roll ad gets embedded. This adds trace log messages to the log output for each line in the HLS playlist on each playlist refresh, and this will generate a ton of noisy output.

diff --git a/src/streamlink/stream/hls_playlist.py b/src/streamlink/stream/hls_playlist.py
index 9f193d80..633bec54 100644
--- a/src/streamlink/stream/hls_playlist.py
+++ b/src/streamlink/stream/hls_playlist.py
@@ -550,6 +550,7 @@ class M3U8Parser:
 
         parse_line = self.parse_line
         for line in lines:
+            log.trace(line)  # type: ignore[attr-defined]
             parse_line(line)
 
         # Associate Media entries with each Playlist
$ streamlink \
  --loglevel=trace \
  --logfile=/path/to/tracelog.txt \
  twitch.tv/CHANNEL-WHICH-WILL-MOST-LIKELY-RUN-MIDROLL-ADS \
  best

Make sure to remove the existing log file before running Streamlink, or use a log file path with a dynamic name, like a timestamp.

Once you’ve found mid-roll ads, please upload the log file in its entirety to github gist and post the link. Be careful though, there might be personal information included in the HLS playlist contents.


I’m going to reopen this thread now and change its title.

PLEASE DO NOT COMMENT UNLESS YOU HAVE SOMETHING USEFUL TO SHARE WHICH WILL HELP FIXING THE ADS FILTERING (NOT SKIPPING/PREVENTING/ETC).

twitch-disable-ads just waited for ads to end from what I can tell, its not able to actually skip them. So pauses the player/output until ads are over (as you saw for pre-roll start delay).

From my testing without twitch-low-latency flag the stream/player will pause/freeze/wait until ads are over since it correctly detects both preroll/midroll ads are in progress. With twitch-low latency flag, you wait for the player to start until preroll ads are done, and you get the ‘Commercial break in progress’ screen until midroll ads are over (to fix that requires what Bastimeyer described in the other thread to not see but would still pause/freeze your player on the last available frame)

Currently working browser addons do the same with pausing playback until ads end, or replacing the stream with a 480p ad-free stream by proxy since certain regions don’t get particular ads (which seems out of streamlink’s scope?).

It’s likely due to this update below with an internal twitch change. https://discuss.dev.twitch.tv/t/an-updated-twitch-embedded-player-viewer-experience/41718 Embed type streams just didn’t used to get ads, and now they do. As mentioned in the other thread playerType=“embed” gets less/no ads so a new workaround or fix is needed now that that has been changed.

doesn’t get filtered by --twitch-disable-ads

Wrong.

$ streamlink -l debug --twitch-disable-ads twitch.tv/summit1g best
[cli][debug] OS:         Linux-5.17.0-rc6-1-git-01605-ge997b82745a5-x86_64-with-glibc2.36
[cli][debug] Python:     3.10.8
[cli][debug] Streamlink: 5.0.1+31.g38385d59
[cli][debug] Dependencies:
[cli][debug]  isodate: 0.6.1
[cli][debug]  lxml: 4.9.1
[cli][debug]  pycountry: 22.3.5
[cli][debug]  pycryptodome: 3.14.1
[cli][debug]  PySocks: 1.7.1
[cli][debug]  requests: 2.28.1
[cli][debug]  websocket-client: 1.3.1
[cli][debug]  importlib-metadata: 5.0.0
[cli][debug] Arguments:
[cli][debug]  url=twitch.tv/summit1g
[cli][debug]  stream=['best']
[cli][debug]  --loglevel=debug
[cli][debug]  --player=mpv
[cli][debug]  --twitch-disable-ads=True
[cli][info] Found matching plugin twitch for URL twitch.tv/summit1g
[plugins.twitch][debug] Getting live HLS streams for summit1g
[plugins.twitch][debug] {'adblock': False, 'geoblock_reason': '', 'hide_ads': False, 'server_ads': True, 'show_ads': True}
[utils.l10n][debug] Language code: en_US
[cli][info] Available streams: audio_only, 160p (worst), 360p, 480p, 720p60, 936p60 (best)
[cli][info] Opening stream: 936p60 (hls)
[cli][info] Starting player: mpv
[plugins.twitch][info] Will skip ad segments
[stream.hls][debug] Reloading playlist
[cli][debug] Pre-buffering 8192 bytes
[plugins.twitch][info] Waiting for pre-roll ads to finish, be patient
[stream.hls][debug] First Sequence: 0; Last Sequence: 3
[stream.hls][debug] Start offset: 0; Duration: None; Start Sequence: 1; End Sequence: None
[stream.hls][debug] Adding segment 1 to queue
[stream.hls][debug] Adding segment 2 to queue
[stream.hls][debug] Adding segment 3 to queue
[stream.hls][info] Filtering out segments and pausing stream output
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 4 to queue
[stream.hls][debug] Adding segment 5 to queue
[stream.hls][debug] Adding segment 6 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 7 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 8 to queue
[stream.hls][debug] Adding segment 9 to queue
[stream.hls][debug] Segment 8 complete
[stream.hls][info] Resuming stream output
[cli.output][debug] Opening subprocess: mpv --force-media-title=twitch.tv/summit1g -
[stream.hls][debug] Segment 9 complete
[cli][debug] Writing stream to output
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 10 to queue
[stream.hls][debug] Adding segment 11 to queue
[stream.hls][debug] Adding segment 12 to queue
[stream.hls][debug] Segment 10 complete
[cli][info] Player closed
[stream.segmented][debug] Closing worker thread
[stream.segmented][debug] Closing writer thread
[stream.hls][debug] Segment 11 complete
[cli][info] Stream ended
[cli][info] Closing currently open stream...

I have pushed a branch to my fork repo which you can test: https://github.com/streamlink/streamlink/compare/master...bastimeyer:streamlink:plugins/twitch/fix-prefetch-ads See the install docs on how to install Streamlink from different branches via pip: https://streamlink.github.io/install.html#pypi-package-and-source-code

pip install -U git+https://github.com/bastimeyer/streamlink.git@plugins/twitch/fix-prefetch-ads

I won’t be submitting a PR for this just yet, because I have not fully tested it, so this could also be complete garbage. Let’s see… The added test you can see in the diff which is built from the data I have gathered earlier today however fails without the modification of the custom TwitchM3U8Parser, which is responsible for flagging segments as ads and which I hope I have fixed.

A bit more as a clarification on why I think mid-roll ads didn’t get filtered out correctly: As explained, the prefetch segment implementation is not ideal. This is because of the lack of proper low-latency streaming support in the current version of the HLS protocol. Future versions of the protocol will/might/should fix this, so that streaming providers like Twitch don’t have to use custom solutions. Streamlink is therefore unfortunately relying on a kinda bad solution that shifts the live edge offset by copying the data from the last real (non-prefetch) segments unless a different solution gets used which adds more delay, and we don’t want that. What has been missed however was an extrapolation of the program date time of prefetch segments. This was not necessary in the past because ads were apparently not included in any prefetch data. Now prefetch segments can also be ads, and they are annotated by regular date-range tags. Since prefetch data does only contain a URL for fetching the data and since nothing else is included, what needs to be done when copying the data from the last regular segment is modifying the program date time of its copy and re-checking whether it is an ad. There’s also a second optimization. Regular segments can have an optional title. For normal streams, the title is “live”, and for VODs, the title is missing (I think, can’t remember). Ads however use a title with “Amazon” in it and an additional timestamp value. Looking for “Amazon” in the segment title should therefore also be done in addition to checking the date ranges.

Once I’m confident with my changes, I will open a PR for proper review. The branch is currently based on a different commit which I have opened a separate PR for, and this will need to be changed anyway. We also had already scheduled and then delayed the 5.1.0 release, which means a fix will definitely be included before we publish the next release.

Please test. Finding mid-roll ads is a bit tedious. And as already explained, this does only filter out ads, and even if it works properly without the “purple screen”, there will still be a stream discontinuity, which means bad players like old versions of VLC might still crash. This is a known issue which we can’t do anything about. As always, use recent software versions or better, switch to a different player like MPV if this keeps happening on recent versions of VLC as well. Enough with off-topic stuff now, though.


edit: There are still some issues with the mid-roll ad filtering. Just ran into an issue where it didn’t pick up the stream again. Unfortunately I didn’t do any trace logging. Annoying…

Thanks. I think I already have enough data with stuff mentioned in my last post. All I needed was a case where the filtering fails. My first run from the previous posts had ads filtered out correctly despite the prefetch segments, but my last one did not, so this should be enough for figuring out the issue. I will need to see how the cloning of the last regular segment affects the dateranges included for the prefetch data, where the ads already start. AFAIA this is not taken into consideration in the ad filtering implementation. I had already mentioned this in the last post of #4106.

You can keep running the trace logs, but it will most likely not be necessary anymore. Once I need new/more data, I will post an update.

I can confirm that I am also getting ‘commercial in progress’ when the streamer run ads manually mid-stream in order to avoid pre-rolls on stream. So while it looks like it works for pre-rolls it seems to fail when the streamer runs ads manually.

debug output for when the ads are run:

[stream.hls][debug] Adding segment 11729 to queue
[stream.hls][debug] Segment 11727 complete
[stream.hls][debug] Segment 11728 complete
[stream.hls][debug] Segment 11729 complete
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11730 to queue
[stream.hls][info] Filtering out segments and pausing stream output
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11731 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11732 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11733 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11734 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11735 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11736 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11737 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11738 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11739 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11740 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11741 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11742 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11743 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11744 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11745 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11746 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11747 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11748 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11749 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11750 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11751 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11752 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11753 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11754 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11755 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11756 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11757 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11758 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11759 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11760 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11761 to queue
[stream.hls][debug] Adding segment 11762 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11763 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11764 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11765 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11766 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11767 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11768 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11769 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11770 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11771 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11772 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11773 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11774 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11775 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11776 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11777 to queue
[stream.hls][debug] Adding segment 11778 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11779 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11780 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11781 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11782 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11783 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11784 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11785 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11786 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11787 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11788 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11789 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11790 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11791 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11792 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11793 to queue
[stream.hls][debug] Adding segment 11794 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11795 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11796 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11797 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11798 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11799 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11800 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11801 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11802 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11803 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11804 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11805 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11806 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11807 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11808 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11809 to queue
[stream.hls][debug] Adding segment 11810 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11811 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11812 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11813 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11814 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11815 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11816 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11817 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11818 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11819 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11820 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11821 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11822 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11823 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11824 to queue
[stream.hls][debug] Adding segment 11825 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11826 to queue
[stream.hls][debug] Reloading playlist
[stream.hls][debug] Adding segment 11827 to queue
[stream.hls][debug] Segment 11826 complete
[stream.hls][info] Resuming stream output
[stream.hls][debug] Reloading playlist```

flags: --loglevel debug --twitch-disable-ads --twitch-low-latency --player-passthrough --hls-live-edge

I’ll see if I can nail down whats happened, I’m a bit tech illiterate and use streamlink via a GUI. Ive watched ad-free for a few months now with Streamlink opening via Chatterino, which doesnt open the console window by default so I need to find out how I get a log. I tried adding --twitch-disable-ads to the options in case it were off (even though it seemed to be on before?) and now when the ad break happens, VLC just freezes and has to be force closed. image For context, this stream I watch every Wed (LevelUpYourGame) rolls commercial breaks between sets, so I know its ad time when the freezes occur. If it was on originally though, Im not sure if including --twitch-disable-ads twice may cause a crash itself. Edit: Ive also gotten some prerolls on streams that dont run their own ad breaks today, same context otherwise.

a log where Streamlink keeps trying to fetch segments from a stream I’ve left on overnight, long after it has ended.

This is issue #2198 due to the missing #EXT-X-ENDLIST tag when streams go offline on Twitch. If you have set your timeout values too high, then Streamlink won’t terminate. Otherwise it terminates after 60 seconds due to the lack of data.

However, it is possible that if the output is paused it is interfering with the timeout, because the timeout gets ignored during pauses. So if a stream goes offline during a pause, this is an issue. I didn’t run into this specific issue though.

But thanks for the hint, this needs to be fixed at some point. The solution I proposed in https://github.com/streamlink/streamlink/issues/2198#issuecomment-893524525 should be good enough.


how to setup ad-skipping were linked from the console messages

No, that would be way too much and unnecessary noise. And storing cached message checks for only displaying a message once in a while is also not a great idea. We can improve the notes of the plugin file though which is shown in the plugins list, and we can also improve the description of the --twitch-api-headers description, which gets shown in the docs, --help text and manual.

I’d like to ask for some more feedback.

As said, I am not 100% confident with the current state of my fixes which I have submitted in PR #4942, because I had two ad blocks over the past 24h now which caused the filtering to keep running, effectively pausing the stream forever. Other mid-roll ads were all filtered out fine, dozens of them. Unfortunately, I didn’t capture any logs during these two bad tests, so I don’t have any data for that and can’t reproduce the issue.

I have once again updated the branch I’ve commented about earlier (not the PR branch). The data I’m looking for is a full trace log without any truncation where mid-roll ads occurred and where the stream did not resume playing after the ads ended. Ad blocks can take several minutes now, so patience is needed. The branch doesn’t require any additional changes.

Once again, in order to install from my dev branch, use pip. The branch is this, so basically the commits of the PR and another one for temporary trace logging support: https://github.com/streamlink/streamlink/compare/master...bastimeyer:streamlink:plugins/twitch/fix-prefetch-ads Docs on how to install Streamlink from different branches via pip can be read here: https://streamlink.github.io/install.html#pypi-package-and-source-code

pip install -U git+https://github.com/bastimeyer/streamlink.git@plugins/twitch/fix-prefetch-ads

Then run

rm -f tracelog.txt
streamlink --loglevel=trace --logfile=tracelog.txt --twitch-disable-ads twitch.tv/CHANNEL best

If you want to see the log while the stream is running, run tail -f tracelog.txt from another shell instance.

Please post and upload the compressed log here without removing any parts, especially not the log header, so that I know that you were actually running the right thing with the right arguments. If the log is too large and mid-rolls didn’t happen for a long time, then it’s probably better to use a different log and try again.

As said, I’m only looking for those cases where mid-roll ads caused the filtering to not end, even after 10 minutes or so. I need to know which data was included in the HLS playlist which caused this behavior.

Otherwise, please follow #4942 for any updates.

Thanks.

@zer0def

where the segment didn’t appear

What do you mean with this?

I’m seeing

[22:58:54.493415][stream.hls][info] Resuming stream output

after it encountered live prefetch segments again after the ad break which started at

[22:55:50.511226][stream.hls][info] Filtering out segments and pausing stream output

so everything looks like it’s okay. If you take a look at the playlist reload at this time where it resumes and compare the segment/prefetch URLs with the contents of the playlist before and after, this is all fine.

edit: There are still some issues with the mid-roll ad filtering. Just ran into an issue where it didn’t pick up the stream again. Unfortunately I didn’t do any trace logging. Annoying…

I’ve not been getting any mid-roll ads for the past one and a half hours or more. Not sure why. I’ve updated the branch that I’ve pushed earlier with the trace logging diff posted 8 hours ago, so it doesn’t have to be applied manually.

If you want to help getting a trace log output which can be used to diagnose the resuming issue (and potentially other issues as well which I didn’t catch), then please follow this after installing Streamlink from my dev branch as mentioned above, thanks: https://github.com/streamlink/streamlink/issues/4934#issuecomment-1310149207


edit: Had two mid-rolls since posting this, and those ads which were properly filtered out and the stream continued just fine. Still waiting for a mid-roll where the filtering incorrectly keeps going, as mentioned earlier. Didn’t make any code changes since then. So if anyone could help, that would be appreciated.

I’ve been getting this issue too, and I thought I’d point out easy twitch channels to test the ad-freezes on. Channels that stream Tarkov often manually play ads during the load-in phase before a game to prevent mid-rolls from interrupting the game. A big streamer called /WillerZ does this very reliably and is live right now. After 5 raids, the MPC-HC player froze when he manually ran an ad 100% of the time .

Thanks for working on this bug, and sorry if this isn’t helpful.

@Urbinholt This thread is not about ad prevention, it’s about ad filtering. Ad prevention is off-topic and you can read more about that here:

As a general notice: Please don’t comment on this thread unless you’ve got something valuable to contribute in order to fix the issue this thread is about. Every time new issues on Twitch occur, threads like this get very messy really fast, and we want to avoid this. Please understand and be patient.

Hi, i guess my issue is somehow related to this one. I’ve been using streamlink to fetch short (~8s) fragments of a stream, but today at midnight something happened and it broke functionality. It seems that twitch injected new preroll ad (it’s not even an ad actually, its splash screen saying “Preparing your stream…”) like one @donnydark0 posted. I’m using streamlink-cli like this: streamlink -f -o output.ts https://www.twitch.tv/somestream audio_only --twitch-disable-hosting --twitch-api-header=Authentication="OAuth token" --twitch-disable-ads --hls-duration 8s And like that it return an error saying “Could not open stream <TwitchHLSStream> (No data returned from stream)” because ad is longer than 8 seconds and “twitch-disable-ads” actually doesn’t take it into account, so i have to manually adjust hls-duration length.

Quick correction of my previous post. Prefetch segments were involved in the playlist request prior to the start of the filtering, and ad date ranges for that are included:

[13:10:54.928082][stream.hls][debug] Reloading playlist
[13:10:54.954967][stream.hls_playlist][trace] #EXT-X-VERSION:3
[13:10:54.955045][stream.hls_playlist][trace] #EXT-X-TARGETDURATION:5
[13:10:54.955093][stream.hls_playlist][trace] #EXT-X-MEDIA-SEQUENCE:922
[13:10:54.955134][stream.hls_playlist][trace] #EXT-X-TWITCH-LIVE-SEQUENCE:7516
[13:10:54.955173][stream.hls_playlist][trace] #EXT-X-TWITCH-ELAPSED-SECS:14476.370
[13:10:54.955212][stream.hls_playlist][trace] #EXT-X-TWITCH-TOTAL-SECS:14510.370
[13:10:54.955250][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="playlist-creation-1668080396",CLASS="twitch-timestamp",START-DATE="2022-11-10T11:39:56.032Z",END-ON-NEXT=YES,X-TV-TWITCH-TIMESTAMP="1668080396032"
[13:10:54.955366][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="playlist-session-1668080396",CLASS="twitch-session",START-DATE="2022-11-10T11:39:56.032Z",END-ON-NEXT=YES,X-TV-TWITCH-SESSIONID="2920395312908219171"
[13:10:54.955459][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="fa450233d3884a25b53b3cd16f31895a",CLASS="twitch-assignment",START-DATE="2022-11-10T12:10:17.510Z",END-ON-NEXT=YES,X-TV-TWITCH-SERVING-ID="fa450233d3884a25b53b3cd16f31895a",X-TV-TWITCH-NODE="video-edge-c5544c.fra02",X-TV-TWITCH-CLUSTER="fra02"
[13:10:54.955551][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="source-1668080404",CLASS="twitch-stream-source",START-DATE="2022-11-10T11:40:04.877Z",END-ON-NEXT=YES,X-TV-TWITCH-STREAM-SOURCE="live"
[13:10:54.955646][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="trigger-1668080389",CLASS="twitch-trigger",START-DATE="2022-11-10T11:39:49.708Z",END-ON-NEXT=YES,X-TV-TWITCH-TRIGGER-URL="https://video-weaver.fra02.hls.ttvnw.net/trigger/SOME-LONG-BASE64-TOKEN"
[13:10:54.955761][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:21.860Z
[13:10:54.955833][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.955896][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.955955][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:23.860Z
[13:10:54.956023][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.956083][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.956136][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:25.860Z
[13:10:54.956202][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.956260][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.956313][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:27.860Z
[13:10:54.956383][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.956444][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.956497][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:29.860Z
[13:10:54.956573][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.956633][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.956686][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:31.860Z
[13:10:54.956751][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.956809][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.956861][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:33.860Z
[13:10:54.956926][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.956985][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.957041][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:35.860Z
[13:10:54.957109][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.957171][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.957223][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:37.860Z
[13:10:54.957289][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.957348][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.957401][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:39.860Z
[13:10:54.957467][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.957525][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.957577][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:41.860Z
[13:10:54.957643][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.957710][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.957763][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:43.860Z
[13:10:54.957830][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.957889][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.957941][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:45.860Z
[13:10:54.958007][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.958065][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.958117][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:47.860Z
[13:10:54.958182][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.958241][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.958298][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:49.860Z
[13:10:54.958365][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:54.958424][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.958485][stream.hls_playlist][trace] #EXT-X-TWITCH-PREFETCH:https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:54.958557][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="stitched-ad-1668082253-30168000000",CLASS="twitch-stitched-ad",START-DATE="2022-11-10T12:10:53.510Z",DURATION=30.168,X-TV-TWITCH-AD-URL="https://help.twitch.tv/s/article/ad-experience-on-twitch",X-TV-TWITCH-AD-CREATIVE-ID="2474283100494",X-TV-TWITCH-AD-AD-FORMAT="standard_video_ad",X-TV-TWITCH-AD-ROLL-TYPE="MIDROLL",X-TV-TWITCH-AD-POD-LENGTH="6",X-TV-TWITCH-AD-POD-POSITION="0",X-TV-TWITCH-AD-RADS-TOKEN="SOME-LONG-BASE64-TOKEN",X-TV-TWITCH-AD-CLICK-BEACON-ID="click7417a051-2bbb-4878-8223-a4237c9e39ad",X-TV-TWITCH-AD-LINE-ITEM-ID="2379251610298",X-TV-TWITCH-AD-CLICK-TRACKING-URL="https://example.com",X-TV-TWITCH-AD-LOUDNESS="-10.980000",X-TV-TWITCH-AD-COMMERCIAL-ID="12d2b02d5af44f6b8c23c9c3010485fa",X-TV-TWITCH-AD-AD-SESSION-ID="a5f06d79452b4333a03d99388a6bd64e"
[13:10:54.958687][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="source-1668082253",CLASS="twitch-stream-source",START-DATE="2022-11-10T12:10:53.510Z",END-ON-NEXT=YES,X-TV-TWITCH-STREAM-SOURCE="Amazon|2474283100494"
[13:10:54.958777][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082253-0",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:10:53.510Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="0"
[13:10:54.958872][stream.hls_playlist][trace] #EXT-X-DISCONTINUITY
[13:10:54.958933][stream.hls_playlist][trace] #EXT-X-TWITCH-PREFETCH:https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts

So I just had a mid-roll ad, and every single ad segment was properly filtered out by Streamlink. Prefetch segments were not included in the HLS playlist though, which means that prefetch segments are very likely the issue here, as described in #4106.

The only thing stream discontinuities cause, even if it’s a discontinuity in the same stream data and not just between the streams and an ad, are gaps in the program timestamps of the MPEG-TS bitstream, so players will handle this differently. MPV for example shows incorrect timings in the seek bar. Other players might still crash, eg. VLC, but if that’s the case, then there is literally nothing that Streamlink can do, and users will need to use a different player.

Here’s the playlist from the time when the first ad segments appeared

[13:10:56.959281][stream.hls][debug] Reloading playlist
[13:10:56.998313][stream.hls_playlist][trace] #EXT-X-VERSION:3
[13:10:56.998408][stream.hls_playlist][trace] #EXT-X-TARGETDURATION:5
[13:10:56.998458][stream.hls_playlist][trace] #EXT-X-MEDIA-SEQUENCE:923
[13:10:56.998500][stream.hls_playlist][trace] #EXT-X-TWITCH-LIVE-SEQUENCE:7517
[13:10:56.998540][stream.hls_playlist][trace] #EXT-X-TWITCH-ELAPSED-SECS:14478.370
[13:10:56.998579][stream.hls_playlist][trace] #EXT-X-TWITCH-TOTAL-SECS:14512.370
[13:10:56.998617][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="playlist-creation-1668080396",CLASS="twitch-timestamp",START-DATE="2022-11-10T11:39:56.032Z",END-ON-NEXT=YES,X-TV-TWITCH-TIMESTAMP="1668080396032"
[13:10:56.998736][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="playlist-session-1668080396",CLASS="twitch-session",START-DATE="2022-11-10T11:39:56.032Z",END-ON-NEXT=YES,X-TV-TWITCH-SESSIONID="2920395312908219171"
[13:10:56.998830][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="fa450233d3884a25b53b3cd16f31895a",CLASS="twitch-assignment",START-DATE="2022-11-10T12:10:17.510Z",END-ON-NEXT=YES,X-TV-TWITCH-SERVING-ID="fa450233d3884a25b53b3cd16f31895a",X-TV-TWITCH-NODE="video-edge-c5544c.fra02",X-TV-TWITCH-CLUSTER="fra02"
[13:10:56.998920][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="source-1668080404",CLASS="twitch-stream-source",START-DATE="2022-11-10T11:40:04.877Z",END-ON-NEXT=YES,X-TV-TWITCH-STREAM-SOURCE="live"
[13:10:56.999016][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="trigger-1668080389",CLASS="twitch-trigger",START-DATE="2022-11-10T11:39:49.708Z",END-ON-NEXT=YES,X-TV-TWITCH-TRIGGER-URL="https://video-weaver.fra02.hls.ttvnw.net/trigger/SOME-LONG-BASE64-TOKEN"
[13:10:56.999124][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:23.860Z
[13:10:56.999193][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:56.999255][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:56.999323][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:25.860Z
[13:10:56.999395][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:56.999456][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:56.999510][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:27.860Z
[13:10:56.999576][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:56.999635][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:56.999688][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:29.860Z
[13:10:56.999754][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:56.999813][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:56.999876][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:31.860Z
[13:10:56.999946][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:57.000005][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.000058][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:33.860Z
[13:10:57.000126][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:57.000185][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.000237][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:35.860Z
[13:10:57.000302][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:57.000361][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.000413][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:37.860Z
[13:10:57.000479][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:57.000538][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.000594][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:39.860Z
[13:10:57.000660][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:57.000719][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.000771][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:41.860Z
[13:10:57.000835][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:57.000894][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.000946][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:43.860Z
[13:10:57.001011][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:57.001070][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.001126][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:45.860Z
[13:10:57.001193][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:57.001252][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.001304][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:47.860Z
[13:10:57.001369][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:57.001427][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.001478][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:49.860Z
[13:10:57.001543][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:57.001602][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.001653][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:51.860Z
[13:10:57.001718][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:10:57.001776][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.001841][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="stitched-ad-1668082253-30168000000",CLASS="twitch-stitched-ad",START-DATE="2022-11-10T12:10:53.510Z",DURATION=30.168,X-TV-TWITCH-AD-AD-FORMAT="standard_video_ad",X-TV-TWITCH-AD-URL="https://help.twitch.tv/s/article/ad-experience-on-twitch",X-TV-TWITCH-AD-CREATIVE-ID="2474283100494",X-TV-TWITCH-AD-LINE-ITEM-ID="2379251610298",X-TV-TWITCH-AD-CLICK-TRACKING-URL="https://example.com",X-TV-TWITCH-AD-POD-POSITION="0",X-TV-TWITCH-AD-ROLL-TYPE="MIDROLL",X-TV-TWITCH-AD-RADS-TOKEN="SOME-LONG-BASE64-TOKEN",X-TV-TWITCH-AD-AD-SESSION-ID="a5f06d79452b4333a03d99388a6bd64e",X-TV-TWITCH-AD-CLICK-BEACON-ID="click7417a051-2bbb-4878-8223-a4237c9e39ad",X-TV-TWITCH-AD-LOUDNESS="-10.980000",X-TV-TWITCH-AD-COMMERCIAL-ID="12d2b02d5af44f6b8c23c9c3010485fa",X-TV-TWITCH-AD-POD-LENGTH="6"
[13:10:57.001968][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="source-1668082253",CLASS="twitch-stream-source",START-DATE="2022-11-10T12:10:53.510Z",END-ON-NEXT=YES,X-TV-TWITCH-STREAM-SOURCE="Amazon|2474283100494"
[13:10:57.002057][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082253-0",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:10:53.510Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="0"
[13:10:57.002146][stream.hls_playlist][trace] #EXT-X-DISCONTINUITY
[13:10:57.002195][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:53.510Z
[13:10:57.002259][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:10:57.002319][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.002377][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:55.510Z
[13:10:57.002445][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:10:57.002503][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:10:57.002633][stream.hls][debug] Adding segment 939 to queue
[13:10:57.049011][stream.hls][info] Filtering out segments and pausing stream output

And here’s the continuation of the regular stream:

[13:14:02.064693][stream.hls][debug] Reloading playlist
[13:14:02.113725][stream.hls_playlist][trace] #EXT-X-VERSION:3
[13:14:02.113839][stream.hls_playlist][trace] #EXT-X-TARGETDURATION:5
[13:14:02.113892][stream.hls_playlist][trace] #EXT-X-MEDIA-SEQUENCE:938
[13:14:02.113937][stream.hls_playlist][trace] #EXT-X-TWITCH-ELAPSED-SECS:14508.370
[13:14:02.113980][stream.hls_playlist][trace] #EXT-X-TWITCH-TOTAL-SECS:14697.378
[13:14:02.114021][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="playlist-creation-1668080396",CLASS="twitch-timestamp",START-DATE="2022-11-10T11:39:56.032Z",END-ON-NEXT=YES,X-TV-TWITCH-TIMESTAMP="1668080396032"
[13:14:02.114140][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="playlist-session-1668080396",CLASS="twitch-session",START-DATE="2022-11-10T11:39:56.032Z",END-ON-NEXT=YES,X-TV-TWITCH-SESSIONID="2920395312908219171"
[13:14:02.114241][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="fa450233d3884a25b53b3cd16f31895a",CLASS="twitch-assignment",START-DATE="2022-11-10T12:10:17.510Z",END-ON-NEXT=YES,X-TV-TWITCH-SERVING-ID="fa450233d3884a25b53b3cd16f31895a",X-TV-TWITCH-NODE="video-edge-c5544c.fra02",X-TV-TWITCH-CLUSTER="fra02"
[13:14:02.114347][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="stitched-ad-1668082253-30168000000",CLASS="twitch-stitched-ad",START-DATE="2022-11-10T12:10:53.510Z",DURATION=30.168,X-TV-TWITCH-AD-CLICK-BEACON-ID="click7417a051-2bbb-4878-8223-a4237c9e39ad",X-TV-TWITCH-AD-LOUDNESS="-10.980000",X-TV-TWITCH-AD-COMMERCIAL-ID="12d2b02d5af44f6b8c23c9c3010485fa",X-TV-TWITCH-AD-RADS-TOKEN="SOME-LONG-BASE64-TOKEN",X-TV-TWITCH-AD-ROLL-TYPE="MIDROLL",X-TV-TWITCH-AD-URL="https://help.twitch.tv/s/article/ad-experience-on-twitch",X-TV-TWITCH-AD-CREATIVE-ID="2474283100494",X-TV-TWITCH-AD-LINE-ITEM-ID="2379251610298",X-TV-TWITCH-AD-CLICK-TRACKING-URL="https://example.com",X-TV-TWITCH-AD-AD-FORMAT="standard_video_ad",X-TV-TWITCH-AD-POD-LENGTH="6",X-TV-TWITCH-AD-POD-POSITION="0",X-TV-TWITCH-AD-AD-SESSION-ID="a5f06d79452b4333a03d99388a6bd64e"
[13:14:02.114483][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="source-1668082253",CLASS="twitch-stream-source",START-DATE="2022-11-10T12:10:53.510Z",END-ON-NEXT=YES,X-TV-TWITCH-STREAM-SOURCE="Amazon|2474283100494"
[13:14:02.114599][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="trigger-1668080389",CLASS="twitch-trigger",START-DATE="2022-11-10T11:39:49.708Z",END-ON-NEXT=YES,X-TV-TWITCH-TRIGGER-URL="https://video-weaver.fra02.hls.ttvnw.net/trigger/SOME-LONG-BASE64-TOKEN"
[13:14:02.114716][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082253-0",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:10:53.510Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="0"
[13:14:02.114812][stream.hls_playlist][trace] #EXT-X-DISCONTINUITY
[13:14:02.114863][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:53.510Z
[13:14:02.114928][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.115000][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.115066][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:55.510Z
[13:14:02.115138][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.115202][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.115266][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:57.510Z
[13:14:02.115339][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.115403][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.115471][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082259-1",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:10:59.510Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="1"
[13:14:02.115565][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:10:59.510Z
[13:14:02.115638][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.115700][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.115763][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:01.510Z
[13:14:02.115839][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.115898][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.115957][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:03.510Z
[13:14:02.116032][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.116090][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.116152][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:05.510Z
[13:14:02.116229][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.116288][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.116350][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082267-2",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:11:07.510Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="2"
[13:14:02.116445][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:07.510Z
[13:14:02.116527][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.116593][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.116655][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:09.510Z
[13:14:02.116725][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.116787][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.116850][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:11.510Z
[13:14:02.116922][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.116985][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.117043][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:13.510Z
[13:14:02.117113][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.117177][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.117235][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082275-3",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:11:15.510Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="3"
[13:14:02.117327][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:15.510Z
[13:14:02.117399][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.117460][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.117523][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:17.510Z
[13:14:02.117592][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.117655][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.117717][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:19.510Z
[13:14:02.117789][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.117852][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.117911][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:21.510Z
[13:14:02.117980][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.118045][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.118104][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082283-4",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:11:23.510Z",DURATION=0.168,X-TV-TWITCH-AD-QUARTILE="4"
[13:14:02.118202][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:23.510Z
[13:14:02.118276][stream.hls_playlist][trace] #EXTINF:0.168,Amazon|2474283100494
[13:14:02.118343][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.118417][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="stitched-ad-1668082283-30168000000",CLASS="twitch-stitched-ad",START-DATE="2022-11-10T12:11:23.678Z",DURATION=30.168,X-TV-TWITCH-AD-URL="https://help.twitch.tv/s/article/ad-experience-on-twitch",X-TV-TWITCH-AD-CREATIVE-ID="2474283100494",X-TV-TWITCH-AD-LINE-ITEM-ID="2379251610298",X-TV-TWITCH-AD-LOUDNESS="-10.980000",X-TV-TWITCH-AD-COMMERCIAL-ID="12d2b02d5af44f6b8c23c9c3010485fa",X-TV-TWITCH-AD-POD-LENGTH="6",X-TV-TWITCH-AD-AD-SESSION-ID="a5f06d79452b4333a03d99388a6bd64e",X-TV-TWITCH-AD-CLICK-BEACON-ID="click125b3c82-0f94-405f-a5b2-0fe3c4de3258",X-TV-TWITCH-AD-CLICK-TRACKING-URL="https://example.com",X-TV-TWITCH-AD-AD-FORMAT="standard_video_ad",X-TV-TWITCH-AD-POD-POSITION="1",X-TV-TWITCH-AD-ROLL-TYPE="MIDROLL",X-TV-TWITCH-AD-RADS-TOKEN="SOME-LONG-BASE64-TOKEN"
[13:14:02.118543][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082283-0",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:11:23.678Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="0"
[13:14:02.118641][stream.hls_playlist][trace] #EXT-X-DISCONTINUITY
[13:14:02.118692][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:23.678Z
[13:14:02.118759][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.118825][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.118890][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:25.678Z
[13:14:02.118965][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.119024][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.119091][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:27.678Z
[13:14:02.119168][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.119227][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.119294][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082289-1",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:11:29.678Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="1"
[13:14:02.119387][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:29.678Z
[13:14:02.119463][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.119526][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.119593][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:31.678Z
[13:14:02.119662][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.119725][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.119796][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:33.678Z
[13:14:02.119873][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.119937][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.120001][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:35.678Z
[13:14:02.120070][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.120132][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.120194][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082297-2",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:11:37.678Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="2"
[13:14:02.120286][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:37.678Z
[13:14:02.120363][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.120426][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.120487][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:39.678Z
[13:14:02.120559][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.120620][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.120690][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:41.678Z
[13:14:02.120762][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.120824][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.120885][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:43.678Z
[13:14:02.120955][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.121016][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.121078][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082305-3",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:11:45.678Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="3"
[13:14:02.121175][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:45.678Z
[13:14:02.121248][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.121311][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.121378][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:47.678Z
[13:14:02.121449][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.121511][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.121573][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:49.678Z
[13:14:02.121643][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.121704][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.121766][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:51.678Z
[13:14:02.121835][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.121897][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.121958][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082313-4",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:11:53.678Z",DURATION=0.168,X-TV-TWITCH-AD-QUARTILE="4"
[13:14:02.122055][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:53.678Z
[13:14:02.122132][stream.hls_playlist][trace] #EXTINF:0.168,Amazon|2474283100494
[13:14:02.122195][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.122272][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="stitched-ad-1668082313-30168000000",CLASS="twitch-stitched-ad",START-DATE="2022-11-10T12:11:53.846Z",DURATION=30.168,X-TV-TWITCH-AD-AD-SESSION-ID="a5f06d79452b4333a03d99388a6bd64e",X-TV-TWITCH-AD-URL="https://help.twitch.tv/s/article/ad-experience-on-twitch",X-TV-TWITCH-AD-CLICK-BEACON-ID="click21c538ce-4457-47d0-9ccb-8f9e89f53742",X-TV-TWITCH-AD-AD-FORMAT="standard_video_ad",X-TV-TWITCH-AD-LOUDNESS="-10.980000",X-TV-TWITCH-AD-COMMERCIAL-ID="12d2b02d5af44f6b8c23c9c3010485fa",X-TV-TWITCH-AD-POD-LENGTH="6",X-TV-TWITCH-AD-ROLL-TYPE="MIDROLL",X-TV-TWITCH-AD-CREATIVE-ID="2474283100494",X-TV-TWITCH-AD-LINE-ITEM-ID="2379251610298",X-TV-TWITCH-AD-CLICK-TRACKING-URL="https://example.com",X-TV-TWITCH-AD-POD-POSITION="2",X-TV-TWITCH-AD-RADS-TOKEN="SOME-LONG-BASE64-TOKEN"
[13:14:02.122400][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082313-0",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:11:53.846Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="0"
[13:14:02.122493][stream.hls_playlist][trace] #EXT-X-DISCONTINUITY
[13:14:02.122544][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:53.846Z
[13:14:02.122610][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.122673][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.122740][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:55.846Z
[13:14:02.122811][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.122877][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.122943][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:57.846Z
[13:14:02.123014][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.123082][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.123147][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082319-1",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:11:59.846Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="1"
[13:14:02.123248][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:11:59.846Z
[13:14:02.123322][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.123384][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.123449][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:01.846Z
[13:14:02.123519][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.123582][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.123651][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:03.846Z
[13:14:02.123723][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.123785][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.123850][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:05.846Z
[13:14:02.123920][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.123981][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.124047][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082327-2",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:12:07.846Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="2"
[13:14:02.124144][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:07.846Z
[13:14:02.124216][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.124279][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.124349][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:09.846Z
[13:14:02.124420][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.124483][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.124549][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:11.846Z
[13:14:02.124619][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.124681][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.124746][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:13.846Z
[13:14:02.124815][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.124877][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.124942][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082335-3",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:12:15.846Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="3"
[13:14:02.125033][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:15.846Z
[13:14:02.125110][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.125173][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.125240][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:17.846Z
[13:14:02.125310][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.125372][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.125438][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:19.846Z
[13:14:02.125508][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.125569][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.125634][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:21.846Z
[13:14:02.125703][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.125764][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.125837][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082343-4",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:12:23.846Z",DURATION=0.168,X-TV-TWITCH-AD-QUARTILE="4"
[13:14:02.125931][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:23.846Z
[13:14:02.126004][stream.hls_playlist][trace] #EXTINF:0.168,Amazon|2474283100494
[13:14:02.126065][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.126144][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="stitched-ad-1668082344-30168000000",CLASS="twitch-stitched-ad",START-DATE="2022-11-10T12:12:24.014Z",DURATION=30.168,X-TV-TWITCH-AD-CLICK-BEACON-ID="click125b3c82-0f94-405f-a5b2-0fe3c4de3258",X-TV-TWITCH-AD-CLICK-TRACKING-URL="https://example.com",X-TV-TWITCH-AD-AD-FORMAT="standard_video_ad",X-TV-TWITCH-AD-RADS-TOKEN="SOME-LONG-BASE64-TOKEN",X-TV-TWITCH-AD-POD-LENGTH="6",X-TV-TWITCH-AD-POD-POSITION="3",X-TV-TWITCH-AD-ROLL-TYPE="MIDROLL",X-TV-TWITCH-AD-URL="https://help.twitch.tv/s/article/ad-experience-on-twitch",X-TV-TWITCH-AD-CREATIVE-ID="2474283100494",X-TV-TWITCH-AD-LINE-ITEM-ID="2379251610298",X-TV-TWITCH-AD-LOUDNESS="-10.980000",X-TV-TWITCH-AD-COMMERCIAL-ID="12d2b02d5af44f6b8c23c9c3010485fa",X-TV-TWITCH-AD-AD-SESSION-ID="a5f06d79452b4333a03d99388a6bd64e"
[13:14:02.126266][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082344-0",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:12:24.014Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="0"
[13:14:02.126359][stream.hls_playlist][trace] #EXT-X-DISCONTINUITY
[13:14:02.126410][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:24.014Z
[13:14:02.126475][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.126555][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.126632][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:26.014Z
[13:14:02.126704][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.126766][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.126835][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:28.014Z
[13:14:02.126904][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.126966][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.127034][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082350-1",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:12:30.014Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="1"
[13:14:02.127132][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:30.014Z
[13:14:02.127204][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.127267][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.127342][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:32.014Z
[13:14:02.127414][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.127477][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.127547][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:34.014Z
[13:14:02.127617][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.127680][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.127749][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:36.014Z
[13:14:02.127819][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.127882][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.127951][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082358-2",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:12:38.014Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="2"
[13:14:02.128043][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:38.014Z
[13:14:02.128124][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.128225][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.128306][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:40.014Z
[13:14:02.128383][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.128510][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.128582][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:42.014Z
[13:14:02.128653][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.128716][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.128784][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:44.014Z
[13:14:02.128871][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.128962][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.129039][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082366-3",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:12:46.014Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="3"
[13:14:02.129135][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:46.014Z
[13:14:02.129213][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.129274][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.129344][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:48.014Z
[13:14:02.129420][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.129479][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.129547][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:50.014Z
[13:14:02.129623][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.129682][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.129754][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:52.014Z
[13:14:02.129844][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.129937][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.130020][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082374-4",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:12:54.014Z",DURATION=0.168,X-TV-TWITCH-AD-QUARTILE="4"
[13:14:02.130121][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:54.014Z
[13:14:02.130203][stream.hls_playlist][trace] #EXTINF:0.168,Amazon|2474283100494
[13:14:02.130331][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.130417][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="stitched-ad-1668082374-30168000000",CLASS="twitch-stitched-ad",START-DATE="2022-11-10T12:12:54.182Z",DURATION=30.168,X-TV-TWITCH-AD-CLICK-BEACON-ID="click21c538ce-4457-47d0-9ccb-8f9e89f53742",X-TV-TWITCH-AD-LINE-ITEM-ID="2379251610298",X-TV-TWITCH-AD-POD-LENGTH="6",X-TV-TWITCH-AD-ROLL-TYPE="MIDROLL",X-TV-TWITCH-AD-URL="https://help.twitch.tv/s/article/ad-experience-on-twitch",X-TV-TWITCH-AD-CREATIVE-ID="2474283100494",X-TV-TWITCH-AD-CLICK-TRACKING-URL="https://example.com",X-TV-TWITCH-AD-AD-FORMAT="standard_video_ad",X-TV-TWITCH-AD-LOUDNESS="-10.980000",X-TV-TWITCH-AD-COMMERCIAL-ID="12d2b02d5af44f6b8c23c9c3010485fa",X-TV-TWITCH-AD-POD-POSITION="4",X-TV-TWITCH-AD-RADS-TOKEN="SOME-LONG-BASE64-TOKEN",X-TV-TWITCH-AD-AD-SESSION-ID="a5f06d79452b4333a03d99388a6bd64e"
[13:14:02.130548][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082374-0",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:12:54.182Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="0"
[13:14:02.130648][stream.hls_playlist][trace] #EXT-X-DISCONTINUITY
[13:14:02.130735][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:54.182Z
[13:14:02.130830][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.130897][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.130971][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:56.182Z
[13:14:02.131047][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.131110][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.131182][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:12:58.182Z
[13:14:02.131252][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.131315][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.131388][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082380-1",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:13:00.182Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="1"
[13:14:02.131481][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:00.182Z
[13:14:02.131554][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.131617][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.131695][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:02.182Z
[13:14:02.131767][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.131830][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.131902][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:04.182Z
[13:14:02.131972][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.132035][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.132106][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:06.182Z
[13:14:02.132176][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.132238][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.132314][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082388-2",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:13:08.182Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="2"
[13:14:02.132410][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:08.182Z
[13:14:02.132483][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.132545][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.132619][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:10.182Z
[13:14:02.132696][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.132755][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.132826][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:12.182Z
[13:14:02.132901][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.132959][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.133029][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:14.182Z
[13:14:02.133107][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.133166][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.133253][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082396-3",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:13:16.182Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="3"
[13:14:02.133347][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:16.182Z
[13:14:02.133420][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.133482][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.133556][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:18.182Z
[13:14:02.133626][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.133689][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.133761][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:20.182Z
[13:14:02.133832][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.133893][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.133969][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:22.182Z
[13:14:02.134041][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.134104][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.134177][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082404-4",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:13:24.182Z",DURATION=0.168,X-TV-TWITCH-AD-QUARTILE="4"
[13:14:02.134271][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:24.182Z
[13:14:02.134344][stream.hls_playlist][trace] #EXTINF:0.168,Amazon|2474283100494
[13:14:02.134406][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.134493][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="stitched-ad-1668082404-30168000000",CLASS="twitch-stitched-ad",START-DATE="2022-11-10T12:13:24.350Z",DURATION=30.168,X-TV-TWITCH-AD-CLICK-BEACON-ID="click125b3c82-0f94-405f-a5b2-0fe3c4de3258",X-TV-TWITCH-AD-CREATIVE-ID="2474283100494",X-TV-TWITCH-AD-LINE-ITEM-ID="2379251610298",X-TV-TWITCH-AD-CLICK-TRACKING-URL="https://example.com",X-TV-TWITCH-AD-POD-POSITION="5",X-TV-TWITCH-AD-ROLL-TYPE="MIDROLL",X-TV-TWITCH-AD-AD-SESSION-ID="a5f06d79452b4333a03d99388a6bd64e",X-TV-TWITCH-AD-URL="https://help.twitch.tv/s/article/ad-experience-on-twitch",X-TV-TWITCH-AD-AD-FORMAT="standard_video_ad",X-TV-TWITCH-AD-LOUDNESS="-10.980000",X-TV-TWITCH-AD-COMMERCIAL-ID="12d2b02d5af44f6b8c23c9c3010485fa",X-TV-TWITCH-AD-POD-LENGTH="6",X-TV-TWITCH-AD-RADS-TOKEN="SOME-LONG-BASE64-TOKEN"
[13:14:02.134622][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082404-0",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:13:24.350Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="0"
[13:14:02.134716][stream.hls_playlist][trace] #EXT-X-DISCONTINUITY
[13:14:02.134768][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:24.350Z
[13:14:02.134835][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.134898][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.134976][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:26.350Z
[13:14:02.135048][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.135110][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.135186][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:28.350Z
[13:14:02.135256][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.135318][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.135398][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082410-1",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:13:30.350Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="1"
[13:14:02.135492][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:30.350Z
[13:14:02.135565][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.135627][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.135704][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:32.350Z
[13:14:02.135780][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.135839][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.135914][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:34.350Z
[13:14:02.135989][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.136048][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.136123][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:36.350Z
[13:14:02.136199][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.136257][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.136341][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082418-2",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:13:38.350Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="2"
[13:14:02.136435][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:38.350Z
[13:14:02.136514][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.136579][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.136656][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:40.350Z
[13:14:02.136728][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.136791][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.136867][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:42.350Z
[13:14:02.136936][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.136998][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.137078][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:44.350Z
[13:14:02.137150][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.137213][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.137290][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082426-3",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:13:46.350Z",DURATION=2.000,X-TV-TWITCH-AD-QUARTILE="3"
[13:14:02.137383][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:46.350Z
[13:14:02.137455][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.137517][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.137595][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:48.350Z
[13:14:02.137665][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.137726][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.137810][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:50.350Z
[13:14:02.137882][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.137946][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.138022][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:52.350Z
[13:14:02.138093][stream.hls_playlist][trace] #EXTINF:2.000,Amazon|2474283100494
[13:14:02.138156][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.138232][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="quartile-1668082434-4",CLASS="twitch-ad-quartile",START-DATE="2022-11-10T12:13:54.350Z",DURATION=0.168,X-TV-TWITCH-AD-QUARTILE="4"
[13:14:02.138331][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:54.350Z
[13:14:02.138406][stream.hls_playlist][trace] #EXTINF:0.168,Amazon|2474283100494
[13:14:02.138468][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.138546][stream.hls_playlist][trace] #EXT-X-DATERANGE:ID="source-1668082434",CLASS="twitch-stream-source",START-DATE="2022-11-10T12:13:54.518Z",END-ON-NEXT=YES,X-TV-TWITCH-STREAM-SOURCE="live"
[13:14:02.138639][stream.hls_playlist][trace] #EXT-X-DISCONTINUITY
[13:14:02.138690][stream.hls_playlist][trace] #EXT-X-TWITCH-LIVE-SEQUENCE:7623
[13:14:02.138734][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:54.518Z
[13:14:02.138798][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:14:02.138861][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.138941][stream.hls_playlist][trace] #EXT-X-PROGRAM-DATE-TIME:2022-11-10T12:13:56.518Z
[13:14:02.139012][stream.hls_playlist][trace] #EXTINF:2.000,live
[13:14:02.139074][stream.hls_playlist][trace] https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.139161][stream.hls_playlist][trace] #EXT-X-TWITCH-PREFETCH:https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.139243][stream.hls_playlist][trace] #EXT-X-TWITCH-PREFETCH:https://video-edge-c5544c.fra02.abs.hls.ttvnw.net/v1/segment/SOME-LONG-BASE64-TOKEN.ts
[13:14:02.139469][stream.hls][debug] Adding segment 1037 to queue
[13:14:03.890847][stream.hls][debug] Segment 1036 complete
[13:14:03.891372][stream.hls][info] Resuming stream output

It’s completely irrelevant which application you’re using to launch Streamlink. This is not a Chatterino or other third party issue tracker. A debug log is required for any kind of plugin issue, as clearly stated in the issue template which you’ve completely ignored.

I have already shown you that ads get properly filtered out, if they occur, which they do now. The reason why you weren’t seeing any ads is that Twitch simply didn’t embed them into the stream. Simple as that. I have also already posted a link to the docs where you can read everything in detail, including why your version of VLC is crashing. If you’re having issues setting certain parameters from any third party frontends which launch Streamlink, then you can also set the options in one of Streamlink’s config files, which you can also read about in the documentation.

That’s all there is to say about that and any further discussion is unnecessary and will generate unnecessary noise.

Sorry for the harsh tone, but I am 100% sure that once I come back in a couple of hours, that this issue tracker, including the one of Streamlink Twitch GUI, as well as the discussion forum and Gitter/Matrix channels will be spammed by people who simply don’t read the docs or are otherwise completely unaware, and I will have to deal with all of that. Also on reddit already, which is an unofficial subreddit anyway, with comments from totally clueless users. Every time Twitch changes something, regardless whether Streamlink or Streamlink Twitch GUI is already prepared for it, stuff like this happens, and it steals my time, which is annoying. Read the documentation, especially if you’re calling yourself “tech illiterate”.