x0a / uBO-YouTube

Easier way to exempt your favorite YouTube channels from adblocking.
GNU General Public License v3.0
124 stars 8 forks source link

Autoskip/autoplay #14

Closed MateuszPiszczatowski closed 3 years ago

MateuszPiszczatowski commented 4 years ago

If it's possible to implement, autoskip after 5 needed seconds and/or autoplay after ad finishes (some don't let the video play but instead need a click) would be neat options.

x0a commented 4 years ago

Hey, Thanks for the suggestions The second suggestion would be easy to implement and doesn't affect anything else, will work on this when I have a bit of time.

But auto-skipping might deprive whitelisted channels of ad-revenue. My understanding is that skipping an ad within 5 seconds (if allowed) means the advertiser doesn't have to pay youtube (i.e. the channel doesn't make any money). The viewer has to watch at least 30 seconds for the channel to get ad revenue. Would you want such a feature to be implemented on a channel-by-channel basis or adverser-by-advertiser basis? Or would you want it to apply globally?

MateuszPiszczatowski commented 4 years ago

I though about these functions to be switched on/off globally. I didn't know about that 30-seconds rule. If that's the case, then this feature could be configurable to skip ad as soon as possible or after 30 second, with the warning that skipping after 5 seconds will prevent getting revenue from these ads. I belive the option to skip after 5 seconds could be still profitable for the creators, because some people may not use the ads-on option at all without that function but even with skipping after 5 seconds, there still are ads that can't be skipped or these small pop-ups which would still give the creator some money. I can't tell how many people would choose 5secs skip if it's there, but would be okay with 30 secs skip if it's the only option, I also don't know how many would choose not to use the ads-on without 5secs skip, so I'm unable to predict if implementing it would be more or less profitable for the creators. Additionally there probably are many people like me, that didn't even know and were manualy skipping the ads, thinking they are providing revenue. It seems to be a complicated dilemma if creators profit is the priority. EDIT: I talked about it and the conversation partner said that she would like to be able to change these things for every channel separately. If implementing it, I'd suggest to make global settings and channel-specific settings that would override the global ones.

x0a commented 4 years ago

Sorry for the late response (got an unexpected bump in workload).

Thanks for the input, I think it would probably have to be a mix of new settings.

I have a couple ideas of how this could be implemented UI-wise based on your suggestions. First a checkbox with 'Auto skip' with a disclaimer next to it, which would enable a selector where you can select between '30 secs' or 'As soon as possible', then a list of overrides that have been added. If no global is set, the overrides will still be obeyed. On the content side we might re-create the 'Skippable in X seconds' to 'Skipping in X seconds' to indicate that the ad will be skipped. Then in the menu we can add a 'Auto Skip' with a submenu specifying when to skip, which would add an override. Those overrides can be changed or removed in Ad Options.

Hope to have a working prototype maybe next week

neoOpus commented 4 years ago

Isn't possible to make the ad play in background so the channel get monetized but without having the annoyance to wait for the ad to finish? (maybe in a sort of secondary player that can be hidden or collapsed)

x0a commented 4 years ago

It would be pretty cool but YouTube uses DASH and the actual implementation of the player is proprietary. The video URLs are actually blobs that point to media source extensions, which grab the video in pieces rather than one big file. So we would have to re-create that, the entire player and all its features (I believe).

Anyway, I'm realizing that my code has gotten rather convoluted and difficult to add to. There's no neat way to replace countdown timer without adding a bunch of hooks to detect the original countdown timer. I'm planning a complete re-write on the YouTube-side that should make it easier to add features.

x0a commented 3 years ago

In retrospect, it doesn't make sense to implement this on a channel-by-channel basis because the purpose of auto-skip is primarily to deal with particularly annoying advertisers or ads in general.

I'm still planning on re-writing the entire extension but I've tested the current global auto-skip implementation for a few months and I think it does the job well enough that I think I can close this issue and any further improvement suggestions can be placed in a new issue. If you havent already, you can enable the auto-skip option here: https://youtube.com/ubo-yt#ads Feel free to create a new issue if you have any suggestions

Thanks to the both of you for being willing to submit enhancements