[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)