2026.06.29 #219
tsirysndr
announced in
Announcements
2026.06.29
#219
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
[2026.06.29]
Added
jellyfin: Jellyfin-compatible HTTP API server on its own port — newcrates/jellyfin/src/server/module gated behind theservercargo feature, spawned alongside Navidrome fromcrates/server/src/lib.rs; opt-in by settingjellyfin_portinsettings.toml(conventionally8096) — omitting the key disables the server entirely; spoofsProductName: "Jellyfin Server"andVersion: 10.11.11so the SDK-generated clients (Finamp, Findroid, Streamyfin, Amcfy Music, Symfonium) treat it as a real Jellyfin server; reusessubsonic_username/subsonic_passwordfromsettings.tomlas the Jellyfin credentials (additionally gated on the password being non-empty); tokens are persisted in a newjellyfin_tokenstable (migration applied at startup) and accepted viaX-Emby-Token,Authorization: MediaBrowser Token=…, or?api_key=query param on streaming URLs; item IDs are deterministic dashed-UUIDs derived from the nativeArtist/Album/Trackids and round-tripped via a newjf_guidslookup table; full route surface covers/System/Info{,/Public},/Users/AuthenticateByName(PascalCase + lowercase variants for Amcfy),/Users/Public,/Users/{id}/Views,/UserViews,/Library/MediaFolders,/Items(withparentId,includeItemTypes,searchTerm,albumArtistIds/artistIds,ids, pagination — accepts both camelCase and PascalCase plus repeated keys),/Items/{id}+/Items/{id}/{Images/Primary,File,PlaybackInfo},/Audio/{id}/{stream,stream.{ext},universal}with HTTP Range support,/Search/Hintsbacked by the samerepo::{artist,album,track}::filterLIKE queries,/Sessions{,/Capabilities/Full,/Playing,/Playing/Progress,/Playing/Stopped}acks,/ScheduledTasks/Running/{id}+/Library/Refresh(return 204 — actual scans are owned byaudio_scan::start_watcher),/Shows/*+/UserItems/*+/Items/{Suggestions,Resume,Latest}stubs for client home rails, and/Items/{id}/Images/{kind}(both PascalCase and lowercase/items/...paths for Findroid); discovery runs in two tokio tasks —_jellyfin._tcp.local.mDNS broadcast plus a UDP listener on port7359that answers the literal"Who is JellyfinServer?"probe with{"Address":"http://<lan-ip>:<port>","Id":…,"Name":…}settings: new optionaljellyfin_port: Option<u16>field onNewGlobalSettings(defaults to8096); also added to theInto<NewGlobalSettings>impl incrates/rpc/src/lib.rsso gRPC settings round-trips don't drop the fieldFixed
jellyfin: album art now resolves correctly —rockbox-librarystoresalbum_artas one of three forms (bare filename living under~/.config/rockbox.org/covers/, absolute filesystem path, orhttp(s)://URL for Rocksky-sourced artist images), but the initial Jellyfin image handler joined bare filenames againstmusic_dirand gotNotFound; replaced with aserve_art_valuethat mirrors Navidrome's resolver (proxyhttp(s)://viareqwest, read absolute paths as-is, prefix bare filenames with~/.config/rockbox.org/covers/), and added the "if the album row has no art, search its tracks" fallback Navidrome already usesFull Changelog: 2026.06.26...2026.06.29
This discussion was created from the release 2026.06.29.
Beta Was this translation helpful? Give feedback.
All reactions