YouTube's next move might make it virtually impossible to block ads

boem@lemmy.world to Technology@lemmy.world – 601 points –
androidpolice.com
407

You are viewing a single comment

This must cost YouTube a fortune doing additional processing and reduced flexibility. They are going to hurt themselves and blockers will find a way.

There's already extensions that somehow skip sponsorship sections, so it won't even take that long.

That's "crowdsourced", i.e. manually done by volunteers on per-video basis.

It's illegal to not identify an ad as an ad (unless you're a movie maker, but that's a different topic). All ad blockers need to do is read that indicator. That might not be super simple, but I have faith in the abilities of the brilliant people behind many ad-blocking technologies.

That's actually hurt by this because it uses timestamps supplied by users to work. But now they are off because the ads are of variable length. We can just hope that YouTube keeps the ability to link to a specific timestamp because then it has to calculate the difference and that can be used by Sponsorblock and adblockers alike.

But then those ads either need to be skippable or not skippable with some kind of metadata which can be used against it by injected scripts.

The problem is those blocking extensions are based on timestamps. Those timestamps are added by the users, it's a crowdsourced thing. But the ads a single user will see differ from what another user will see. It's likely the length of the ads is different, which makes the whole timestamp thing a no go.

Along with the timestamp, there needs to be a way to detect where the actual video begins. That way at least an offset can be applied and timestamps maintained, but it would introduce a certain level of error.

The next issue would be to then advance the video to the place where the actual video begins. This can be very hard, as it would need to include some way of recognizing the right frame in the buffer. One requirement is that the starting frame is actually in the buffer (with ads more than a few seconds, this isn't guaranteed). The add-on has access to this buffer (depending on the platform, this isn't guaranteed). And there's a reliable way to recognize the right frame, given the different encoding en quality setups.

And this needs to be done cheap, so with as little as infrastructure as possible. A database of timestamps is very small and crowdsourcing those timestamps is relatively easy. But recognizing frames requires more data to be stored and crowdsourcing the right frame is a lot harder than a timestamp. If the infrastructure ends up being complex and big, someone needs to pay for that. I don't know if donations alone would cut it. So you would need to play ads, which is exactly what you intend on not doing.

I'm sure the very smart and creative people working on these things will find a way. But it won't be easy, so I don't expect a solution very soon.

You need more data to recognize frames, but not a lot more data. A hash for each quality setting would be sufficient as long as they don't start fuzzing the videos, which would be very expensive on their part.

Not really. They can precompute those and inject it in an MP4 file so long as the settings match and it's inserted right before an i-frame so that it doesn't corrupt b-frames. They already reencode everything with their preferred settings, so they only need to encode the ads for those same settings they already do. Just needs to be spliced seamlessly.

But YouTube uses DASH anyway, it's like HLS, the stream is served in individual small chunks so it's even easier because they just need to add chunks of ads where they can add mismatched video formats, for the same reason it's able to seamlessly adjust the quality without any audio glitches.

Ad blockers will find a way.

Re-encoding is one thing, but ads are more or less supposed to be dynamic based on user location and likely some other data to target them.

Offloading that to the client made a lot of sense but now they have to do this server-side, they have very smart people working on making this as efficient as possible using tricks you've mentioned and more but it is still more effort than before. All for something that will likely be circumvented eventually.

All of that targeting data lives on Google’s servers already. Your computer isn’t trying to figure out who you are and what you like each ad play, Google already knows who you are when your browser makes a request for a video. Everything you are talking about is already server-side.

The data is but the client gets the specific bits from a CDN. Now they need a server to stitch these server side and stream it to you.

Every bit of effort and resourcing they spend on this returns revenue directly. Which is more than they can probably say for a lot of things they do. And they’re smart enough to know that they can’t eliminate blocking, just make it harder and harder so that fewer and fewer people do it.