this post was submitted on 12 Jun 2024
375 points (98.7% liked)

Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ

54500 readers
621 users here now

⚓ Dedicated to the discussion of digital piracy, including ethical problems and legal advancements.

Rules • Full Version

1. Posts must be related to the discussion of digital piracy

2. Don't request invites, trade, sell, or self-promote

3. Don't request or link to specific pirated titles, including DMs

4. Don't submit low-quality posts, be entitled, or harass others



Loot, Pillage, & Plunder

📜 c/Piracy Wiki (Community Edition):


💰 Please help cover server costs.

Ko-Fi Liberapay
Ko-fi Liberapay

founded 1 year ago
MODERATORS
 

YouTube is currently experimenting with server-side ad injection. This means that the ad is being added directly into the video stream.

This breaks sponsorblock since now all timestamps are offset by the ad times.

For now, I set up the server to detect when someone is submitting from a browser with this happening and rejecting the submission to prevent the database from getting filled with incorrect submissions.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 40 points 5 months ago* (last edited 5 months ago) (3 children)

Almost certainly not, although fair disclaimer, I don't actually know. Ads need to be tailored to the user when delivered, so it's likely the YouTube frontend requesting the next chunk of video to be an ad instead of the next chunk of video from blob storage. yt-dlp likely just requests successive chunks straight from blob storage, passing this.

If YouTube served ads by saying "point to an ad chunk next" in their blob storage, 1. Everyone would see the same ad and 2. Premium users would still see ads.

To patch this, YouTube really needs to stop serving video chunks directly from storage, but I forget the reason they haven't done that already.

(Technical note; I'm assuming blob storage chunks contain 1-2 seconds of video and metadata pointing to the next one, like a linked list. I'm not sure if this is how YouTube works, but many video platforms do this)

[–] [email protected] 9 points 5 months ago

Ads need to be tailored to the user when delivered

  1. It does not. If you install a new browser and open YouTube the first time, they'll be able to show ads to you
  2. They could be tailored based on other factors too, like country, region, or even household by the IP

I think the backend could just generate the ad ridden video feed for the specific user. Most probably it would be very resource intensive, but I can only hope so.. but then I also don't know much about HLS and other fragmented streams so it might not be a performance problem at all.

like a linked list

I think the full list of chunks is (currently) known beforehand. That's how yt-dlp can download on multiple threads, but also how it can show the number of total fragments relatively quickly on the progress bar

[–] [email protected] 6 points 5 months ago (2 children)

... which is why youtube has recently started blocking non-logged in users

[–] [email protected] 10 points 5 months ago (1 children)

Wait, they have? I wonder how/if that would affect the functionality of apps like Newpipe/Freetube.

[–] [email protected] 16 points 5 months ago (1 children)

It completely breaks them, currently: https://github.com/TeamNewPipe/NewPipe/issues/11139

This applies to at least NewPipe and yt-dlp, probably basically every such tool. Also, if you use logged-in cookies and download, they sometimes ban your account! Fun!

[–] [email protected] 10 points 5 months ago* (last edited 5 months ago)

Gross.

Welp, I sure hope either we stay on the winning side of the cat-and-mouse game or a lot of creators jump ship to other emerging platforms (not that there are many), because it'd be a damn shame to have to stop watching some of the creators I enjoy watching. Many of them are damned talented folks IMHO.

I've heard good things about Nebula, but sadly a lot of the channels I watch are not quite on there yet. Also, I'm broke, so there's that. Lol.

[–] [email protected] 5 points 5 months ago* (last edited 5 months ago)

Ew. I'm not entering account credentials on anything I don't own (ie, at work to see a tutorial on something I need to learn).

[–] [email protected] 6 points 5 months ago

yeah that makes sense. i was thinking maybe youtube had servers to decide what chunks clients would get, maybe by looking at whether or not they are premium users first. but anyway youtube still needs a way to differentiate between ad chunks and video chunks, otherwise we would just be able to skip 10 seconds through all the ads. surely that can be exploited somehow.