•  thejml   ( @thejml@lemm.ee ) 
    link
    fedilink
    English
    2911 months ago

    Either that or merging the ad into the video stream itself. This would make it un-skippable, but would also be unblockable without stream processing (there are commercial skip options for ffmpeg and similar encoders, so not completely impossible, but much more work and more likely to mark real content as a commercial as well).

    • Thankfully it seems that encoding ads into the video stream is still too expensive for them to implement.

      I’m assuming that asking CDNs to combine individualized ads with content and push the unique streams to hosts does not scale well.

      • Since they target ads demographically and ads change frequently, that would be a mess… The encoding, storage, and tracking would be a Big problem.

        If they go this route, it would only make sense if they build a new video codec that allows for linearly splitting content at key frames so they can concatenate the ads with the video in a single file at runtime.

        But then couldn’t ad detectors just start playback at the key frames?

        Even if it works, it would still be a Big Deal since re-encoding all of YouTube would be Hard. I guess they could just use the codec for all newly added material. Playback might suck on older devices, too; idk if they use h264 (that has dedicated hardware decoders)?

      •  lemmyvore   ( @lemmyvore@feddit.nl ) 
        link
        fedilink
        English
        211 months ago

        It’s not that expensive. You can mix or overlay stuff over a video stream fairly cheaply. Sure, it will be a hit overall for their bottom line but they’ll do it if they have to.

        They can also turn on DRM for all videos on the platform. Currently it’s only used for paid videos and it’s very hard to bypass.

        • This seems simple for one stream, but scale that up to how many unique streams that Youtube is servicing at any given second. 10k?

          Google doesn’t own all of the hardware involved in this video serving process. They push videos to their local CDNs, which then push the videos to the end users. If we’re configuring streams on the fly with advertisements, we need to push the ads to the CDNs pushing out the content. They may already be collocated, but they may not. We need to factor in additional processing which costs time and money.

          I can see this becoming an extremely ugly problem when you’re working with a decentralized service model like Youtube. Nothing is ever easy since they don’t own everything.

          • So what you would do is to generate the manifest files (HLS/DASH/what have you) on the fly to include the segments with ads. Since adaptive streaming is based on manifests, that stitch together segments of video files that together make up the underlying content in different bitrates, you can essentially just push in a few segments of advertising in-between the segments representing the underlying content. This isn’t particularly hard to do, and you’d get the full benefit of the CDN for the segments, so there’s really no issue.

    • or merging the ad into the video stream itself. This would make it un-skippable

      That’s not true. Besides the point that people can skip any video content manually anyway, I already use a Firefox addon called “SponsorBlock for YouTube - Skip sponsorships”, which is configurable and works for other sites as well. The skip points are community maintained, but with the help of AI it should be easy to detect ads automatically. The point is, there are already tools to help with skipping video encoded content.

    •  jet   ( @jet@hackertalks.com ) 
      link
      fedilink
      English
      1311 months ago

      Sponsor block demonstrates one approach to this. If everybody has the ad at the same time stamps, sponsor block would just work out of the box.

      If they got creative and introduced different time stamps for the advertisements for different people, then we could do something like MD5 hash of different video payloads, and look for the MD5 hash that isn’t distributed to everybody, mark that as an advertisement

      • Theoretically they could deny serving byte ranges before the end-of-ad mark until those bytes have been served and a plausible time (the duration of the ad) has passed. Practically this is likely more expensive than what the ad revenue would yield.

        •  jet   ( @jet@hackertalks.com ) 
          link
          fedilink
          English
          311 months ago

          Sure, but then you just need a youtube front running cache that preloads videos, or load multiple videos at the same time… i know i’m not the only person who watches youtube at 3x speed, so you could speed up past the ad, etc.

            •  jet   ( @jet@hackertalks.com ) 
              link
              fedilink
              English
              5
              edit-2
              11 months ago

              Its a arms race, you could always just record the screen with a camera and edit it out as the ultimate.

              you could spin up a vm, and capture the video output

              you could use a graphics driver that lets you inspect the frame buffer, etc

              you could use the side channel attacks to get the decrypted video frames, heartbleed etc, etc etc