Let's go full guerilla: Plugin that lets you select the first and the last frame of an ad, thus allows to report the beginning and length to a synced database. When that frame is found in the buffer, skip X frames ahead.
For ergonomics, the plugin should be able to spot cuts in the video so you can easily select the correct frames.
For resilience, maybe settle for similar frames. Thinking about anti-abuse, maybe require a minimum number of reports relative to the views (and ofc allow to not skip stuff).
Due to legal reasons, and to keep advertisers happy, YouTube is forced to display the "Advertisement" mark and a link to the advertisers website. With these, all the required information exists to allow an adblocker to skip any ads embedded in the video stream. No community flagging of ads is required.
YouTube is forced to display the "Advertisement" mark
They're forced to identify that it's an ad, but they don't have to do it in a machine-readable way. There's many different approaches to show an "Advertisement" or "Sponsored" label that appears to users but that blockers can't easily find.
If they don't link to the advertisers page, they'll lose advertisers, which is the last thing YouTube would do. Legally, a video-embedded "Advertisement" indicator could work, but the link to the advertisers page remains.
Let's go full guerilla: Plugin that lets you select the first and the last frame of an ad, thus allows to report the beginning and length to a synced database. When that frame is found in the buffer, skip X frames ahead.
This would fit in well with SponsorBlock, which already does the same thing for different parts of videos (eg sponsored segments, intro and outro animations, non music segments in music videos, etc).
I suspect YouTube will find ways around this, like running ads of differing lengths, add random amounts of padding at the start of the video or between ads, etc.
It actually already did break sponsorblock for a bit because user submissions would include the wrong timestamps, due to the ads changing the duration of the video.
This would be hard to implement, but I personally would be happy to donate more to fund the development costs for such features. Adblocking is the largest consumer boycott in history and I won't let a corporation try to crush it again.
The challenge is that videos will have a varying amount or type of ads based on the client's country/demographic and simply on the timing of ad campaigns.
Not baking-in ads was the advantage of Youtube and other streaming platforms over the likes of traditional TV. That's why they were client-side in the first place. I wonder how much the extra effort, bandwidth, and processing will cost Youtube to achieve server-side ads. Would be funny if it simply ended up being too expensive for them.
They have a LOT of compute power... They could have several baked in ads per geographical area / demographic and only store them on servers in / close to the relevant country. There's definitely associated costs but I wonder if it'd amortize well given their viewer count.
That sounds very much like the idea of SponsorBlock (but might need a bit of refinement to work for different ads of different length). You should definitely check out Piped for watching YouTube videos without any tracking/ads/dark patterns, I am very sure they will do something to remove server-side ads as well (hopefully).
And if it is just five seconds instead of 15, it would be way better!
For ergonomics, the plugin should be able to spot cuts in the video so you can easily select the correct frames.
This shouldn't even be too hard, I doubt YouTube is completely rerendering every video with ads, they'd just insert the ad in before an I frame in the video. So each ad will start with an I frame, and the video will resume on an I frame, meaning just let the user select all the I frames, no fancy cut detection algorithm is needed.