this post was submitted on 18 Oct 2023
732 points (98.2% liked)
Technology
59588 readers
3084 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
They can easily embed ads into the main stream, so ad blockers will have nothing to block. Not sure why they haven't done so already.
Because those can also be skipped. They are required by law to label sections of ads. This labeling can be read to figure out how long the ads are and thus be skipped. That's how twitch ads are blocked.
The label can be a part of the stream as well. There are no issues to stream everything and make it non-blockable.
Then how hard would it be to use some pattern-based image recognition to detect this label? Not very hard, I have a friend that does something similar at work.
Lol, good luck with that!
You're doubting the ease of implementation, but it's really not hard. It'll have to be a fairly predictable pattern from YouTube's side, which is one of the easiest to accurately detect.
Nevermind that though, it'll never be embebbed in the video stream, because it has to be accessible as well as readable. It's impossible to guarantee it to be readable without actually rendering the text in whatever client it's being viewed in. Imagine a 240p video, the text would have to take up half the screen to be readable with that low resolution.
There's literally no problem to render a text in a video stream.
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".
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.