calzoneman / sync

Node.JS Server and JavaScript/HTML Client for synchronizing online media
Other
1.45k stars 235 forks source link

[Feature Request] Minimum Vote Skip Option #966

Open Kethsar opened 1 year ago

Kethsar commented 1 year ago

Occasionally during dead hours, when the chat is minimally active but a few people are otherwise watching streams that the cytube instance was set up for, we'll have cases of 1-vote skips. Most everyone agrees this is a bit of an issue, but it's not really possible to prevent using client-side scripting without being a bit annoying for the users.

An option to set a minimum number of votes before a skip passes would be nice to have.

calzoneman commented 1 year ago

I'm hesitant to add yet more parameters to the voteskip calculation -- it's already pretty confusing and weird edge cases crop up.

I think there's a deeper issue here that measuring afk-ness by chat activity is just not an accurate signal -- especially with people watching while in voice chat or some other communications besides the built in chat. I'm thinking about just removing the chat-based afk and instead having the afk timer track whether or not the page is focused, which is probably a better indicator of whether the user is watching the video.

calzoneman commented 1 year ago

The current afk/voteskip also doesn't take into account whether the user is in chat only mode, so that could also be fixed along with this.

Kethsar commented 1 year ago

That's fair. Though if you go with tab focus, accounting for users who leave it open when they do go AFK for long periods might be a pain to figure out. It would end up on an honour system of them manually setting themselves as AFK or something. Though I can think of a way to remedy this in the client script, so it's still a better system overall. Thanks for the reply.

calzoneman commented 1 year ago

It's a trade of false negatives for false positives.

The current system results in tagging a lot of people AFK who are not actually AFK, and thus it's annoying that something you're watching can be skipped by as little as a single user when in reality there are plenty of other people interested in watching the video but simply not using chat.

Doing it by focus state biases more towards treating people as not-AFK unless you can be reasonably sure they're not watching (window not focused). The hypothetical annoyance here is that it might require extra votes to skip when someone is in reality AFK and shouldn't be counted towards the requirement, but I don't know how commonly someone would leave the window focused on CyTube and just walk away (simply having it visible on a monitor doesn't count as focused unless it is the active window). Hypothetically you could try to measure mouse movements as well, but then of course you're back to falsely treating people as AFK if they happen to be watching while sitting back in their chair or something like that.