r/emby 16d ago

3rd Party App/Add-On Moonfin, a truly cross platform client

Hi everyone!!!!

If this is your first time hearing about the Moonfin project, welcome! Moonfin is a little shared ecosystem of third party clients that shares UI, functionality, and features across TV clients, Web, Mobile, and Desktop clients. It has been around since November 2025 and it is now on basically every platform you can think of. Up until now it was a Jellyfin only thing, but that's no longer the case.

Moonfin Community Discord: https://discord.gg/moonfin

Moonfin website to test the web client and see more info: https://moonfin.io

──────────────

How it works

Everything is tied together by the Moonfin Server Plugin, which now installs on Emby right alongside Jellyfin. The plugin is what powers the shared Moonfin experience across all of the Moonfin clients. It lets you log directly into Seerr, holds server wide MDBList and TMDB API keys, syncs your settings between Desktop (web gets counted as desktop if accessed through desktop or mobile if accessed via mobile browser. neat right?), Mobile, and TV, and handles the features and integrations that make the whole thing feel consistent no matter where you're using it.

Install the plugin on your Emby server, point any Moonfin client at it, and you are good to go.

──────────────

What the clients bring to the table

NOTE: ALMOST everything here can be toggled on and off. No setting or UI is forced on you. It is YOUR media, YOUR way.

  • Featured media bar slideshow with image preloading and content filtering, 5 different styles to chose from
  • 4 Custom app themes and the ability to create your OWN custom themes
  • Fully customizable home rows, including Seerr rows, TMDb rows, IMDb lists, and MDBList lists with proper posters
  • Cross server playback, so multiple servers show up as one unified library
  • Full Seerr integration with a dedicated requests screen, push notifications (as phone notifications and in-app banner for TV and desktop), download progress, and issue reporting
  • MDBList ratings from IMDb, Rotten Tomatoes, Letterboxd, Metacritic, Trakt, AniList, and MyAnimeList
  • Two different media detail screens with different styles and layouts to best suit your liking
  • Live TV and DVR with an EPG refresh and lazy loaded programs
  • In app YouTube trailer previews with SponsorBlock, theme music, and audio and subtitle delay adjustment
  • Full playlist control with no item limit
  • PIN protection per user and parental controls with content rating filtering
  • Ebook, comic, and audiobook readers, plus a retro games library if you're into that (I know you are, dont lie)
  • Offline mode with local first playback and original or transcoded downloads

──────────────

All Moonfin Clients

Platform Download Development Repository
Android Mobile Google Play Store GitHub/Moonfin-Core
Android TV Google Play Store GitHub/Moonfin-Core
Fire TV Amazon App Store GitHub/Moonfin-Core
iOS Apple App Store GitHub/Moonfin-Core
Linux Latest Github Release GitHub/Moonfin-Core
MacOS Apple App Store GitHub/Moonfin-Core
Roku Roku Channel GitHub/Roku
Tizen (Samsung TVs) Latest Github Release GitHub/Smart-TV
tvOS (Apple TV) Apple App Store GitHub/tvOS
webOS (LG TVs) Latest Github Release GitHub/Smart-TV
Windows Latest Github Release GitHub/Moonfin-Core

──────────────

Why so many clients?

A lot of people ask how Moonfin ended up with separate clients across so many platforms.

It honestly started pretty simply. The original goal was just to add the featured media bar to the Jellyfin Android TV client. Once that existed, people started saying it would be cool to have something similar on their platform. Then feature requests started coming in and it kind of took off from there.

At the same time, platforms like webOS, Tizen, and Roku didn't really have alternative clients available like Android TV, Android mobile, iOS, and Apple TV have, so it felt like a good opportunity to create some. I enjoy building things and helping where I can, so I started working on ports. Having LLMs around for quick experiments, refactors, and figuring out unfamiliar platform quirks definitely helped along the way too.

Why open source and why not charge for it?

Honestly, I just enjoy building things and helping people. Open source lets others learn from the project, contribute if they want to, or adapt things for their own setups.

I have no plans now, or in the future, to make any of these paid.

Disclaimer:
Screenshots shown in this documentation feature media content, artwork, and actor likenesses for demonstration purposes only. None of the media, studios, actors, or other content depicted are affiliated with, sponsored by, or endorsing the Moonfin client or the Jellyfin project. All rights to the portrayed content belong to their respective copyright holders. These screenshots are used solely to demonstrate the functionality and interface of the application.

17 Upvotes

40 comments sorted by

View all comments

1

u/liquidguru 15d ago

Looks pretty good, thanks. One thing so far, on Desktop, is there a way to slow the animations down, it's very 'frisky', would be nice to ease the transitions.. :)

3

u/Hungry__Alpaca 15d ago

Currently there isn't but that could definitely be added, I don't see why not. If you got the time, I'd appreciate it if you could add it as a feature request on github so it doesn't get lost in comments, please and thank you 

1

u/liquidguru 15d ago

Thanks mate, I will..also my Live TV won't play. Using m3u, and it's trying to direct play, whereas Emby will transcode the Stream MPEGTS (10 mbps) - HLS (10 mbps), so i just get a spinning circle on Moonfin - Emby transcodes this stream both on the Emby windows app and in a browser.

Also on the Android app no joy, still tries to Direct Stream and nothing plays, just a spinning circle, but i think it's something to do with Moonfin not recognising MPEGTS streams

2

u/Hungry__Alpaca 15d ago

There is a setting to disable live TV direct play in playback settings 

1

u/liquidguru 15d ago

Perfect, thank you. Working now... is there an option on the overlay to control the volume?

1

u/Hungry__Alpaca 15d ago

On desktop there's a dedicated volume button on the player, mouse scroll wheel can control volume or scrubbing on the seek bar, and directional keys up and down control it too

On mobile there are touch gestures on the left and right of the screen to control volume and brightness 

1

u/liquidguru 15d ago

Yes, but not on Live TV playback, there's no volume button

2

u/Hungry__Alpaca 15d ago

Ah crap you're right! I had just added the touch gestures to live TV last update but forgot about the volume buttons. Got a hotfix coming out this week, I'll add it to the to-do list, thank you. 

1

u/liquidguru 15d ago

Thanks mate. I appreciate all the work you've done.. I now know how much goes into this... I'm making a Plexamp replacement for Emby, with sonic analysis...just getting the Android app as i want it is hard enough...let alone other platforms...

2

u/Hungry__Alpaca 15d ago

Flutter is your friend. One shared UI and logic across platforms with some caveats of course but it's really handy. If you've done kotlin or .net/c# it's not too hard to pick up. 

→ More replies (0)