nova-video-player / aos-AVP

NOVA opeN sOurce Video plAyer: main repository to build them all
Apache License 2.0
3.41k stars 200 forks source link

[FEAT]: 85% watched = 'watched' #577

Closed SpudR closed 2 years ago

SpudR commented 2 years ago

Description

Can you implement a system where if a variable % of the total movie is played (watched) then it triggers the 'watched' flag. This will save on having to either skip through all the credits or stopping the movie and manually marking as 'watched'

Maybe make setting a spinner to set the total % before the flag is tripped..?

Additional information

No response

Pentaphon commented 2 years ago

I agree with this somewhat because sometimes the end credits can be as long as 5 mins. Mostly 3 min on streaming services. Perhaps reaching the last 5 minutes is a good threshold instead of 85% since you might miss something at that percentage of a video?

This is why I want the player to have a "next episode" button that also "marks as watched" so you can skip to the next episode without having to back out of the video, as I detailed in https://github.com/nova-video-player/aos-AVP/issues/443

SpudR commented 2 years ago

"Perhaps reaching the last 5 minutes is a good threshold instead of 85% since you might miss something at that percentage of a video?" I'd suggest that it simply trips the flag - not actually stops the video. You will still be able to watch if you desire (to see all those Marvel scenes!), just that in the listings that movie would be 'watched'.

Pentaphon commented 2 years ago

I'd suggest that it simply trips the flag - not actually stops the video.

Oh I know. I meant that, too. I was just saying that 85% might cause you to miss something if the video is marked as watched if you stop the movie for some reason and then think you watched it a week later and the 85% flag caused the software to tell you the movie has been seen in full, so the 5 minute flag much less room for error. 15% of a 90 min movie is 13.5 min, for example.

mschumacher69 commented 2 years ago

I believe this feature is already there because it happens to me all the time where I stop watching a movie and there are 5-10 minutes left and it marks it as watched and then I would have to manually forward it to the end to continue watching it.

SpudR commented 2 years ago

Can someone verify this please? I don't think mine does this...

courville commented 2 years ago

When activating trakt, there is a 85% SCROBBLE_THRESHOLD defined that will mark video as seen. However when trakt is not activated, my reading of the current code (PlayerService) is that it does not apply any threshold for now (it should). One way is to add this threshold for displaying the check mark on top right corner in PosterImageCardPresenter:bindVideo.

mschumacher69 commented 2 years ago

Oh OK, that explains it, I use trakt.

This might sound weird here, but is there a way to disable it?😆

It irritates me when it happens, I only want my video to be marked as watched when I watch it completely😅

courville commented 2 years ago

I am afraid that making everybody happy is not possible. Combined by the fact that I am against adding cryptic settings, this will be a tough one. Let's make the current behavior consistent for now.

Pentaphon commented 2 years ago

When activating trakt, there is a 85% SCROBBLE_THRESHOLD defined that will mark video as seen.

That seems kind of low, no? If I have a 90 min movie, the last 15% is 13.5 min. That's a big chunk of the movie.

Maybe 90%? Especially now that it's been activated for all users?

mschumacher69 commented 2 years ago

That seems kind of low, no? If I have a 90 min movie, the last 15% is 13.5 min. That's a big chunk of the movie.

Maybe 90%? Especially now that it's been activated for all users?

Agreed, I would say 95%.

Pentaphon commented 2 years ago

Agreed, I would say 95%.

That's probably too high, since 5% of a 90 min movie is 4.5 min. Movie and TV credits tend to start anywhere from 2 to 6 min before the video file ends and the beginning of the credits is where people typically stop a movie so you want the "mark as watched" threshold to be tripped before the credits appear, but not too early into the movie's final act.

Therefore, the 90% threshold is more ideal because that trips the threshold at 9 mins before 90 min movie file is over, which assures that people won't miss the threshold because it was tripped well before the credits appeared.

I would say the optimal value is 92% (7.2 min before a 90 min movie ends) but to keep it simple, 90% is fine.

courville commented 2 years ago

Let's fill the following table to be able to decide based on measurements on a set of typical videos:

video duration 20mn 40mn 30mn 90mn 120mn 180mn
outro duration
threshold %

Where 20mn/40mn are for tvshows and longer durations for movies. Contributions welcome.

the undoing 53:05/55:34 2:29 ( star trek discovery 50:43/51:51 01:08 silicon valley 28:18/29:29 1:09 space force 24:25/27:26 3:00 death can wait 2:37:07/2:43:23 6:15 kingsman first mission 2:01:57/2:10:37 8:39 avatar last airbender 23:36/24:29 0:52 rick and morty 22:11/23:25 01:13 black widow 2:04:24/2:13:36 9:22

-> some % https://docs.google.com/spreadsheets/d/15nNTyUQP288QWKZlLg24T8o0YeWoKBSQB8eccWLWsmI/edit?usp=sharing

mschumacher69 commented 2 years ago

Can't we measure by minutes remaining instead of percentage watched? In other words, set is as watched when there's 5 minutes left? This way, it can apply to all durations instead of having different thresholds depending on the duration.

Pentaphon commented 2 years ago

Let's fill the following table to be able to decide based on measurements on a set of typical videos:

It's all over the place but I've found that credits for TV shows tend to take anywhere from 30 seconds to 5 min (they have subtitle credits on Netflix shows, too) and movies take anywhere from 2 min to 6 min. I went through many of the movies and TV shows in my collection and that's the best summary I could take from it. There's really no telling how long or short credits can be until you see a video for yourself.

Again, I would say anything greater than 7 mins is ok so The 92% threshold is fine or 90% if we want to keep it in multiples of 10.

courville commented 2 years ago

Thanks @Pentaphon and @mschumacher69 for your comments. I can implement both fixed duration and percentage threshold but I would like the table to be completed first (even with intervals for credits/outro duration). I will check back at home as well for various videos (marvel, 20mn tvshows). Please also provide reference of sites that details the info as well that could help.

courville commented 2 years ago

For reference datasets can be downloaded from https://datasets.imdbws.com/ and one can run some statistics https://towardsdatascience.com/are-new-movies-longer-than-they-were-10hh20-50-year-ago-a35356b2ca5b Not yet checked that it includes credits.

courville commented 2 years ago

Based on https://docs.google.com/spreadsheets/d/15nNTyUQP288QWKZlLg24T8o0YeWoKBSQB8eccWLWsmI/edit?usp=sharing any challenger for 90%? Fixed duration won't cover tvshows and movies at the same time.

SpudR commented 2 years ago

Hi guys So glad this will become an option! 👍 I'd still suggest a spinner for the % - and separate ones for movies and TV series. That way you can judge for yourself, but set it @90% to start...

Personally I'm not too worried about the accuracy of where the credits start - as long as the flag is tripped before the credits start, then it means when the actual movie finishes you can just stop it.

courville commented 2 years ago

For clarity sake, for now making it an option is not yet considered. Thus default percentage only is discussed. Based on the measurements and data provided any opposition on a 90% default? Any other data to consider?

mschumacher69 commented 2 years ago

I think 90% seems reasonable, definitely better than the current 85%!

SpudR commented 2 years ago

Agreed - 90% is good. "For clarity sake, for now making it an option is not yet considered." > Just glad it's on the radar :)

mschumacher69 commented 2 years ago

Agreed - 90% is good. "For clarity sake, for now making it an option is not yet considered." > Just glad it's on the radar :)

I think he means that he will implement it, but not as a modifiable option, but rather a default that applies onto all videos.

courville commented 2 years ago

OK closing this isssue since 90% seems to do the job.