Skip to content

About

Moonfin with integrated book and audiobook requests. Flutter clients for Jellyfin, powered by Moonbase Books and Shelfmark.

Resources

Stars

1 star

Watchers

0 watching

Forks

 
 

Latest commit

 

History

3,993 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Moonfin Books

This repository is my personal adaptation of the official Moonfin app for my own setup. It is not an official upstream release. Anyone who wants the same features is welcome to use this fork under its existing license.

Moonfin Books is a fork of Moonfin-Client/Moonfin-Core. It adds in-app ebook and audiobook requests, improved title/author search, and sheet-music search with automatic requests, import status, in-app reading and file download. The series and anime detail view shows multiple seasons directly and moves cast, crew, studios and recommendations into More Actions. Users search for ebooks or audiobooks, choose a release, submit it, and see their own download status inside the app. The page uses the current Jellyfin sign-in and the user's configured server URL; it does not ask for a second Shelfmark login.

This feature requires the matching Jellyfin plugin from Moonbase Books. The Books entry appears when plugin settings sync is enabled and its authenticated Ping response reports booksEnabled: true.

Compatibility: Official native Moonfin apps can still connect to a Jellyfin server running Moonbase Books and use their existing Moonbase features. They do not acquire the new Books tab from a server update; install a native Moonfin Books fork app for that tab. The plugin serves the Books-enabled web app at /Moonfin/Web/, so its web users receive the page through the server. The Books request API currently requires Jellyfin; upstream Moonfin's other Emby features do not make this Books feature available on Emby.

flowchart LR
    U[Moonfin Books client] -->|Existing Jellyfin session| J[Jellyfin + Moonbase Books]
    J -->|Private authenticated proxy| S[Shelfmark]
    S --> P[Configured Prowlarr indexers]
    S --> D[Configured download client]
    D --> I[Shelfmark import destination]
    I --> L[Jellyfin book and audiobook libraries]
Loading

Moonbase Books exposes only its Books Status, Search, Releases, Download, and Active operations to authenticated Jellyfin users. Release lookups use short polling requests. Release IDs returned to the app are opaque, time limited, and bound to the signed-in user. Status and active downloads are filtered to that user. The available release source is currently Shelfmark's Prowlarr adapter; operators choose their own indexers, download client, and import destinations in Shelfmark.

Web screenshots

These are captures of the finished web build, including a responsive narrow browser view. They are not evidence of a native Android, iOS, desktop, or TV build.

Desktop web Narrow responsive web
Books search in the finished desktop web build Books search in the finished narrow web build

Native build evidence

The Linux screenshot shows Books search in the released x64 tar package, running under Ubuntu 24.04/Xvfb with an existing regular Jellyfin session. The Android screenshot shows the exact release-signed APK at first launch in an Android 15 emulator. These captures do not establish physical-device playback or an Android Books request.

Native Linux Books search Native Android first launch
Books search in the native Linux release Moonfin Books Android APK at server selection

Get started

  1. Ask your server administrator to follow Moonbase Books server setup. End users only install a client and sign in; they do not configure Shelfmark, indexers, or downloader credentials.
  2. Download Moonfin Books Preview 3, choose the package for your device, verify its checksum, and follow the platform installation guide. Read build status for signing and runtime-test limits. iOS/tvOS IPAs require Apple signing before installation.
  3. Open Moonfin Books, enter your existing Jellyfin server URL, and sign in with your Jellyfin account. Open Books to search ebooks or audiobooks. If the entry is absent, the administrator should check the matching plugin and its Books/Settings Sync settings.

The fork is intended to use separate app and installer identities so it can coexist with official Moonfin. Its local settings and downloads are separate; sign in again and do not assume local data is migrated. Web users open the plugin-served /Moonfin/Web/ URL and do not install a native package.

Platform status

See Build status for the current package and signing evidence. The fork targets the upstream platform set: Android mobile and TV/Fire TV, iOS, tvOS, macOS, Windows x64/ARM64, Linux x64/ARM64, and web. A target in the source tree does not mean a Moonfin Books package has passed device testing or been published.

The previous Moonbase Books 2.3.1.100 plugin was deployed and tested with Jellyfin 12.1 and Shelfmark Lite 1.3.15. It passed 17 live API checks and the regular-user web search/release flow. Preview 3's in-app sheet-music reader requires the matching Moonbase Books 2.3.1.103 plugin. Other server combinations need their own checks.

Build from source

The client source is in this repository. Flutter 3.47.2 is used by the Books CI workflow; each native target also requires its upstream platform toolchain. Start with:

flutter pub get
flutter test test/books

The native and web jobs, including TV and both desktop architectures, are in .github/workflows/books-build.yml. Android CI packages use the owner's stable private release key through GitHub Actions secrets. The mobile and both TV APKs passed certificate, package-ID and architecture checks; the exact mobile APK also passed a first-launch test in an Android 15 emulator. The iOS/tvOS outputs need Apple signing and provisioning before device installation. CI does not publish a release or upload to a store. Web assets for the plugin are built by the pinned app-source step in Moonbase Books' plugin workflow.

License and upstream

Moonfin Books is based on Moonfin-Client/Moonfin-Core and retains its GNU GPL version 2 or later license and upstream notices. See LICENSE and the preserved upstream README. This fork and its artifacts are separate from official Moonfin store releases.

About

Moonfin with integrated book and audiobook requests. Flutter clients for Jellyfin, powered by Moonbase Books and Shelfmark.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages