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