Record into a Jellyfin library by default; configurable recording location
🏗️ Build Plugin / build (push) Successful in 12m31s
Nightly Build / nightly-build (push) Successful in 2m44s
🧪 Test Plugin / test (push) Successful in 11m14s
🚀 Release Plugin / build-and-release (push) Successful in 12m33s

When no custom directory is set, recordings go to an "SRF Recordings" folder
in the chosen library, or the first TV Shows library, so they show up without
adding a library by hand. The settings page gets a library picker, a check
that the directory is writable, and help for sandboxed systemd services.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-26 19:35:55 -04:00
co-authored by Claude Opus 5.5
parent 9467cb28c7
commit aa47de9912
6 changed files with 229 additions and 12 deletions
@@ -165,10 +165,18 @@ public class PluginConfiguration : BasePluginConfiguration
public bool GenerateTitleCards { get; set; }
/// <summary>
/// Gets or sets the output directory for sport livestream recordings.
/// Gets or sets a custom output directory for livestream recordings. Takes precedence over
/// <see cref="RecordingLibraryId"/>. Empty means record into a library.
/// </summary>
public string RecordingOutputPath { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the ItemId of the library to record into. Recordings go into an
/// "SRF Recordings" folder in the library's first location. Empty picks the first
/// TV Shows library, so recordings show up without adding a library by hand.
/// </summary>
public string RecordingLibraryId { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the time zone used for times the plugin writes as text: the start time in
/// upcoming livestream names and the timestamp in recording file names. An IANA id such as