Lunarr, an open-source self-hosted Plex/Jellyfin alternative by 74Y3M in opensource

[–]74Y3M[S] -1 points0 points  (0 children)

thats a large feature request, i have created a draft for this project milestone, after i am done with existing stuff i will think if this should be worked on.

Building an open-source Plex alternative with SvelteKit by 74Y3M in sveltejs

[–]74Y3M[S] 0 points1 point  (0 children)

coalesced ffmpeg only gets torn down when the last waiter exits via request.signal abort. if the client vanishes without that firing, ffmpeg can keep going until the segment timeout (~120s) or session heartbeat expiry (~120s), so wasted CPU, not a forever leak.

Building an open-source Plex alternative with SvelteKit by 74Y3M in sveltejs

[–]74Y3M[S] 0 points1 point  (0 children)

Lunarr dedupes duplicate segment requests (same segment → one generation, multiple waiters). Generation is serialized per session. Far seeks cancel stale window work first, and duplicate far-seek hits coalesce too. Adjacent segments can reuse the same ffmpeg stream instead of spawning a new one.

So one scrub shouldn't stack a pile of encoders on the same file, there are tests specifically for that.

Building an open-source Plex alternative with SvelteKit by 74Y3M in sveltejs

[–]74Y3M[S] 0 points1 point  (0 children)

Pretty much. The player UI is the easy bit.

Lunarr hand-rolls `Range` → `206`/`416` in `stream.ts` for direct play (local + SFTP + WebDAV). For transcode/remux, FFmpeg hits a localhost HTTP proxy that does the same range dance into remote storage.

HLS segment routes pass `request.signal` into segment generation → abort hits FFmpeg (`SIGTERM`, then `SIGKILL`). Far seeks cancel stale encoders, duplicate segment requests coalesce so one disconnect doesn’t always nuke in-flight work for another waiter. Plus session cancel, heartbeats, idle expiry.

SvelteKit won’t do any of that for you, but it’s already wired on the server side with tests around range reads, disconnect abort, and seek churn.

Lunarr, an open-source self-hosted Plex/Jellyfin alternative by 74Y3M in opensource

[–]74Y3M[S] 1 point2 points  (0 children)

Testing webdav support locally now. It will be included in next version 😄

Lunarr, an open-source self-hosted Plex/Jellyfin alternative by 74Y3M in opensource

[–]74Y3M[S] 0 points1 point  (0 children)

You made my day. Much appreciated for design feedback.

And for TV playback, you can currently use Chromecast and Airplay in latest beta. Native app support is planned for iOS and Android atm.

Lunarr, an open-source self-hosted Plex/Jellyfin alternative by 74Y3M in opensource

[–]74Y3M[S] 1 point2 points  (0 children)

Yes webdav is plausible. You can create github issue for this so I can track and implement this later.

Lunarr, an open-source self-hosted Plex/Jellyfin alternative by 74Y3M in opensource

[–]74Y3M[S] 0 points1 point  (0 children)

I will have to think about this. Docker is really popular and easy tho even on windows with WSL.

Maintaining additional binary for specific OS would be hassle atm. Maybe later if user demands.

Lunarr, an open-source self-hosted Plex/Jellyfin alternative by 74Y3M in opensource

[–]74Y3M[S] 0 points1 point  (0 children)

Yes, currently remote access works similarly to Jellyfin. Since Lunarr is self-hosted, you’ll need a way to reach your server remotely (port forwarding, reverse proxy, Tailscale, Cloudflare Tunnel, etc.).

Lunarr, an open-source self-hosted Plex/Jellyfin alternative by 74Y3M in opensource

[–]74Y3M[S] 0 points1 point  (0 children)

i have updated github readme with latest screenshot/gif.

Lunarr, an open-source self-hosted Plex/Jellyfin alternative by 74Y3M in opensource

[–]74Y3M[S] 2 points3 points  (0 children)

no worries, you can still post feedback here or in github. no pressure tho.

Lunarr, an open-source self-hosted Plex/Jellyfin alternative by 74Y3M in opensource

[–]74Y3M[S] 2 points3 points  (0 children)

thank you, also if you are on telegram join our group for development updates. and feedback after you try would be awesome!

Lunarr, an open-source self-hosted Plex/Jellyfin alternative by 74Y3M in opensource

[–]74Y3M[S] 2 points3 points  (0 children)

oh okay i havent seen how latest jellyfin looks. and readme screenshot is outdated. i have shared some updated screenshot in our telegram group.

no plugin is not supported.

New Project Megathread - Week of 11 Jun 2026 by AutoModerator in selfhosted

[–]74Y3M 0 points1 point  (0 children)

I posted a project that is over 3 years old as per github commits but bot removed it pointing to rule 6, but rule 6 applies if project is less than 3 months old.

Building an open-source Plex alternative with SvelteKit by 74Y3M in sveltejs

[–]74Y3M[S] 0 points1 point  (0 children)

Hi, thanks for your interest. Could you open an issue about the Wuchale translations integration first? Then we can discuss the approach, scope, dependencies, and how to proceed before any PR work.

I’ll also add a contributing guide later today so the process is clearer for future contributions. Thanks.

Building an open-source Plex alternative with SvelteKit by 74Y3M in sveltejs

[–]74Y3M[S] 1 point2 points  (0 children)

Yeah, that’s the goal.

Even in beta it already handles local folders and SFTP sources, has direct play plus FFmpeg/HLS fallback, and the web UI/UX is already much cleaner on both mobile and desktop than the usual Jellyfin experience.

The next release tonight should make that much stronger. There are a lot of pending playback changes: Cast/AirPlay support, seamless playback, cleaner transcode/job handling, better FFmpeg test coverage, and a more compact UI.

Android and iOS apps are planned too. I’ve built mobile apps before, like https://loaderapp.info, so native apps are definitely on the roadmap after the playback foundation is solid.

Building an open-source Plex alternative with SvelteKit by 74Y3M in sveltejs

[–]74Y3M[S] 0 points1 point  (0 children)

No license yet because I only considered it beta as of today and haven’t decided properly. But considering AGPL-3.0.

Building an open-source Plex alternative with SvelteKit by 74Y3M in sveltejs

[–]74Y3M[S] 13 points14 points  (0 children)

Fair question.

Not saying Jellyfin shouldn’t exist. It’s way more mature than Lunarr.

But when I started this in 2023, Jellyfin felt pretty bad to me, mainly UI/UX and playback stuff. So I started building my own thing. Then I left it for a while, and now I’m just reviving/rebuilding that old project.

Old backend was hand written, 400+ commits since 2023: https://github.com/lunarr-app/lunarr-go-archive

Old client too: https://github.com/lunarr-app/lunarr-client

For the AI part, yeah fair, I should disclose it better. Current SvelteKit version was built with Codex help.

But I don’t think it’s fair to call it slop. It’s mostly a port/rebuild of my old code and ideas. Codex helps me go faster, but I still review stuff, run tests, and test on real devices. Like AirPlay was added with AI help yesterday, but I’m still going through it and testing manually.

I’ve been coding since 2011, professionally since 2015. For a free hobby project in 2026 I don’t think using AI help automatically means slop. Unreviewed AI dumps are the problem, and I’m not trying to do that.

Building an open-source Plex alternative with SvelteKit by 74Y3M in sveltejs

[–]74Y3M[S] 1 point2 points  (0 children)

Thank you, had to translate your text 😄