ynshung / better-yt-shorts

Playback, volume, timestamp controls and more on YouTube Shorts.
GNU General Public License v3.0
240 stars 43 forks source link

Cant disable "Loop" anymore #131

Closed iAroc closed 1 year ago

iAroc commented 1 year ago

Heyya

Before Version 3 that i got today, i could rightclick any short and disable the "loop" option for that short. But since the update, it doesnt work anymore, the short still loops.

As an extra question - would it be possible to have a setting that carries the loop/no loop over multiple shorts?

adsuth commented 1 year ago

Currently, whether or not the video loops is tied directly to the autoplay feature. If autoplay is on, the short won't loop and vice versa.

I don't think it makes much sense to divorce them, but I have noticed I've made a mistake implementing the loop in v3 (it now updates the loop setting every interval instead of only when the autoplay toggle is clicked, so you cant change it independently without it being immediately overridden)

I'll get that fixed asap, so you'll be able to toggle it with right click at the very least

adsuth commented 1 year ago

actually in hindsight, I dont think this is a bug at all, but I do think it makes sense to allow users to toggle looping when autoplay is off using the stock yt functionality

though the setting is reset between shorts... @ynshung would you be in favor of adding this as a new button that saves state? I imagine it'd only work if autoplay was off though. So the button would be disabled if autoplay was on. If this is desired, we should probably make a new ticket for it specifically

iAroc commented 1 year ago

In the new PR, you added ytShorts.loop = !settings.autoplay, which means that when autoplay is off, it always forces the loop to be on, and vice versa. This doesn't make sense to me.

Before the 3.0 update, your code didn't touch the loop setting, so I could manage it myself. However, I had to do it for every short, as i never use autoplay.

In my opinion, it makes much more sense to have a separate toggle for looping or not, one that persists when scrolling to a new short.

I use it when I'm doing something else, and every few minutes, I just want a break to watch a single YouTube short. So, I scroll down once. But I always have to right-click and disable loop, so it stops after that one, and I can continue whatever I was doing before. With a persistent setting, I wouldn't have to do that.

adsuth commented 1 year ago

v2 did change the loop setting, but only when the autoplay button was generated or clicked. I returned that functionality, that's what that is

As for the rest, that's up to @ynshung to decide as its a relatively substantial change imo

ynshung commented 1 year ago

I believe why the loop is disabled in autoplay is to avoid the video looping before the transition to the next one. (It is implemented by @monsieurvor during v2)

Another option I tested would be to remove the setting of ytShorts.loop in the autoplay altogether. To avoid the video playing again, then increase the hasVideoEnded() duration threshold from 0.11 to 0.25. So it won't touch the video loop functionality

adsuth commented 1 year ago

This may have an adverse affect on the shorts themselves by skipping the endings, but it may be fine actually

3xploiton3 commented 4 months ago

stop looping doesn't work again

image