- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
- YouTube is testing server-side ad injection to counter ad blockers, integrating ads directly into videos to make them indistinguishable from the main content.
- This new method complicates ad blocking, including tools like SponsorBlock, which now face challenges in accurately identifying and skipping sponsored segments.
- The feature is currently in testing and not widely rolled out, with YouTube encouraging users to subscribe to YouTube Premium for an ad-free experience.
It’s costly; either you prepare encodes ahead of time with different ads and serve that appropriately, or you splice ads live for each request, which is also costly in resources. You can’t get away with just a few variation; ads are usually targeted. It also come with other issues, like, it is mandatory in a lot of place to clearly identify ads, so there should be an obvious marker somewhere. If it’s in the UI, it can be detected and replaced live by a video of kittens for the duration of the ad, so I suppose they also have to handle any signal in the video… (It’s speculation, I didn’t get any of these yet).
I’m curious to see if this will hold, and how we will run around it in the long run.
So much effort, dev time and resources just to fight users to make the experience worse and push them to alternatives to squeeze out the tiniest margin of extra ad money. Plus I’m sure this’ll be countered almost immediately. I’d be shocked if ad blockers took more than a few days to find a way to detect and neuter these ads.
This is some accelerated enshittification.
Other ramifications aside, it wouldn’t be that costly to splice real time.
YouTube has standard profiles of video and audio quality levels. As long as the video stream is the same quality, the stream can basically be concatenated one after another without any meaningful over head. Try it:
ffmpeg -f concat -i files.list -c copy output.mp4
for two files with same codec (audio and video) was processed at over 900x speed for me with just CPU.So all YouTube would need to do is transcode the ads they’d intend to splice in into the standard formats they’d offer the stream at (which they’d already have the video transcoded into), and splice the ads they’d want to show in realtime at request time.
Yes, it is doable. But it also implies keeping track of individual sessions, to make sure you serve the right ad at the right time to the right people. Nothing impossible, but definitely more work to do per individual player, and on the scale of youtube this is quite a lot.