695
submitted 1 year ago by L4s@lemmy.world to c/technology@lemmy.world

Inside the 'arms race' between YouTube and ad blockers / Against all odds, open source hackers keep outfoxing one of the wealthiest companies.::YouTube's dramatic content gatekeeping decisions of late have a long history behind them, and there's an equally long history of these defenses being bypassed.

you are viewing a single comment's thread
view the rest of the comments
[-] tutus@links.hackliberty.org 65 points 1 year ago

YouTube can't win this race when they don't control the platform you're viewing it on. You can always install 'something' to get around it.

The solution to that is to control the platform using Chrome, Android etc.

[-] CosmicTurtle@lemmy.world 27 points 1 year ago

YouTube's end game is baked in ads. There are streaming services that already do this so it's not impossible. It would not surprise me one iota if YouTube isn't working on this now.

Once this happens, I suspect that the last round of people that have been holding out to subscribe to premium will either cave and do so or people will simply abandon YouTube.

[-] orclev@lemmy.world 23 points 1 year ago

Baked in ads run counter to googles entire ad philosophy though, to say nothing of the technical challenges that poses. Googles big selling point right now is targeted ads where the ads they serve you are based on your activities that they've tracked. With baked in ads every viewer of that stream gets the same ads, so while they could traget ads based on the contents of the stream, they would no longer be able to target the ads at specific viewers.

There's also the problem that baked in ads are in many ways actually easier to skip. There are already extensions like sponsorblock that can skip specific segments of videos, and if it's not served as a separate stream it will be more difficult to give special treatment to the ad portion of the video.

[-] CosmicTurtle@lemmy.world 16 points 1 year ago

Baked in personalized ads aren't impossible.

I can't remember which streaming service it was (I want to say Tubi?) But they had baked in personalized ads. The technology isn't far fetched and certainly possible with what youtube already has.

Sponsorblock only works on specific, known timed segments.

Say a video you want to watch has 8 places that YouTube can put up an ad (as determined by YouTube). Out of those 8 places, it decides to serve 5 ads. But the ads are of different lengths.

Sponsorblock can't block those ads.

I'm not saying people won't try but YouTube has all the information it needs to serve intrusive ads. And, I hate to say it, but they have the market dominance to pull the rug under premium subscribers feet because you know that in a year or two, they are going to start serving ads to those people too.

[-] Laticauda@lemmy.ca 7 points 1 year ago* (last edited 1 year ago)

Sponsorblock only works on specific, known timed segments.

That's not true though, sponsorblock is user reported, that's why it works for sponsor segments and in-video ads of all lengths and locations in videos. If ads get baked into a video they can't be taken out or changed, since that's what getting "baked in" means in this context, and as soon as a single user reports the ad it will be blocked by sponsorblock for anyone who uses it. If it can be taken out or changed, then it's not truly baked in and that can be exploited.

[-] CosmicTurtle@lemmy.world 7 points 1 year ago

Ah I think we have a different definition of "baked in".

What I mean is that the video does not change urls or sources when playing the ad and the video. So it looks like an unbroken video feed but on the back end, YouTube added the video between the designated time frames.

I get what you mean that if ads never change and are forever in the video file then sponsorblock will continue to work. But I don't think this is what YouTube will do.

[-] evranch@lemmy.ca 3 points 1 year ago

All they need to do is fuzz the time when the ad plays to defeat this.

The ads would be baked into the stream, not the source video. This is a fairly trivial problem, and I'm surprised they aren't doing it already.

[-] Sowhatever@discuss.tchncs.de 2 points 1 year ago

As soon as on user does it? Welcome, DoS attack!

[-] Sowhatever@discuss.tchncs.de 9 points 1 year ago

This is completely wrong. You are serving video stream, you just substitute for the ad you would serve the user, at a randomized point in the video. YouTube doesn't do this because they don't want to reimplement the tracking and logging, but if it was financially necessary it wouldn't be hard to do.

[-] pirat@lemmy.world 1 points 1 year ago

They would then also need to implement a new (and much less intuitive than 4m20s) way of referring to specific timestamps, since with ads at random points the timecode would be dynamically changing for each viewing.

[-] GreatBlueHeron@lemmy.ca 4 points 1 year ago

I have some background in tech but admit I'm a long way out of touch now. I wouldn't be at all surprised if they're working on back end stuff to have personalised ads "baked in". I know the resource implications of this are huge, but it still wouldn't surprise me.

[-] Voroxpete@sh.itjust.works 11 points 1 year ago

The resource implications are the problem. The cost - in terms of compute time - to bake those ads eats into the profit earned from advertising as a whole. Since only a fraction of users adblock, they would probably lose more money than they gained.

They'll consider it once the compute cost inserting the ads is low enough that it's worth it. I have no idea if we've reached that point yet, but I'm guessing not, since otherwise they'd already be doing it.

[-] privatizetwiddle 4 points 1 year ago

Most of the formats served by YouTube are already chunked, which means they can easily insert different chunks of video (ads, etc) at various points in the stream by changing the manifest. This is trivial, computationally. The complexity lies in building the mechanisms to make it work.
The non-chunked formats are only used by older devices, and are lower quality. Those would require re-encoding to change, but few users see them anyway, and those users probably don't adblock.

[-] TheGreenGolem@lemm.ee 3 points 1 year ago

Platforms can now insert ads directly into the manifest file into totally random timestamps. The file chunks' names follow the same pattern as the original video. You cannot filter or prepare for it. Probably that will be the future. (AWS MediaConvert can do this for example.)

And they only create the manifest file upon starting the stream so you can inject personalized ads too.

[-] pirat@lemmy.world 2 points 1 year ago

I guess we will have to compare the last video frame and/or audio sample of every segment to the first frame and/or sample of the next segment or something like that?! Maybe the effects of "the loudness war" in ads will help us detect ads solely by the loudness change within the audiostream?

[-] scytale@lemm.ee 3 points 1 year ago

But don’t they do that on their tv app already, that’s why DNS blockers don’t work? I’m pretty sure they serve targeted ads on the tv app.

[-] Maultasche@lemmy.world 12 points 1 year ago

Wouldn't SponsorBlock be a way around this?

[-] TheGreenGolem@lemm.ee 10 points 1 year ago

Platforms can now insert ads directly into the manifest file into totally random timestamps. The file chunks' names follow the same pattern as the original video. You cannot filter or prepare for it. Probably that will be the future. (AWS MediaConvert can do this for example.)

[-] BearOfaTime@lemm.ee 3 points 1 year ago

Meh, download the vid, then have software figure out where the ads are. It's possible.

Hell, even just present a button for the user to hit when an ad segment starts.

[-] deur@feddit.nl 7 points 1 year ago* (last edited 1 year ago)

A lot of people are saying this isn't possible, theyre wrong. It's called "Server Side Ad Insertion (SSAI)" and tldr it places the ads directly in the video itself. One of the popular streaming services uses SSAI, another uses SGAI. Theyre both something the CDN must implement alongside the client.

The technical explanation: SSAI, at least with HLS, places the ad segments within the media playlist. This means there is no additional and easy to block call to the ad server to ask for ads (that's Server Guided Ad Insertion, SGAI). SGAI places markers where ads need to go in the media playlist, and the client asks the server for some ads to place there.

There's also CSAI which is fully client side (the client decides where to place ads and how many) but I'd like to doubt youtube uses this. Doesn't seem very smart.

Even if, lets say, youtube baked the ads into the content segments, it wouldn't solve anything. There will still be markers and metadata to find where they are (the client needs these to notify ad partners you watched the ad, and to display the yellow "ad" markers, and to display a timer) which can be used to skip them client-side with an extension.

Overall YouTube probably won't win because there's always something to do to bypass ads. Some methods are easier to bypass than others, but they're all enforced client-side in the end. The only thing they could possibly do to have even a fraction of a chance would be to block you from getting the next content segments until the ad duration has passed in real-time. That's a last resort, however, because that will likely hurt QoS and client stability. There's a reason it isn't already done. Don't forget, also, the developers who work on this stuff don't like ads either. Nobody is going out of their way to prevent ad blocking beyond what the execs want, and the execs don't know what they want.

Do note that although I specify HLS there is likely little to no difference with other streaming tech, I just want to be clear about my experience.

[-] hedgehog@ttrpg.network 1 points 1 year ago

If ads are inserted at random time stamps and the client reports the watched intervals, then the server doesn’t need to communicate which intervals are ads.

That could still be bypassed by building a library of ads in the ad blocker, then examining the video feed when an ad is encountered, looking it up in the DB, and automatically jumping ahead as many seconds as its expected duration, but that would be a substantially heavier operation than what uBlock Origin currently does.

It also wouldn’t enable forcing users to watch the ads, since the client wouldn’t know to enforce an unskippable segment from 1:38 to 2:08. And that’s probably the real reason it won’t be implemented - an executive probably has “must preserve these features” as a constraint, so an engineer wouldn’t even propose this feature to them.

[-] lorty@lemmy.ml 2 points 1 year ago

The only reason it hasn't happened yet is because it is a fundamental change to the architecture of the platform, but will very much happen.

[-] Igloojoe@lemm.ee 19 points 1 year ago

Twitch has increased their ad blocking techniques for the last 3 years or so. Twitch has been a lot more advanced and aggressive with their method. Yet, there are still ways to subvert the ads on twitch. If I didnt read lemmy, i wouldnt even know youtube was doing anything. I have just basic adblocking ublock

Although every once in a while, twitch will release a new technique and it might take 24 hours to solve.

[-] Sowhatever@discuss.tchncs.de 13 points 1 year ago

You would be surprised how many people will just uninstall the ad blocker the third time YouTube isn't working for 24 hours.

Every time YouTube or twitch make a change, a certain percentage of users give up, which means more revenue.

[-] Kedly@lemm.ee 8 points 1 year ago

The reverse of this is every time I watch youtube without an ad blocker, their ads are SO obtrusive I go right back to "Nah fuck this, FUCK their ability to make money if this is how they go about it"

[-] Igloojoe@lemm.ee 4 points 1 year ago

I have changed my programs because twitch won against its methods. I used to use alt twitch player to get around the ad system. The app creator didnt care to update anymore and twitch's update broke the system.

All that did though was make me find alternative ways to ad block. If it came to it, if i was unable to block ads. I'd just never watch. Ads are usually full volume screaming at you, so its like an assault on you.

Either way, i think having more viewers is more important than getting an ad to EVERY watcher. IMO Youtube and twitch both lose money on offering their services to everyone. Some people will upload/stream to 0 viewers and i think that its like 50% of their creators. Thats a ton of wasted bandwidth and storage.

IMHO i think twitch could charge something like 3-5$ a month to broadcast a stream. Youtube could charge something like 10c an upload or something.

I get users needing to create content to grow viewerbase, but charge something extremely minimal to get back a little something.

[-] systemglitch@lemmy.world 3 points 1 year ago

I think you would see significantly less streamers if you did that and they need streamers equally as much as they need viewers.

I bet a lot of the current top streamers would have never given it a chance if they had to pay first.

[-] Igloojoe@lemm.ee 0 points 1 year ago

More content creators are always good, but theres also people on there just wasting resources that will never be successful. Always stream to 0-2 people.

Idk, it's a tough choice. Which is why they most likely would never use a pay to create style.

[-] Dempf@lemmy.zip 1 points 1 year ago

I think that's a big part of why Google doesn't fight (and in fact helps) the banking and streaming companies that want to lock down Android more. It's harder to block ads if you can't block them in the browser and can't block them system wide via hosts file. (Yes you can use VPN + DNS, but it's a lot more battery intensive.)

this post was submitted on 02 Dec 2023
695 points (98.1% liked)

Technology

59681 readers
3294 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS