stash
stash copied to clipboard
[Feature] Play Counter
Is your feature request related to a problem? Please describe. I'd love for Stash to track the play count for scenes, so I can get a better sense of what's getting watched and what isn't.
Describe the solution you'd like I would suggest presenting the play counter next to the o_counter in the Details tab of the Scene page and on the Scene card. On the Edit tab, the functionality to decrease or reset the count would work the same as the o_counter. Instead of manually tracking this count though, Stash would automatically track every time someone plays a scene. Hit play on a scene and the count goes up.
If we wanted to get fancy, there could also be a setting for the minimum play duration required for a play to be counted, but that may be more complex than is.
Describe alternatives you've considered I think the the o_counter is the best model for the to be presented. This could also be shown as a section in the details tab, with the playcount and last play date/time show but that the o_counter style seems cleaner.
Additional context It can be hard to keep track of so many scenes, particularly when continuously adding new more. Having access to more data to use in pruning the collection is so helpful for making decisions to manage the size of the collection.
+1 and would be nice to also track play history, and less important, play progress in videos. Thanks.
Good idea but please make this togglable. I often reference videos to tag them / compare duplicates and it would easily pollute the counters.
Also tracking how many times a scene was played would enable really useful features in the future. For example you could filter by the most watched scene, display trending scenes, etc.
IMO, this feature should appear in a porn theater rather than a porn organizer. The theater would count plays , views or build other analytics the organizer could consume later.
IMO, this feature should appear in a porn theater rather than a porn organizer. The theater would count plays , views or build other analytics the organizer could consume later.
This makes sense in theory but how would it actually map to the current architecture of Stash (being both an organizer, and a player, and backed by a single database)?
Having a play count would also enable filtering by watched/unwatched (play_counter > 0)
While number of times played is a decent metric, the better metric for porn in my opinion is minutes/seconds watched. Unlike a standard TV show or film, there's less of an expectation with porn that when you click play, you're going to actually watch it all the way through to the end without skipping ahead/back.
I have used other porn organizers in the past that tracked time watched per video, and I did like having that. With time watched per video being tracked, you can then query to get time watched per performer, tag, studio, etc. making it easy to see your most/least watched in each of those groupings.
I might try implementing this myself. I haven't done much with golang or some of the other components of stash, but I'll take this as a learning opportunity.
+1 To this. Think it would be an incredible valuable feature to add. Second Weedlordvegeta420's suggestion of a minutes/second watched counter as well if that could be implemented on the side (although I would guess that is harder). Happy to contribute to a bounty for this - if it's too much for me individually would be cool to do a collective bounty as I feel lots of people really want this feature
Here's my proposed design:
- schema change to add view count to scene
- filter/sort options for scene view count
- two new settings: minimum view time for scene counter, and enable/disable scene counter
- in the scene player UI, increment view count by 1 when the minimum view time is exceeded
A minutes watched metric can be a separate feature. For the purposes of this issue, I'm sticking to the view counter concept.
Here's my proposed design:
- schema change to add view count to scene
- filter/sort options for scene view count
- two new settings: minimum view time for scene counter, and enable/disable scene counter
- in the scene player UI, increment view count by 1 when the minimum view time is exceeded
A minutes watched metric can be a separate feature. For the purposes of this issue, I'm sticking to the view counter concept.
When could this hypnothetically be implemented, sounds great!
When could this hypnothetically be implemented, sounds great!
Been a bit busy, but I have gotten as far as data schema updates and config options for the time watched metric. However, I should probably open a separate Issue to track that since it seems like that is @WithoutPants's preference.
I'm new to this codebase so I'm still figuring it all out, but hopefully I can have something ready for a pull request on that front in the next couple of weeks.
@kermieisinthehouse If you had one tool for referencing videos to tag them / comparing duplicates and another for watching them and building counters around the videos, there would be no need for a toggable button.
Imagine the user going back and forth in an option menu just to preserve the counters and don't "pollute" them. Sooner or later counters become irrevelant. The user doesn't notice, doesn't remember (or gets bothered that) its maintenance actions impact the counters.
Stash can't tell either what type of actions the user is performing : delightful video watching or serious video organizing.
A more clear indication may be given to the user to express her current intent : watching intent or organizing intent. A global intent (mode) switch could acheive this goal. It should be easily accessible and visible from any screen (ie no need to dive into some options menu). Stash could tell then how to impact counters accordingly.
The tracking itself, or at least visibility of the metric could also be a togglable feature so you could turn it off in settings if those don't want it at all? In this way those that recognise they likely won't have the most accurate tracking due to the way they use it can turn it off, and vise versa.
I should preface just in case, what I would imply more broadly that 'a view' should mean more than just opening the link/viewing it, and should have to do with a time threshold or something of that nature - and that the minimum time can be set.
I've gone ahead and added in both the play count along with time played and last date played, and I have it mostly working with respect to recording the data. I know that @WithoutPants mentioned splitting out the play count and the time tracking to a separate issue, but it just makes sense to do them together since it's similar related data.
I still need to do the interface work (display info on Scene detail tab, filter/sort, etc.) and code cleanup, but it's looking good for me to have a pull request soonish.
I'm in agreement with Kermie and WithoutPants that this should either be a togglable feature, or something with a "minimum view time" option before it starts tracking data.
Or both. We don't want the editing or managing scenes from the scene page to pollute the "view" data. And if people don't want this data to be tracked they can opt out.
There needs to be a few test scenarios for the "play count"/"time played" if the user is skipping around the timeline. For example: someone opens a 30 minute video, watches the first 5 minutes, then skips to watch the last 5 minutes. That should be considered 10 minutes played - excluding the skipped time, but including the 5 minutes after the skip happens. And it should be considered one total view.
@sleetx
Currently these are the settings that I've added. I need to edit the description to indicate these relate to all play/time tracking (wrote it when I was initially only going to do time tracking and not play count), but the intent should be evident:
That's great! Would there then be a way for scenes to be 'ranked' by this data (e.g. in the area where you display scenes ascending or descending by title, date, plays etc.). Additionally would there be a way as well to then have this data displayed in aggregate somewhere? Perhaps on the 'statistics' page?
That's great! Would there then be a way for scenes to be 'ranked' by this data (e.g. in the area where you display scenes ascending or descending by title, date, plays etc.). Additionally would there be a way as well to then have this data displayed in aggregate somewhere? Perhaps on the 'statistics' page?
I'm going to add in sort/filter options before I submit the pull request. A separate stats summary page is beyond the scope of what I plan to do for now.
@WeedLordVegeta420
Food for thought: I have many clips that are really short -- some are even 5s. Long videos I'd want 15 seconds to increment the counter but this wouldn't increment the smaller clips. What are your thoughts on some sort of percentage-based either-or option here?
So like we can configure a minimum of either X seconds watched OR Y% watched, whichever is lowest.
Food for thought: I have many clips that are really short -- some are even 5s. Long videos I'd want 15 seconds to increment the counter but this wouldn't increment the smaller clips. What are your thoughts on some sort of percentage-based either-or option here?
Thanks for calling out this scenario. It hadn't come to mind.
The simplest implementation seems like it would just be to make the "watched" threshold the lesser of the configured value and the video's full length. The issue there would be if you skip ahead a couple of seconds in your very short video, you would hit the end before it counts as "watched". Unless you played more of the video by looping back to the start or jumping to somewhere in the middle, you would lose that data.
I like your suggestion of having a percentage option and taking the lesser of the min watch time (seconds) and min watch time (percentage of video full length). That does seem like it would give you the most accurate data.
@sleetx
Currently these are the settings that I've added. I need to edit the description to indicate these relate to all play/time tracking (wrote it when I was initially only going to do time tracking and not play count), but the intent should be evident:
Would be nice to have some global easy access to this settings while managing videos.
Great to hear that this feature is being worked on as it is the one main thing that has prevented me using Stash - having a view history is essential for me! But I am just confused about how complex it has to be in regards to tracking the length a scene has been played within Stash for it to be registered as data. All I have been looking for is a way to mark a scene as played and for that date info (such as last_date_played) to be recorded in Stash (enabling the scenes to then be sorted by date last viewed). The o-counter would work but that does not include any date info so this could work as an alternative. For scenes that are watched outside of Stash on different devices, I still would love the option to mark them as watched in Stash at a later date (which I have had to do while changing the system date in other programs). I would also like to import data to stash from another program that includes history in a date format. So, I'm basically hoping that this feature could be used in this kind of manual mode in addition to the automated way.
@RandomName250 The basic concept isn't that complex, but this idea just hadn't gotten much traction until recently. I decided to hold off on completing this until after release v.017 and the code base stabilizes a bit more, but I'll put in the pull request for this feature after that.
Still really keen on this - any indication how far until 0.17 is released?
Still really keen on this - any indication how far until 0.17 is released?
Aiming for this month.
Is there a date for next release with this feature?
Is there a date for next release with this feature?
Sorry. I can't give an exact date, but now that the codebase has stabilized, I will likely pick this development back up soon.
0.17 is out, keen to have a look at how this feature could look
@magicswarmingswarm I should have time to work on it this weekend. Your patience is appreciated.
@WeedLordVegeta420 I'm currently working on adding support for tracking watch activity, enabling Stash to remember the duration users left a scene at, as well as tracking recently completed scenes and recently watched scenes.
I'm thinking I could add a watch time tracker with the changes I have so far assuming you haven't already made progress on your end.
@Teda1 You can pretty much see the progress that I had made in the posts above, but I haven't done the work to refactor it all after the merge of the file-refactor
code. If you're already at a point where you can easily add the functionality onto what you have, go for it. No point in duplicating the effort if you're closer to having it pull request ready.