Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid showing the same videos between runs #1275

Open
6 tasks done
jamesreprise opened this issue Nov 20, 2022 · 3 comments
Open
6 tasks done

Avoid showing the same videos between runs #1275

jamesreprise opened this issue Nov 20, 2022 · 3 comments

Comments

@jamesreprise
Copy link

jamesreprise commented Nov 20, 2022

General troubleshooting tips

Before logging an issue please check that:

  • You have the latest version installed (There may be a beta version that fixes your issue), see here for the latest releases and bug fixes: https://github.com/JohnCoates/Aerial/releases
  • Your issue isn't already mentioned in our issues. You may find a workaround there or a similar request already made.
  • Your problem isn't mentioned in the troubleshooting page.

If none of this fixes your issue, tell us about the problem you are experiencing or the feature you'd like to request.

Required information

In order to help us sort your issue, we ask that you provide the following information:

  • Mac model: N/A
  • macOS version: N/A
  • Monitor setup: N/A

If appropriate, please enable Debug mode and Log to disk in Advanced tab and replicate your bug, then attach the AerialLog.txt file (You can access this file through the Advanced tab).

Description of issue / Feature request

Currently, it seems that the video shown when the screensaver is started are picked by creating a playlist, filtering out by user preferences and then picking the first from the .shuffled() list. After using Aerial for a little while, I still haven't seen some videos on my list while having seen others multiple times in a day. Note that this is not repeated videos within a single playlist.

I can think of two approaches that would remedy the problem:

  1. Keep the same playlist between screensaver sessions. A set of videos is already generated, so Aerial could keep running through that playlist between runs. This would involve some logic to invalidate the playlist when the set of acceptable videos changes due to user settings or cache-related reasons.
  2. Store a timestamp for each video according to when it was shown. Storing these times locally allows you to keep generating new playlists in line with the current approach, but would require a little extra logic to sort the videos by least recently seen and to actually store and retrieve this data as needed. However, it would mean that the list of videos would endlessly repeat itself with no randomness at all. Perhaps we could cut off the most recent 20-30% of videos and then shuffle to maintain some variety?

I think the second approach would be easier to implement. I would be willing to have a go at making a PR if there is support for it.

@jamesreprise jamesreprise changed the title Avoid showing the same videos Avoid showing the same videos between runs Nov 20, 2022
@glouel
Copy link
Collaborator

glouel commented Nov 20, 2022

Hey @jamesreprise

Can you make sure that in Time, you didn't enable to show different videos at different time of the day ? That does restrict stuff a lot.

Also, it will shuffle only from what's cached, so if you keep a smallish cache (say 5 GB), and enable all videos, you'll definitely have that impression of rotating the same and not seeing some.

I can see those things being more of an issue that shuffle always shuffling the same way ? Seems a bit weird.

@jamesreprise
Copy link
Author

jamesreprise commented Nov 20, 2022

Unfortunately my settings are to play anything at random and I have an unlimited cache, see below.

I think this is some form of https://en.wikipedia.org/wiki/Birthday_problem, where it's surprisingly likely to see the same video first across only a few playlists despite the fact that I have ~90 videos in my rotation.

Let me know if you think either of the approaches I gave are viable for Aerial and something you would have the time to review.

image

image

@glouel
Copy link
Collaborator

glouel commented Nov 20, 2022

Hey again

I'm surprised to hear it's that bad, as I don't think I've heard complaints that weren't related to those two things I cited. Also some videos are really similar which doesn't help.

Anyway, regarding the possible approaches :

  1. I don't think that one is really workable. There's not just "one" playlist, if you have multiple screens in some configurations you'll have multiple playlists, and those monitors may not be constant, so that would be a huge mess to entertain (+ your playlist would become 4 playlists if I restrict videos by time... or 2 with Light Mode/Dark Mode... so many options)
  2. I can see some merit to keeping some form of last played date in general, but finding the right mix is going to be extremely highly subjective (and adding one more slider for that seems a bit extreme, says the guy who already added sooo manyyyy "how many people can possibly use that" feature as I have a hard time saying no ;)).

In general, I kinda have plans to add - at some point - playlist support, because it's been requested, but it has the same issues as 1), the multiple monitors situations with independent videos makes it a mess (and sadly you can't really share a list without doing weird stuff, as on some macOS versions you aren't sharing the same process between those AerialViews).

I kinda think that playlist support would fix your need without messing with shuffling, but messing with shuffling is likely a lot easier.

I'll think about it for a bit !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants