Heya, going to copy paste something from Reddit again. Guy seems to know some stuff, but it's not my area of expertise.
Also, warning. Huge block of text!
"I strongly believe that this is related to the new ad delivery system YouTube started rolling out by the end of last year.
If the video has ads but it fails to load the ads then it tries to play an empty pre-roll ad, completely ignoring the autoplay state. This behavior has been persistent across multiple tests with videos containing ads of different types, no matter what ad type it had it will always play the video normally and the progress bar will show a yellow dot at the start.https://github.com/ParticleCore/Particl ... -143920166
My extension was causing YouTube playback conflicts for users that had an adblocker running at the same time and during the debugging I found out YouTube started using VAST and VMAP delivery methods.
What these new methods do differently than the previous ones is that (from what I could tell) they are scheduled presentations and it is important to notice the "scheduled" part. What this means is that the VAST/VMAP package runs when YouTube tries to play an ad, adblockers do not block this because it is not an ad itself, however the package does load ads and only after they (the ads) have been delivered then it sends an "ok" to the YouTube player so that it can resume playback.
In very short terms: YouTube player asks VAST/VMAP to load an ad, VAST/VMAP loads the ad, after the ad has been loaded and/or seen it tells the YouTube player it can resume playback, YouTube player receives the message and resumes playback.
What is probably happening due to the adblockers: VAST/VMAP tries to load an ad and fails, the YouTube player never receives a message to resume playback until the "estimated ad viewing time" is up.
This appears to be strongly linked to video ads, which is why most of the users are reporting the player being able to resume playback after a few seconds (it was probably trying to play a 20s ad).
Why is this happening now? Probably because before it was being tested through the A|B method, which YouTube does very often, and now the range of users receiving these ads has been increased.
Why when it happens, it keeps happening forever? As you may know, YouTube does control the number of times ads are displayed to users to avoid exhaustion which push users to install adblockers. When the ad cannot be displayed because of the problem at hand, YouTube never "gets it", it still thinks you haven't received that ad once, so it tries to display it the next time you play a video, over and over again, all because it cannot tell that you received the ad despite it not having played.
Why does it happen when users are logged in but not logged out? Probably because these new ads are only being targeted for logged in users since that way Google can actually take advantaged of its targeted ads profiling, and generic normal ads for non-logged in users.
Please do keep in mind this can be something completely different, but from the reports and descriptions that I read it looks like this is related to what I described.
To improve the possibility of this being the result of the new ad system you can do 2 things:
1 - Since this depends on an adblocker to "break" the ad system, stay logged in but try to watch videos with your adblocker disabled. If the problems still persist then it is something different.
2 - In a YouTube video page where/when the issue occurs, open your browser console (usually Ctrl + Shift + J) and enter:
If either of them returns data then you are being served the new ad system, which strengthens the possibility of the scenario I described before.
I really doubt YouTube would ever deny access for Adblock users, it would be a terrible move and they would lose more than what they could earn.
EDIT: Please take into consideration I might be interpreting this wrong, this is all derived from my personal investigations and limited knowledge."
This is from here https://www.reddit.com/r/youtube/commen ... s_denying/
I tried Scenario 2 with ytplayer.config.args.vmap and got a huuuuge string of data back. All nice and red.
I tried again with yt.player.config.args.vast and got nothing at all.
Not sure if it's anything as he says, but thought I might share it.