github ShokoAnime/Shokofin v5.0.4-dev.54
Shokofin Dev 5.0.4.54

latest releases: v6.0.5-dev.40, v6.0.5-dev.39, v6.0.5-dev.38...
pre-release12 months ago

Update your plugin using the dev manifest or by downloading the release from GitHub Releases and installing it manually!

Changes since last build:

fix: Absolute expiration cannot be below or equal to zero.

fix: Use correct paths for equality check when trying to move files/directories out of VFS.

fix: Ignore all trickplay directories which don't have shoko ids set.

fix: Search for the link with the exact same base path and base name.

fix: Inverse reversed boolean check.

feat: Make no caching during iterative VFS gen. a debug option and disable it by default.

refactor: Improve throughput when enumerating files in VFS service:

Replaced the file and directory enumeration logic in the VFS service with a custom C# implementation that performs recursive traversal in parallel. Previously, the recursion was delegated to .NET Core, which in turn relied on the OS to handle directory walking. We still use the core enumeration methods, but now manage the recursion ourselves — in parallel. The parallelism is handled for us by the ActionBlock, with the maximum parallelism relying on the existing VFS threads (debug) setting.

In testing, walking the entire structure on my network-attached storage dropped from roughly 15 minutes per iteration to about 30 seconds.

refactor: Use ActionBlock while generating structure in VFS service:

Replaced the ol' async semaphore mess with a proper ActionBlock-based implementation, giving us better control over task scheduling and concurrency. Instead of queueing up all the async work at once and juggling semaphore waits everywhere, we now let the block handle throttling and dispatch order cleanly.

fix: Use new fast path for episode ids when available.

fix: Add skipped videos to result during iterative generation.

fix: Use the provided list in resolver:

Now that the VFS is always physical, we can use the provided file list. We previously had to iterate over the VFS folder ourselves because we might be masking the children as children of another media folder, but now that we don't need to care for that we can just as well just use the provided list.

fix: Only output new paths from VFS gen. to resolver.

Don't miss a new Shokofin release

NewReleases is sending notifications on new releases.