this post was submitted on 18 Oct 2023
671 points (98.3% liked)
Technology
59427 readers
2820 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Not really. That's not how modern streaming works. No one sends plain files like it's 2000.
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.
I could be completely wrong tho, I don't work at YouTube and haven't built a video sharing site before.
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.
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.