[HN Gopher] A Call for Developers - Jellyfin
       ___________________________________________________________________
        
       A Call for Developers - Jellyfin
        
       Author : tetris11
       Score  : 171 points
       Date   : 2023-10-02 20:40 UTC (2 hours ago)
        
 (HTM) web link (jellyfin.org)
 (TXT) w3m dump (jellyfin.org)
        
       | shikhathakur wrote:
       | [flagged]
        
       | j1elo wrote:
       | As a developer who only works on Linux systems, how is the dev
       | story for C#? I guess Mono is still a thing, and that's the
       | runtime that C# projects use to run, right?
       | 
       | I've always felt that C# felt a bit out of place when not in a
       | Windows system, but maybe I've been always wrong. Never had the
       | opportunity (or need) to use it at work, so I'm pretty ignorant
       | of how it behaves and how good the tooling is to write it from
       | Mac or Linux.
       | 
       | OTOH I've read multiple times that it's a nicer Java and F# seems
       | to be well liked around here, too.
        
         | Macha wrote:
         | It's a little funky on Arch to get it installed and with the
         | death of Mono the only option for IDE is microsoft's closed
         | version of vs code as the c# plugin doesn't work on vscodium.
         | (And much like Java, lots of C# language design assumes you're
         | using an IDE).
         | 
         | But apart from that for a web app it's fine.
        
           | mananaysiempre wrote:
           | Do the OmniSharp LSPs[1,2] not work with a generic LSP editor
           | plugin (e.g. kak-lsp)?
           | 
           | [1] https://github.com/OmniSharp/omnisharp-roslyn
           | 
           | [2] https://github.com/OmniSharp/csharp-language-server-
           | protocol
        
           | cjblomqvist wrote:
           | Rider works very good (but costs you some $$$ off course).
        
           | actionfromafar wrote:
           | You _can_ wrangle C# with minimal IDE support, but it 's not
           | as smooth. It's easier to fix little things than to green-
           | field new stuff, IMHO.
        
         | papercrane wrote:
         | Mono is still a thing, but Jellyfin uses .NET Core, which is a
         | FOSS runtime that Microsoft provides.
        
           | neonsunset wrote:
           | It's just .NET now, without the Core part. Mono remains a
           | runtime flavour for special targets but it's being slowly
           | phased out in favour of CLR even on those special targets
           | (for example iOS which has historically relied on MonoAOT,
           | but now can be targeted with NativeAOT too).
           | 
           | Also, I'd really love if people stopped exclusively
           | attributing .NET's progress to Microsoft. Yes, MSFT does the
           | steering and funding, and employs teams working on the
           | ecosystem, but the development happens in the open, and a lot
           | of runtime improvements have been community contributions.
        
         | mvdtnz wrote:
         | Your view of C# is at least 6 years out of date.
        
         | cjblomqvist wrote:
         | C# runs natively on Linux (have done for many years now). AFAIK
         | even on Azure people prefer to run it on Linux machines
         | (including the place I work for). Performance wise I believe it
         | runs equal to faster. A lot of C# devs (majority) now work on
         | none Windows machines (they were very quick to add support for
         | the new Mac arch as well).
         | 
         | TLDR; C# the language is as good or even better on none-Windows
         | nowadays.
        
           | leetharris wrote:
           | This is only true if you're talking about non-GUI apps. MAUI
           | is trying to fix this but in my experience it has been a
           | rocky start.
           | 
           | But for backend and CLI stuff totally agree, works great on
           | Linux
        
             | generichuman wrote:
             | > This is only true if you're talking about non-GUI apps
             | 
             | It is also true for GUIs if you're using Avalonia [0]. I
             | use it to develop GUI apps on Linux, it works very well
             | (Nothing I can show publicly, sadly).
             | 
             | Obviously it doesn't use native controls, but it is a solid
             | GUI framework.
             | 
             | [0] https://www.avaloniaui.net/
        
             | neonsunset wrote:
             | To be fair, the only real good solution that works for
             | native crossplat GUI applications is Flutter. Most other
             | offerings always end up being worse one way or another than
             | Avalonia/MAUI/Uno.
        
         | distract8901 wrote:
         | C# on Linux is only slightly more annoying than Windows. You
         | have to make some effort to install the SDKs and naturally some
         | of the system APIs behave slightly differently, but overall I
         | have only a very slight preference for windows here.
         | 
         | Mono does still exist, but since like 2015 or so C# has been
         | supported natively on Linux. No one really uses mono anymore
         | AFAIK. Its only purpose is running dotnet framework apps as
         | opposed to dotnet core
        
           | phpisthebest wrote:
           | what you need to do is install powershell on linux, and set
           | that to be your default shell, then install dotnet
           | 
           | Once complete you will have the best linux environment to
           | develop on :)
        
         | Rapzid wrote:
         | > how is the dev story for C#
         | 
         | It's fantastic and it runs natively on Linux.
         | 
         | Mono is still around and used for some niche use cases(WASM,
         | interpreter, etc).
        
           | WorldMaker wrote:
           | Also Mono and the rest of .NET are in the same open source
           | repositories today and it isn't as much a case of replacement
           | as a proper code refactor and merge over the course of the
           | last several years (by both Microsoft and a large open source
           | community).
        
       | irishloop wrote:
       | It is a bit funny to me that reading this, I can only guess that
       | Jellyfin is a... Plex clone? I guess the writer assumes I already
       | know about/want to improve the product which IS its intended
       | audience, but coming from HN I'm just like what... is... it...
        
         | afavour wrote:
         | That's just the nature of HN, you can post absolutely any link
         | on here and I don't think it's reasonable to expect a blog post
         | author to accommodate someone arriving on the page with zero
         | context.
         | 
         | The Jellyfin blog achieves one important criteria: when you
         | click the logo at the top it takes you to the _actual_
         | homepage, rather than a blog homepage. So if you want content
         | on what Jellyfin is it's only one click away.
        
         | LeoPanthera wrote:
         | Jellyfin is a Plex clone, yes. One I'm hoping to switch to
         | since Plex banned all servers hosted on Hetzner.
        
         | jtriangle wrote:
         | Jellyfin is a fork of Emby, that happened when emby close-
         | sourced a bunch of things and pissed everyone off.
         | 
         | It's not really a plex clone inasmuch as it's a truly self-
         | hosted alternative, given that plex uses centralized auth (aka
         | you're possibly back to VLC if your internet is out).
         | 
         | I've used Jellyfin for years now, hasn't really skipped a beat
         | aside from dumping the entire library DB when it started
         | without the library storage spun up, and even that was just a
         | rescan overnight and everything was back and happy.
        
       | distract8901 wrote:
       | Oh, I had no idea jellyfin was based on C#.
       | 
       | I started my career as a C# dev, but now I only write C++. I miss
       | C# dearly and have been badly wanting a project to flex those
       | muscles on.
       | 
       | I guess I'll dive into jellyfin now. I've got a list of
       | annoyances and now that I know it's C#, I'm ready to get fixing
        
       | wargames wrote:
       | Around a year ago I jumped in, picked up some tasks, submitted
       | one or two PRs to fix where exceptions were being used for flow
       | control, basic stuff to give the maintainers confidence that I
       | could contribute. All they did was say those exceptions -- which
       | happen every time the app starts -- don't need to be fixed.
       | 
       | A bit of a turn off for wanting to help on the project....
        
         | lozenge wrote:
         | I don't know the full context of the situation, but when you
         | have a limited amount of time to tend to PRs, it doesn't make
         | sense to review non functional changes. It also depends on what
         | their testing situation is like. Are they relying on their
         | canary users to report issues, or do they have integration
         | tests?
         | 
         | There's also stuff like Hacktoberfest which used to encourage
         | pointless PRs, and MOOCs or real courses which involve
         | submitting PRs that often have no actual value to the project,
         | which makes maintainers wary.
         | 
         | If anything it would make more sense to do it the other way
         | around - make something useful, then once you are "in" they can
         | wave through your non functional changes without much thought.
        
           | righthand wrote:
           | [dead]
        
         | righthand wrote:
         | [dead]
        
         | [deleted]
        
       | mmh0000 wrote:
       | I do not understand why anyone uses Jellyfin, I've tried it
       | twice, and it seems soo finicky and opinionated.
       | 
       | I've always just had a Linux computer hooked up to the T.V. Add a
       | little bit of ktorrent, VLC, and SMB. Never really had any
       | problems with this and its much much simpler.
        
         | jethro_tell wrote:
         | Tell me you live alone or only with a partner in a single TV
         | home.
         | 
         | Multiple users, multiple locations, one setup. That's the
         | value.
        
         | Clamchop wrote:
         | Hooking the video out of a computer to a TV isn't the only use
         | case. Once you can stream to any device and multiples of them,
         | transcoding on the fly, with a good UX that saves your spot and
         | tells you what's new with artwork and what seasons or special
         | cuts are available, each attached to user profiles for multiple
         | people, with good search including in metadata, and toss in the
         | ability to download subtitles on demand and whatever else, you
         | will be well on your way to reinventing Jellyfin and other
         | plex-alikes!
         | 
         | I understand favoring simplicity for a simple use case, but it
         | obviously doesn't scratch every itch.
        
         | shermanm wrote:
         | Do you live with non-technical people or have visitors to your
         | house? I have a kid and a wife who isn't as nerdy as I am. Plex
         | just works. I can show a babysitter or a grandparent how to use
         | it in about a minute. Can't say the same for a Linux box, as
         | much as I'd love for that to be the solution.
        
         | righthand wrote:
         | I agree. Media specific OSes are just okay but I have no
         | problem about plugging my laptop into an HDMI cable to watch
         | something. I have no anxiety about how a laptop sitting on a tv
         | stand will look.
        
           | afavour wrote:
           | I don't think anyone is using Jellyfin because they have
           | anxiety about what their laptop looks like on a TV stand.
           | 
           | My whole family uses Plex, they can operate it incredibly
           | simply with a remote and don't have to unplug and replug a
           | thing. The simplicity is key, if you're only catering for
           | yourself/an exclusively techie audience then it's not
           | necessary.
        
         | hotnfresh wrote:
         | There's little benefit if you're the only one using it and are
         | happy with it. Aside from TV-attached PCs sometimes being a lot
         | fiddlier at providing fully-correct video and audio output than
         | dedicated streaming boxes.
         | 
         | There are tons of benefits to Jellyfin if other people use your
         | set-up.
        
       | clutch89 wrote:
       | Hopefully chromecast functionality for Jellyfin iOS finally gets
       | developed, that's literally the only reason I use Plex instead of
       | Jellyfin. It'd be great if someone with chromecast API skills
       | hopped in and helped the team out!
        
       | bluedays wrote:
       | I want to use Jellyfin but that's no official client for Apple TV
        
         | bhaney wrote:
         | I've been using Swiftfin since I got an Apple TV, and it's...
         | okay. Lacks a lot of sorting/filtering options, gets janky and
         | starts loading movie cards in the wrong place if you scroll too
         | fast, and sometimes stops updating the progress bar for the
         | rest of the movie if you pause it, but it's still useable
         | enough.
        
         | xp84 wrote:
         | Are the existing clients that bad? I tried one years ago, and I
         | didn't have any issue with the Jellyfin client. I only stopped
         | using Jellyfin because Locast was killed off and that was my
         | main thing I was doing with it.
        
         | navanchauhan wrote:
         | Infuse media player[0][1] has an awesome Apple TV / iOS / macOS
         | client. It even integrates with Jellyfin.
         | 
         | [0] https://firecore.com/infuse
         | 
         | [1] https://jellyfin.org/posts/client-infuse/
        
           | hotnfresh wrote:
           | Infuse is great. I'd guess it's existence and quality level
           | are why the official client doesn't get more attention.
        
         | singhrac wrote:
         | There's Swiftfin, no? Development is a bit sparse but it's
         | worked ok in the past when I've needed it.
        
         | anotherhue wrote:
         | https://github.com/jellyfin/Swiftfin
         | 
         | I use it, it's fine.
        
       | mrb wrote:
       | As someone who has used Jellyfin and similar apps like Kodi, I
       | have to say I find their code quality and general software
       | architecture to be crap. I wish there was a good alternative. A
       | few examples:
       | 
       | I have installed the Jellyfin server on a Linux box, and the
       | Jellyfin app on a playback device (Google Chromecast with Google
       | TV). When the app detects the playback device or TV doesn't
       | support, say, the 7.1 Dolby audio stream in the media file being
       | played, it asks the server to transcode the media to something it
       | supports (eg. stereo audio). But while doing so, it transcodes
       | both video and audio, forcibly, even though it's only the audio
       | track that's causing the problem. The server is forced to
       | transcode on-the-fly a perfectly supported H.264 stream to...
       | another H.264 stream, while this could be avoided... _facepalm_
       | In theory this is rather simple to fix, as the Jellyfin server is
       | built on ffmpeg, and ffmpeg is perfectly capable of copying the
       | video stream while transcoding the audio stream. But the fact the
       | developer(s) chose to implement it this inefficiently doesn 't
       | give me much confidence in the rest of their architectural
       | choices.
       | 
       | I have also experimented with Kodi. Something in the scrapers
       | breaks every 6 months. And for everyone who knows the scrapers
       | are primordial in a nice user experience in Kodi. But for some
       | reason, in Kodi, scrapers are not first-party component, they are
       | third-party poorly-maintained junk that seems developed by random
       | people copy/pasting patches on the kodi web forums. Like the
       | Universal Movie Scraper code trying to pull the movie title and
       | description and actors from IMDB. Guess how this is implemented?
       | By some hot garbage of XML file hundreds of lines long,
       | containing regexes that have to be entity-encoded by hand when
       | edited. What is this? The 2000s?
        
         | [deleted]
        
       | navanchauhan wrote:
       | I love Jellyfin. Been using it for 3 years now, will definitely
       | participate in Hacktober fest!
        
       | hotnfresh wrote:
       | I looked at adding a much-requested and not-that-hard-to-add
       | feature a while back (allowlist-by-tag), got as far as figuring
       | out where to add it in the server code... but bailed when I
       | realized I'd need to shepherd PRs through at least two repos to
       | get the feature delivered, while juggling both repos to do
       | integration testing. Monorepos for tightly-coupled code are so
       | nice...
       | 
       | Maybe I'll give it another look.
       | 
       | [edit] incidentally, allowlist-based parental controls are one of
       | the best tools to have, and basically _nothing_ supports them,
       | which is really frustrating.
        
         | Modified3019 wrote:
         | If nothing else, I'd encourage you to send them feedback on
         | what makes you bounce off, as you probably weren't the only
         | one.
         | 
         | Hell it probably sucks for them too, but they've gotten used to
         | the suck and forgot about it.
        
         | beebmam wrote:
         | This is a huge problem with git/GitHub. Cross repo PRs could
         | simplify this process. I've wanted this as a feature for nearly
         | a decade.
        
           | foooorsyth wrote:
           | Git and multi-repo were a mistake. Git's packfile is a
           | disaster.
           | 
           | Checkout Sapling and ReviewStack. They look promising.
        
         | codexb wrote:
         | Plex supports allow lists and deny lists. Nice to be able to
         | gate most movies by rating and then allow some others on a per-
         | movie basis.
        
       | ncallaway wrote:
       | One suggestion I'll make to the Jellyfin team is to post this
       | call at the point where users are requesting things too.
       | 
       | In the example in the blogpost (Chromecast support), in the issue
       | I was asking a bit about how I could help implement the feature (
       | https://github.com/jellyfin/Swiftfin/issues/271#issuecomment...).
       | 
       | Even if there's nothing I could have productively done to
       | contribute to that feature, I would absolutely have gone to those
       | getting started features.
       | 
       | So, I'd encourage the team to have a pretty quick hand in issues
       | when people are asking to help to link to this blog post and
       | getting started resources.
       | 
       | Finally, none of this is in anyway a criticism of how any
       | interaction was handled. I super appreciate everyone that works
       | on Jellyfin, and I know onboarding developers can often feel
       | like/be more work than not. Just a suggestion for a good spot to
       | add some CTA links that I think would convert reasonably well
        
       ___________________________________________________________________
       (page generated 2023-10-02 23:00 UTC)