If they did that then they’d have to re-encode videos for each veiwer (which would require an insane amount of processing power), or give up on tracking and have contextual only ads.
Their only real option is to have ads as separate files and then use the magic JavaScript to tell your computer to play one file then the next, which is where adblock comes in like “naw, let’s not do that”.
Aux@lemmy.world 1 year ago
Not really. That’s not how modern streaming works. No one sends plain files like it’s 2000.
virtualbriefcase@lemm.ee 1 year ago
I didn’t mean like they just strait up embed video.mp4 on page for the video, but as far as I understand on their backend they still have actually video files of various resolutions and such that they serve to you.
Even if the page isn’t giving you a copy of a strait up file in the way it might in 2000, the player is still pulling a copy of a pre processed video file stored on YT’s servers, and in order to have the ads as part of that same file in order to make adblock very hard to implement they’d need to re-process it any time they want to show an ad that hadn’t been already inserted into the video.
Aux@lemmy.world 1 year ago
That’s not how it works. I don’t know exactly what YouTube is doing, but it’s not serving files at all. There are several options available today, perhaps the easiest one to look at is HLS.
In short, the streaming server splits video files into small chunks. Then instead of sending you one huge file, it sends you a HLS playlist. Your browser reads the playlist and starts playing small video chunks one by one. If you want to navigate somewhere inside the video, you don’t wait for the whole file to be downloaded, instead the browser will simply skip lots of chunks in the middle until it lands on the one you want to watch. That’s also how changing video resolution works - the browser doesn’t re-download 4K video after downloading 1080p video, it just stops at current chunk and switches to a higher res one for the next portion of the video.
So, few important things:
This means that YouTube can create a new HLS playlist on the fly, send you 10 chunks of the your video, then send 3 chunks of the ad video, then 42 chunks of your video and 5 more ad video chunks. There’s no need to decode/encode anything. And you will never know what the next chunk holds. They can also add ad chunks at random moments, so you won’t be able to auto-skip them like you do with sponsor segments.
The real question is why Google is not doing it already.
virtualbriefcase@lemm.ee 1 year ago
Thanks for the breakdown and the link, cool to learn about the new (well new to me) tech, sad to see it’s gonna probably bit us in the butt at somepoint.