I completely worked over how sections work on the front page.
There are a multitude of sorting methods and everyone gets a random order when they first start. If you click on a video in that section it recognizes that section is useful to you and puts it at the top for your front page.
Each section interferes so you never get repeated videos in each of them.
The list of methods are
Latest | The most recently uploaded |
Last watched | The last videos clicked on |
Hot | The most views for how long it's been on the site |
Trending 24 | The videos with the most views in the last 24 hours |
Trending 1h | The videos with the most views in the last hour |
Trending 1w | The videos with the most views in the last 7 days |
Trending 1m | The videos with the most views in the last 30 days |
Best 1h | A frontier of the most viewed videos and the most views in the last hour |
Best 24 | A frontier of the most viewed videos and the most views in the last 24 hours |
Best 1w | A frontier of the most viewed videos and the most views in the last week |
Best 1m | frontier of the most viewed videos and the most views in the last 30 days |
Popular | Videos with the most views |
Picks | Hot but with the size of the video taken into account (good for short videos) |
New Picks | The newest small videos |
Suggested | Custom suggestions based on the last few videos you watched |
Wow that's a lot of sorting methods.
We just need enough videos on the site for them all to be visible. When they run out of unique videos between them they stop showing.
I've purposefully narrowed them to encourage them to roll over into the next section.
The sad thing is I could still do more. I can still do each of the size iterations, which would give me all of trending and popular over again.
For the nerds all of this is done with O(1) or a lot of caching.
Longer versions of any section can be seen with https://vid.jssocial.pw/section/lviewed for last watched. That one updates live.