Skip to content

Releases

JellyStations 1.36.0.0

Choose a tag to compare

@jdaubert12 jdaubert12 released this 10 Nov 18:46

More varied station logos.

  • A generated logo is now drawn from ten background patterns instead of six. Bubbles of mixed sizes, scattered strokes, confetti dots and a sunburst are new.
  • Rings start from any point with thin or heavy lines, and the dot grid can be staggered or tilted.
  • Every card also gets two to four soft discs and rings, each its own size and placed anywhere, instead of one disc in one of four spots.
  • Logos already saved stay as they are; Another look and newly generated logos use the new patterns.
  • Refresh content on the dashboard now lists only the channels that changed or failed; the rest are counted in the summary line.

JellyStations 1.35.1.0

Choose a tag to compare

@jdaubert12 jdaubert12 released this 09 Nov 02:51

Refresh content says what it found.

  • The result of Refresh content on the dashboard lists every channel on its own line with what the scan added to it and removed from it, counted in distinct movies and episodes against the scan before. Bumper clips and a weather channel's music tracks are counted on their own.
  • A channel whose content changed some other way (a new order, a changed runtime, the household's progress) says so, and a channel that failed shows its error on its line.
  • Refresh content in a station's editor and on the Status page name the same counts.
  • Fix: several messages in one error dialog ran together on one line; each now has its own.

JellyStations 1.35.0.0

Choose a tag to compare

@jdaubert12 jdaubert12 released this 09 Nov 00:38

A new schedule starts at a program boundary

Until now an edit, a content refresh or Reshuffle now dealt the new schedule from the station's anchor and switched to it at once, usually in the middle of a program, so the stream jumped and the schedule had to patch over the seam.

  • The program (or weather block) on the air finishes, and its break plays out; the new schedule begins where the old one's next program would have started, so the slots keep their place on the padding grid. A station showing its card for long switches within the grid, on the old phase.
  • The guide, the Now line and the editor's preview show the finishing program first, marked Previous schedule, finishing before the new one starts.
  • Series still continue from their next episode and what just aired still rests. Lineup and weather channels are unchanged.
  • The handover is kept with the compiled station (format 6), so a server restart in between serves the same programs.

Also includes 1.34.1.0: the program on the air when a schedule is dealt afresh counts as played, so a Sequential pool under a family-hours rule no longer repeats it.

Upgrade: compiled stations are migrated on load; no action needed.

JellyStations 1.34.0.0

Choose a tag to compare

@jdaubert12 jdaubert12 released this 08 Nov 23:50

Our household, and why this is playing

Our household (Settings) names the Jellyfin users whose play history a station may read. Each station then has two switches on its content step, both off by default:

  • Skip what we finished in the last N days leaves out any film or episode everyone in the household has played within that many days (Jellyfin's played flag and last-played date), lists them under the station's excluded items as "Watched recently", and lets them back by itself once the days have passed.
  • Follow our progress starts a series at the first episode nobody has watched and skips ahead as the household watches, in the episodes-in-order play orders. The channel never goes back behind where it already is.

Something counts as watched when everyone ticked has played it. Both are read when the station is compiled, so the schedule stays the same for every viewer. Every half hour the plugin looks at the household's history and recompiles the stations where it has moved, and the guide follows.

Why this is playing. The schedule preview, the Now line and the content view say why each program is there: the block or pool and its play order, the source that brought it in, its place in a marathon, the family-hours rule in force and whether the household's progress placed it.

Shape the day like a channel (When step): Kids by day, Family evenings, Grown-up nights or Weekend movie marathons write the family hours in one go and, on a shuffled station, add a prime-time block filled with the pool's sources.

Fix: saving the Settings page deleted every saved week layout (1.33.0.0).

API: HouseholdUserIds in Settings, GET JellyStations/Household/Users, Household on a station, Why on schedule entries, Source on playable items.

v1.33.0.0

Choose a tag to compare

@jdaubert12 jdaubert12 released this 08 Nov 22:57

Week layouts, block templates that travel, guide titles per time block, New/Repeat/Kids in the guide, and library fills on saved layouts. See manifest.json for the full changelog.

v1.32.0.0

Choose a tag to compare

@jdaubert12 jdaubert12 released this 06 Nov 19:45

Picture check: interlacing the flags do not show

Some files are flagged progressive but carry the lines of interlacing in their picture: a DVD or broadcast source that was encoded without deinterlacing. Jellyfin's Media Info says "Interlaced: No", so Deinterlacing "When the file is interlaced" passed them by and the lines reached the channel.

What happens now

  • Every file a station plays that could be one (flagged progressive, SDR, up to 1080 lines, at 25 or 30 frames a second) is looked at once, in the background: up to three six-second samples through ffmpeg's idet filter, at low priority. Well under a second a file on the test machine; the answer is kept until the file changes.
  • A file counts when at least a quarter of the sampled frames show fields and nearly all of those agree on one field order. Grain and starved encodes show both orders and are left alone.
  • The files found are deinterlaced on air, with the field order found, on stations whose Deinterlacing is "When the file is interlaced". The program up next on a running channel is looked at first. Stations set to Always or Off are not looked at.
  • The Status page gets a Picture check section with the progress and the files found.

Good to know

  • After the update every station is recompiled once at startup to record picture height and frame rate. Schedules do not move.
  • A file that comes up before the check has reached it plays as before that one time.
  • The rule was tuned on test encodes. If a file is wrongly found, set that station's Deinterlacing to Off; there is no per-file override yet.
  • A film-sourced file with 3:2 pulldown baked in plays without the lines but keeps the pulldown judder. Interlacing that was scaled or blended after weaving cannot be undone and is not found.

API: GET /JellyStations/PictureCheck (Files, Checked, Failed, Pending, FoundCount, Found).

Install or update from the plugin repository (manifest.json), or unzip into the Jellyfin plugins folder and restart.

v1.31.0.0: choose the scaler, editor fix

Choose a tag to compare

@jdaubert12 jdaubert12 released this 06 Nov 18:47

Choose the scaler, and an editor fix

Scaling

  • The encoding settings gain Scaling: the algorithm that resizes every program to the channel's picture size, up or down. A station can set its own with the rest of its encoding.
  • Bicubic stays the default. Lanczos keeps more edge detail, most visible when a smaller source is scaled up, at close to twice the scaling work and with faint halos on very hard edges (subtitles, cartoons). Spline is smooth and the costliest; Bilinear is the softest.
  • It is ffmpeg's software scaler in every case, none adds detail the file does not have, and the cost is small next to the encode. Weather screens scaled up on a channel above 1080 lines use it too.

Fix: opening a station in the editor could lose settings

  • When one of a station's source lists held a single movie or episode next to a wider source (a series, genre, library or folder), the editor asked the server what was already covered while it was still filling in the form, and that request read the half-filled form back into the station.
  • The station's own encoding was shown as off and a save removed it. With such a list in the bumpers, the mode, time zone and other fields could be replaced the same way.
  • The form is now read only once it is filled. A station that lost its own encoding this way needs it set again.

API: Scaler on an encoding profile (bicubic, lanczos, spline, bilinear).

Install or update from the plugin repository (manifest.json), or unzip into the Jellyfin plugins folder and restart.

v1.30.0.0: 4K channels, starter blocks, encoding check

Choose a tag to compare

@jdaubert12 jdaubert12 released this 06 Nov 18:26

4K channels, starter blocks and an encoding check

4K channels

  • The Resolution list in the encoding settings offers 3840 × 2160 (4K). A channel has one picture size, so a 4K movie on a 1080p station is scaled down and a station set to 4K airs everything at 4K.
  • With libx264 the H.264 level is raised by itself when the size and frame rate need more than the one set (5.1 for 4K, 4.2 for 1080p at 60 fps).
  • Every expanding source (library, genre, tag, series, collection, playlist) can be limited by picture size: 4K only, 1080p or better, 720p or better. A 4K channel can play only 4K files and scale nothing up.

Starter blocks

  • The dropdown next to "Add block" offers Saturday morning cartoons, Prime-time movie, Late night and Weather on the hour beside your saved templates. They come with days, time and play order and without sources; a template saved under the same name replaces one.

Encoding check

  • A profile that is likely to disappoint is flagged at the top of the encoding form as you type, as an Encoding badge on the row of a station with its own profile, and on the Status page, where a weak default encoding is listed once however many stations follow it.
  • It flags 4K from an H.264 encoder, a video bitrate too low for the picture (under 10000 kbps at 4K, 6000 at 1440p, 3000 at 1080p, 1500 at 720p, 600 below; HEVC about two thirds of that; half as much again at 50 or 60 fps), one so high it only costs bandwidth, and audio under 96 kbps. Each names the figure that suits.
  • Picking a size in the Resolution list also moves the video bitrate to the figure that suits it (3500 at 720p, 8000 at 1080p, 20000 at 4K; less with an HEVC encoder below 4K), unless you have set your own.

Fixes

  • A tune-in on a high-bitrate channel could start between keyframes and show nothing or garbage for up to the keyframe interval: the stream kept only the last 2 MB for a joining viewer, less than one interval above about 8000 kbps. It now keeps two intervals at the channel's bitrate.
  • A weather channel with several places and radar could fail to open (or take most of 20 seconds) after a new hour or new reports, and always failed on a 4K profile. Screens are drawn at 1080 lines at most and scaled up on a larger channel, and a tune-in no longer waits for a whole segment of screens to be drawn.

API: MinResolution on a content source, GET BlockTemplates/BuiltIn, EncodingWarnings per station and DefaultEncodingWarnings on GET Health.

JellyStations 1.29.0.0

Choose a tag to compare

@jdaubert12 jdaubert12 released this 05 Nov 23:55

Problem files on the Status page. A file that gives trouble on a channel is now remembered after the stream stops and across restarts, with its path, what went wrong, ffmpeg's own line and the station: a file that was missing or could not be opened, one ffmpeg could not play, one that stopped before its listed end (cut off, or shorter than Jellyfin has it), one that played with decode errors, one the GPU decoder failed on, and a clip folder file ffprobe could not read. A file leaves the list when it next plays through cleanly from its start, when it has been replaced or removed (looked at when the page opens and on Refresh now), or when you dismiss it. API: GET and DELETE ProblemFiles, DELETE ProblemFiles/{id}.

JellyStations 1.28.0.0

Choose a tag to compare

@jdaubert12 jdaubert12 released this 05 Nov 20:52

Bumper clips from a folder. The bumper, pre-roll and post-roll sources in the station editor take a folder on the server as well as library items: type its path under the search box and press "Add folder". Every video file in it and its subfolders becomes a clip, so idents and bumps no longer need a Jellyfin library (a Movies or Shows library drops files it cannot match to a title). A name without a path is a folder under data/JellyStations/bumpers in the Jellyfin data folder. Each file is read once with ffprobe and remembered until it changes; a file that cannot be read is listed with the station's excluded items. New files are picked up when the station's content is refreshed (nightly, or Refresh content). API: Path on a Folder content source, GET Library/ClipFolder.