• parpol@programming.dev
    link
    fedilink
    English
    arrow-up
    50
    arrow-down
    1
    ·
    5 months ago

    Sample the color of a specified pixel (or something recognizable in the streaming format) every 30 frames from the original video.

    Store collection of pixels in a database and share in a peer to peer network or stored on invidious instances. Because the sample size is small, and the database can be split up by youtube channel, the overall size and traffic should remain low.

    When streaming a youtube video, if the plugin detects that the pixel in the video doesn’t match the one in the database, automatically skip until where the pixel matches the data in the database.

    • Programmer Belch@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      27
      ·
      5 months ago

      That is prone to error, just a pixel can be too small of a sample. I would prefer something with hashes, just a sha1sum every 5 seconds of the current frame. It can be computed while buffering videos and wait until the ad is over to splice the correct region

      • might_steal_your_cat@lemm.ee
        link
        fedilink
        English
        arrow-up
        12
        ·
        5 months ago

        The problem with (good) hashes is that when you change the input even slightly (maybe a different compression algorithm is used), the hash changes drastically

        • Programmer Belch@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          7
          ·
          5 months ago

          Yes, that’s why I’m proposing it as opposed to just one pixel to differentiate between ad and video. Youtube videos are already separated in sections, just add some metadata with a hash to every one.

          • might_steal_your_cat@lemm.ee
            link
            fedilink
            English
            arrow-up
            14
            ·
            5 months ago

            I think that downsizing the scene to like 8x8 pixels (so basically taking the average color of multiple sections of the scene) would mostly work. In order to be undetected, the ad would have to match (at least be close to) the average color of each section, which would be difficult in my opinion: you would need to alter each ad for each video timestamp individually.

    • 4am@lemm.ee
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 months ago

      Imagine thinking they can’t detect when you try to skip forward during an ad.

      • parpol@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 months ago

        They can’t. They have no clue where you are currently in the video, and even if they did run some client side script, you could easily spoof it.