Open ShaNam69 opened 3 years ago
I can confirm that, had to disable the extension to allow one pre-roll ad to be able to watch for more than 10 minutes without interruptions. Hopefully it's an easy fix.
Hi @Morten79 , i have the same Problem but i just need to wait a bit Time and then i get back to the stream. I start to hate Twitch and thinking to leave the shit....
You guys do an amazing work and i hope you will finde a new solution to get away this content blocking ads. <3
GQL change parameter in embeded player "playerType" : "embed" -> "popout"
Issue 11 got revived for that issue already, not sure if we need 2 issues for the same problem. Edit: Nvm, got moved to #20 at some point or am i confused?
Same issue here on firefox, no matter if you disable Ublock, it still detects the extension when the streamer hits the ads button.
It happens at regular intervals as well for streams that aren't partnered, get it roughly every 10 minutes for about 15 seconds before it returns to the normal stream. The purple screen also appears on partnered streams even if you're subscribed to them.
Wasn't using the extension but I was using the embedly iframe script and getting the same issue
Have no extensions or scripts installed - watching vanilla twitch and haven't got a pre-roll/mid-roll on any stream for many hours
Doing fine now, I just reinstalled it through the Chrome webstore, might be just me.
edit: just kidding lol, still getting it now
Can +1 this issue. Getting the purple screen and duplicated in the small player on regular intervals in chrome.
Doing fine now, I just reinstalled it through the Chrome webstore, might be just me.
Just tried it, didn't work for me.
Really hate how predatory Twitch is on its advertisements now.
can confirm that it isnt blocking twitch ads anymore :(
sometimes its blocking them other times not i got this https://i.imgur.com/TtSqjGa.png on greeks stream and it wont go away lol
Are all of you using Chrome? I'm on Firefox, using the extension, and have yet to have any problems.
Are all of you using Chrome? I'm on Firefox, using the extension, and have yet to have any problems.
I am on chrome experiencing this issue sometimes.
Looks like they are rolling it out gradually to streams. I poked around with Firefox's network inspector and I can see it making graphql queries during the purple screen.
It first makes a GET to their edge server. In my case it was:
https://video-edge-7e9f0c.sea01.abs.hls.ttvnw.net/v1/segment/CqIFWjpO84NYY472hVqVKlF9ThYOePpK9KZC3t9sVCkoE81VkGAzjmXMOsSYQfEFCxeMobE2rUvVVI_Wmt-spznu923BzIEVUlqfwK8V3kROVgXyuUfdduB990g5cqeTiqFb1_aGOTzTXbSgQlr_IGAByqu520YzZL4WM8N8fdvawht74Z5_tIHR5iSfzE2rLahcztumnZaiMHJPWy7cyJD-QJPRS3UgIyL8HGd5VxviZXet0VgylTlUmsHjBawchmitY2o5Tv7cSEIxB3xEe3C_v6C8TjHT3vkcGy2k1OlvcXxAZMHP8byNtU1P5jIw2oOAVCKHb6n7pFfVUmCw0xCNNd9aDHEOPLPG-mEw53nMk0l4lAl40dmRoHu0q9TaC0-0yVvs1u7dU7St0QPFHkUgWnXkOy0PKSFaovi_UtcXFXKMAdQziMycdNfGEFYvd987_WbG06KqkPX_QKl3us_eDryCjGdomMPwJiIx9mDZLTBWyIsniv5yBRqGnl_3YcoolPWsgDmkmYCK8r0LbmjXlS_uOYt5Q04IckSmSHU69FBMFa3m-3sV7VP9x_yVblJwRu5CCNddlo_-APktQZPpVk8mtWReX2p4qmb2T_AiPUdVraU4xapkN4NGjze5QdV6gWcHFJ5-HAqWdutmVxrt6BTmkQdYFDzpk6D_awW0_ZoK3nfkC5C6hMOb2IK9GzdF8glcWCdmZId2o6BiklJpyI4GTXDqGXSo5a3WL30I_3o94Gz12s6xop_bbfWWJEZb2FwcdZ4aaY7Ing23cFYQMkHP5NMMugIEVpO8fuj3wlPs8jRlFm0iGI_OWSBWF-MeFonL0pIPBoPnWsMF5pL3PswVzsb7WB-2DvXh-1qaTmMbHRzq2WAnoApWdDEVwF_iL-sSEAN__S0r6kLLVN2WA3WRYHEaDGQRH-H5mjCYYTIqAQ.ts
This .ts
file is the purple screen we are getting. You can actually download it and play it in VLC or something. It's not a typescript file but just a segment/chunk for HLS.
Then while the purple screen is active, we get 4 more "heartbeat" gql POST requests for ClientSideAdEventHandling_RecordAdEvent
. It send a JSON payload every 25% of the ad:
{"player_mute":true,"player_volume":0.1600000113,"visible":true,"ad_id":"","ad_position":1,"duration":29,"creative_id":"2474283100403","total_ads":1,"order_id":"","line_item_id":"2379251610203","roll_type":"midroll","stitched":true}
Until it's finished, then it finally POSTs this gql request:
{
"operationName": "ClientSideAdEventHandling_RecordAdEvent",
"variables": {
"input": {
"eventName": "video_ad_pod_complete",
"eventPayload": "{\"stitched\":true,\"roll_type\":\"midroll\",\"player_mute\":true,\"player_volume\":0.1600000113,\"visible\":true}",
}
}
So I wonder if we can either block the initial GET or spoof the video_ad_pod_complete
event. I'm not familiar with gql so this is more of a braindump with observations I was able to make at first glance. Hopefully this can help others, or at least point in the right direction. I will sleep on it and poke around more tomorrow 😬
I think I know why this is happening, it seems like Twitch is indeed rolling out their new "Multiplayer" ad experience.
This is just a guess, but I am pretty sure this is why it's happening.
Learn more about Multiplayer ads ==> https://help.twitch.tv/s/article/multiplayer-ads
(above is from my Affiliate dashboard, where you can see my channel has the option to enable/disable Multiplayer ads for subscribers)
I am on Edge and I also have the message on the screen.
So on top of an ad we're also gonna get the stream blocked by an annoying popup to participate in a poll. I don't even asnswer polls for $5 giftcards
I also have third party message on Twitch since today, Twitch has allowed new developper's ressource to block this extension :(
So the third party message only seems to show after watching the stream for a few minutes. Would it be possible to first send a request for the "normal" stream feed with ads, then immediately request the "embed" stream, start playing that one, then 30 seconds later switch back to the "normal" stream feed? This would at the very least block pre-roll ads.
Main Reddit link on the topic: https://www.reddit.com/r/Adblock/ - but be very careful regarding suspicious Java scripts / Extensions!
https://www.reddit.com/r/Adblock/comments/kc2bc7/ttv_aderaser_new_twitchtv_ad_blocker_that_also/ It not working any more but the author says he's doing all he can to find a new solution just as here. Ads on Twitch isn't the end of the world, but it's damn annoying, especially when you're gotten used to watch Twitch for over 30 days without ads :P . People both here and other places are working on new solutions, just be little patient and it'll be better soon I'm pretty sure :D
any updates ?
Looks like the creation of that other extension posted to /r/adblock might have spurred this along. That's unfortunate.
After bouncing around streams all morning, I haven't received a single purple screen. I kept an eye on the network inspector and found this gql POST fired off:
{
"reason_channeladfree": false,
"reason_channelsub": false,
"reason_vod_ads_disabled": false,
"reason_bounty": false,
"reason_vod_midroll": false,
"reason_stream_broadcaster": false,
"reason_embed_promo": false,
"reason_p4m": false,
"reason_lt": false,
"reason_raid": false,
"reason_midroll_during_preroll": false,
"reason_ratelimit": false,
"reason_short_vod": false,
"reason_turbo": false,
"reason_vod_creator": false,
"reason_wp": false,
"reason_zagd": false,
"reason_zagu": false,
"reason_midlimit": false,
"reason_amazon_product_page": false,
"reason_animated_thumbnails": false,
"reason_creative_player": false,
"reason_dashboard": false,
"reason_facebook": false,
"reason_frontpage": false,
"reason_highlighter": false,
"reason_onboarding": false,
"reason_pbyp": false,
"reason_squad_stream_secondary_player": false,
"reason_thunderdome": false,
"reason_embed": true,
"twitch_correlator": "knsTswudR9gAAPVof6BwX2VYmwHu23HI",
"ad_session_id": "aaiWcx2WvYKuhK0ofe9NjQyJAYKwYC",
"roll_type": "preroll",
"time_break": 30
}
It looks like this fires when an ad roll is initiated, but the viewer is exempt (for any one of the reasons returned from the gql request). So in my case, I wasn't shown a preroll ad because reason_embed
returned true
. Of course this only evaluates to true because I'm using this addon to make it seem like it's an embedded player.
My theory is that they accidentally turned this on for all player types, and rolled it back some time late last night/this morning.
My question for other people reading this thread: Are you still receiving the purple screen with ttv-ublock running after 12/20? If nothing else, at least we are provided a list of targets from Twitch itself. But for the time being, I haven't had any purple screens today. Let's hope it stays that way 🤞
I'm still receiving the purple screen using Google Chrome. I completely restarted Chrome to make sure, and it's still showing me the purple screen.
My question for other people reading this thread: Are you still receiving the purple screen with ttv-ublock running after 12/20?
What do you mean after 12/20? I just noticed this behavior today which is 12/20. I was using Twitch last night and the night before and never ran into the issue.
still receiving it, firefox
still getting it on brave (chromium)
I am getting the purple screen very aggressively today (12/20) on the Google Chrome dev branch with the latest version of this extension. It made it impossible for me to watch Twitch so I hope this is resolved soon.
My question for other people reading this thread: Are you still receiving the purple screen with ttv-ublock running after 12/20?
12/20 was the first time I've had this issue. Looks like a slow rollout.
@strong-code nice find. There are a couple of values there which don't give ads (e.g. pbyp), though embed definitely does. EDIT: Well pbyp gives ads now also.
Due to Chrome's API limitations on modifying request bodies a proxy desktop application may be the way to go.
I don't know if that can help or not, but I was watching a stream and https://imgur.com/TtSqjGa popped up, then I've tried moving to other streams but I was getting that purple screen everywhere. Then I went to the stream I was initially watching and after a few the purple screen disappeared. It seems like Twitch is running ads on the whole platform at the same time and after it's finished the purple screen go away.
@revzim What's your technique for circumventing the purple warning screen? Are you using a custom video player that could potentially be integrated into an extension to replace the default Twitch player?
@revzim I tried your app and I'm getting infinite loading ("loading ttv-viewer..."), any idea what could cause it?
getting purple screen warning with opera.
21/12 14:00UT purple screens abound, hope we have a fix soon.
haven't seen this yet even on popular streams like cohhcarnage and xqc my setup is Firefox + uBO + uMatrix + Privacy Badger + this app can people affected reply with channels where you've seen this banner?
also nothing from channels in reply directly below, at least during prerolls
Fresh, encountered the purple screen right now: https://www.twitch.tv/beatportofficial https://www.twitch.tv/simplynick https://www.twitch.tv/annamaja
I tried sending a video_ad_pod_complete
event as soon as we get an operationName of ClientSideAdEventHandling_RecordAdEvent
but that didn't work. It seems to completely ignore any of the heartbeats (video_ad_quartile_complete
) sent by the client, since intercepting all of those requests had no influence on the duration of the placeholder screen.
Next I tried sending a video_ad_request_declined
that gets normally sent (among others) if you already watched a pre-roll ad recently and are within the cooldown period. I tried several different reason_*
values that get sent as booleans in the eventPayload
, but it had no effect. Maybe it just didn't work since I wasn't able to figure out how to find the correct values for ad_session_id
and twitch_correlator
in the eventPayload
and instead just used null or old values.
P.S.: Could you please refrain from posting if you don't have more information than "I get the purple screen too."
I haven't gotten a purple screen in more than a day (EU region) - latest chrome, UBO and ttv-adblock
I didn't get any purple screen since this morning(EU)? Might be a sort of quota per day or something like that... i keep investigating
P.S.: Could you please refrain from posting if you don't have more information than "I get the purple screen too."
Why ? This could be a way to understand when, how, where this happen....
Why ? This could be a way to understand when, how, where this happen....
Well most people don't include any information other than that they're getting the placeholder screen, which really isn't useful beyond the first few postings.
Additionally Twitch is rolling out their changes in waves like they always do, so knowing where and when this happens is not all that interesting after it has been established that it is happening.
The how is important but most people probably can't post information on that and that is completely fine. It's just hard to collect information if the important information is drowned out by redundant information.
The proper way to try reproduce it is (it can be hard to reproduce it every time though):
Even if you didn't get the placeholder screen using that method it just might be due to Twitch rolling out the changes in waves and your region is still on an older version.
Have we determined if twitch actually took the nuclear option and sends this screen to legitimate embedded players, vs somehow detecting the extension & only sending it to that? Are there "legitimate" embeds anywhere that appear to be ad exempt, that we could spoof?
Seems like the purple screen appears only when the commercial breaks are lunched and then go away after them ends.
Have we determined if twitch actually took the nuclear option and sends this screen to legitimate embedded players, vs somehow detecting the extension & only sending it to that? Are there "legitimate" embeds anywhere that appear to be ad exempt, that we could spoof?
I'm pretty sure they went nuclear, as I heard people complaining of purple screen on sites like twitchls and even @revzim said people are getting purple screen with his electron embedded player.
Don't have much to add in terms of stopping this problem, but just wanted to correct the above information that this popup shows on all streams. This will only show up on partnered/affiliate streams on twitch, the trouble is almost any streamer falls into that category so people falsely think it applies to all 3rd party embeds (with or without some form of adblocking software).
Confirmed this by watching a non-partner/non-affiliate stream for 8 hours total, alongside a partnered stream. Both via a 3rd party embed site. If anyone wants to test this they can use Destiny as a reference, he was recently unpartnered/unaffiliated by Twitch for TOS violations. Or you can use any small streamer that isn't a partner or affiliate if you prefer to test on your own. It baffles me that if Twitch is using this method to serve 3rd party embed sites with this screen, when they could serve the same embeds paid ads, prior to this change 3rd party embeds provided an ad-free experience even without adblocking, so its quite strange tbh. But Twitch regularly does things that make no sense so who knows...
@omgitsmoe Just because spoofing requests to the server did not work does not necessarily mean that it can't be circumvented in that way. I'm pretty sure the client scripts are keeping track of how long to display the purple screen for, so we'll have to modify them to fix it.
When the purple ad gets displayed
<div data-test-selector="sad-overlay" class="tw-absolute tw-bottom-0 tw-left-0 tw-right-0 tw-top-0"></div>
t.prototype.render = function() {
return this.props.stitchedAdUrl ? r.createElement(Bt.a, {
attachTop: !0,
attachLeft: !0,
attachBottom: !0,
attachRight: !0,
position: Ht.o.Absolute
}, r.createElement("div", {
"data-test-selector": "sad-overlay",
onClick: this.onClick
})) : null
}
@omgitsmoe
twitch_correlator: t.twitchCorrelator,
ad_session_id: t.sessionID,
roll_type: t.roll,
time_break: t.duration,
This script is working under my userResourcesLocation in uBO (I use dev, but it's prob not necessary): https://raw.githubusercontent.com/Drizzlefrizzle/twitch/main/twitch4.js you might also need ffz
https://i.imgur.com/TtSqjGa.png this is what's happening