Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think it's odd that YouTube hasn't simply proxied the ads into the same stream to make them indistinguishable from the video. Technically the browser is pulling chunks of video from their servers, and the ad content is pulled from different servers which ad blockers restrict. If the ad chunks weren't identifiable, there would be no practical way of blocking them. It'd be like removing commercials - or those in-video sponsorship segments - from a live broadcast.

It seems YouTube is creating an arms race with ad blockers and alienating users by threatening bans than simply changing the way the ads are served. Yes, there's a whole industry around bidding for, dynamically serving and tracking ads using VAST and all that, but I'm positive Google has the market power to change that.



Here's a way to counter your proposal:

- Fetch the video multiple times

- Cut out the non-overlapping segments from the video shown to the user.

This assumes that a different ad is shown every time. Crowd-sourcing like with Sponsor Block could come in handy here.


> I think it's odd that YouTube hasn't simply proxied the ads into the same stream to make them indistinguishable from the video.

I would assume they do this for caching and personalization. Presumably, YouTube can make more from personalized ads. However, if they embedded these ads in the main video stream caching would be more challenging.


I don't think he's referring to actually baking in the ads into the video stream, but rather just having video URLs transparently redirect to ad content.

So for instance, if normally the first 100 bytes of the video (as fetched via yt-dl) are like "googlevideo.com/gibberish-id?signature&rage=0-100", then you could transparently insert an ad into the next 100 bytes by making "googlevideo.com/gibberish-id?signature&rage=100-200" return the ad. Of course this makes the serving logic much more complicated, so it's probably why they don't do it. You'd also have to appropriately cut on a keyframe, muck around with muxing so things splice properly, and so on.

Another possibility to enforce that ads are seen (or at least things are appropriately delayed) is to simply only return video URLs if there was a "pingback" that an ad was seen. So if you serve a 10 sec ad, but the user requests a video URL before the 10 seconds are up, just reject it. This requires a bit more logic on the serving end to track state, but is easier than the previous proposal.


There is an entire ecosystem built up around youtube timecodes as bookmarks. If you simply bake an add in I'm guessing it would massively messup those bookmarks.


The cost of doing so would be magnitudes more than what they could make from ad money.


I could build such a system for a mere billion.


The hardest part would be to redesign the video play UI to ensure timestamp references still works and the progress bar is user friendly. Live video streaming is a harder problem to solve than injecting ads in a video and they already do that, so the technical parts aren't hard for them to do at all.


> I think it's odd that YouTube hasn't simply proxied the ads into the same stream to make them indistinguishable from the video.

Yeah, same -- cable TV has been doing that since god knows how long. There must be some internal engineering reason(s) behind it.


One small reason is they use ads as "payment" for things. Scrubbing through a video looking for a certain spot will require you to watch an ad almost every time you stop scrubbing. They also make you watch an ad if you pause the video for too long. When you unpause it, it immediately jumps into an ad. That's on top of the mid ad breaks the video already has.


And cable TV has had the same workaround, tivo.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: