Seasonal rows

Last updated applies to v1.9.3

A seasonal row follows the calendar: Halloween films and horror in October, Christmas films in December, romance before Valentine's Day. Between seasons it is hidden from every Plex screen, and it comes back by itself when its next season opens.

The Rows page: four rows, each with an on/off switch, a Run now button and a more-actions menu, and an Add a row button at the top right.
Rows → Add a row opens the template gallery. Seasonal is one of the ten starting templates.

Start a seasonal row

Start from the Seasonal template, or choose Seasonal as a row’s kind in the Row editor.

Seasonal is a schedule wrapped around one of the other four kinds, not a fifth way of picking titles (see Row kinds). Picking Seasonal ticks every season to start, then shows How it’s filled: Picked for You, Because you watched, Watch it again, or Popular on this server. That kind’s own settings show underneath.

Template defaults. Seasonal starts as Shared for Everyone, with 15 films watched by at least two people. It follows the three built-in seasons and rebuilds nightly. Titles are ordered by how many people have watched them, so rebuilding does not guarantee a different set of films each night. With too little overlapping viewing, the row can be short or empty. Choose Per person for individual recommendations instead. This default applies when starting from the template; making an existing row seasonal keeps its current sharing choice.

Per person or Shared. Choose this above Row type in the row editor. Per person offers Picked for You, Because you watched and Watch it again under How it’s filled. Shared uses the season’s most-watched titles for everyone in the selected audience. Switching between them keeps the selected seasons and their timing.

The seasons

Three seasons are built in. Add more from the ready-made catalogue of holidays, film days and monthly spotlights, or make your own. Tick the ones this row follows. Each row ticks its own, so one seasonal row can follow Halloween and another Christmas.

SeasonIts dayShows (defaults)What the row holdsAPI value
Valentine's Day14 Feb15 Jan – 14 FebFilms TMDB tags for Valentine's Day, and romancevalentines
Halloween31 Oct1 – 31 OctFilms TMDB tags for Halloween (not dramas and romances merely set on the night), and horrorhalloween
Christmas25 Dec25 Nov – 25 DecFilms TMDB tags for Christmas: Home Alone and Klaus, and also Die Hardchristmas

When a season shows

Built-in seasons show from N days before and stay N days after (0–90 days before, default 30; 0–30 days after, default 0) set each built-in season’s window. They give the dates in the table above. When windows overlap, the season coming up next wins. Full-month seasons use the month’s last day for this comparison; a dated occasion wins a tie with a full-month season. An earlier occasion can temporarily take over a monthly spotlight. Weekdays under Placement narrow a season further. Your own seasons carry their own timing.

Your own seasons and ready-made choices

The year strip under the season list draws every ticked season’s window and says where two overlap.

Adding a ready-made season. Open Add more seasons. Search by name or description, or browse Holidays, Film days and Spotlights. Each choice explains its theme and dates, counts matches in this row’s libraries, and shows up to three matching titles when available. The first six choices are shown initially; Show all reveals the rest.

Press Add to save the season with its supplied dates and sources and tick it in the row you are editing. Save the row to keep that selection. The season is available to every Seasonal row on the server as soon as it is added. Use Customise to open the editor first if you want to rename it, change its dates or adjust its sources. If an Add fails, its message stays beside the choice with a way to retry. A film-only choice cannot be added directly to a TV-only row; use Customise to add sources that reach shows.

Regional holidays include Thanksgiving, Mother’s Day and Father’s Day. A choice shows its region, but the season’s name does not, because the name appears in Plex row titles. Season names must be unique, so use Customise to rename one when adding both regional versions. A season name is also refused when it would give a row named after its season ({season} picks) the title another row already has in a library they share, because the two rows would then be one collection on Plex.

Making your own. Press Create your own. Give it a name and an emoji, then choose when it is:

29 February is refused as a fixed day, because the season would skip three years in four. Under Shows from N days before / stays N days after (default 7 before, 0 after) set its window. The editor shows the next date and the window it gives. Full-month seasons have no days-before or days-after controls: their window is exactly the selected calendar month.

Where its films come from. A season’s films are the union of four sources. Add at least one:

Only films that are in your libraries are used, whatever the source.

Counts and verdicts. The editor counts what the row you opened it from can draw, as you change sources: titles of the row’s type (films for a films row, shows for a shows row, titles for both) in the row’s libraries. It sets the count against the row’s size. A season shows one of three verdicts:

These counts describe source matches, before the row’s remaining filters. A shared row’s minimum watcher count, watched-title rules and other row filters can still make the delivered row shorter.

When a season finds nothing. A season can find nothing for a row in one of its libraries: a thin season everyone has already watched, a TV library no tag reaches, or a Kometa collection that does not exist yet. The row then builds nothing there, and that library’s collection still holds the previous season’s films under its title. Shortlist keeps that collection hidden, as it does between seasons, until a run builds the new season into it. It is never deleted. The same goes for a collection built for another year’s showing, or for a day you have since moved your season well away from. Moving a showing season’s day, earlier or later, by no more than its days before plus its days after keeps its row on screen, and the row is rebuilt for the new day at its next run.

Editing and deleting. Built-in seasons can’t be edited or deleted. Deleting one of your own seasons unticks it in every row that follows it. If it is a row’s only season, Shortlist refuses and names the rows: give them another season, or delete them, first.

Name it after the season

On a seasonal row, {season} and {season_emoji} fill in the season it is in. Paste this into the row’s name:

{season_emoji} {season} picks

It shows as “🎃 Halloween picks” in October and “🎄 Christmas picks” in December. A row that follows no season can’t use either placeholder, and Shortlist refuses the save. The other placeholders are in Naming a row.

What goes in it

For a per-person row, the season’s films on your server are ranked for each person. Films close to what they watch lead the row; the rest are weighed by how well their genres fit that person’s viewing. Someone who watches thrillers gets Violent Night and Die Hard before a Christmas romance, and a family that watches animation gets Casper and Hocus Pocus rather than slasher films.

With nightly refresh, a per-person row keeps the strongest two-thirds and replaces its weakest picks. The template ignores release dates, because seasonal favourites are mostly old: on a real server, the Christmas films people actually watched had a median release year of 2008.

Per person or shared

A shared seasonal row is the season’s films that the most people on your server have watched, with the same watched-by-at-least floor as any shared row.

Films only, by default

TMDB tags few shows for a season: on a 5,000-show library, 13 for Christmas and 2 for Halloween. A seasonal row that also covers TV keeps last season’s TV collection up through any season with nothing to put in it, so the template leaves TV out.

Between seasons

The row is taken off every Plex screen but kept, so it comes straight back, the same way a row’s days off work. On the night before a season opens, the nightly run builds the row for that season while it is still hidden, and it appears at midnight on the season’s first day. Leaving a season hides it at midnight too.

A row whose schedule isn’t nightly can’t do this on time, and the editor says so.

What a seasonal row does differently

How it reads TMDB

Shortlist reads each season’s list from TMDB once a run (a few hundred requests the first time, then cached for a week), and only while a seasonal row is in, or about to start, its season.

On a night the list can’t be read, the row keeps what it has, like a row whose sources are all down. The run names it, and marks a person as failed only if every row they had to build that night was left with nothing to build from.

Edit this page on GitHub