How does Twitch do it? They're super aggressive and even using third party clients that do a good job and not displaying ads, you still get an occasional "commercial break" screen where they're not serving you the content, or the ad, just a "let's all go to the lobby" screen.
Twitch puts the ads directly in the HLS stream, but as seperate segments from the content (a HLS stream is made of many small video files, on twitch they're about 2s long). They're trivial to recognize and filter out (they're actually explicitly tagged as ad segments) but it still won't serve you the actual stream you were trying to watch - the ad segments override it. The best you can do is just block until the first non-ad segment arrives.
Those clients could be doing a better job - when twitch starts playing an ad on the main stream, they also provide a secondary stream that shows the actual content.