Contributing to Jellyfin

Thank you for your interest in contributing to the Jellyfin project! This page and its children desribe the ways you can contribute, as well as some of our policies. This should help guide you through your first Issue or PR.

Issues

We use GitHub Issues extensively to track open problems, new enhancements or features, and other aspects of the development of Jellyfin.

Please see the getting help page for help with troubleshooting and finding bugs, and the documentation on Issues for more information on how to submit good Issues.

Contributing Code to Jellyfin

The Jellyfin project consists of a C# core server, a Javascript-based UI, and a number of client applications written in various languages and frameworks. If you have experience with these languages, we're always grateful for any contributions you might want to make!

For general guidelines on how the project works, including how to set up your development copy, make changes, and guidelines on Pull Requests (PRs), please see the documentation on contributing code. Jellyfin follows a "fork and PR" methodology; if you're not familiar with this, please see the relevant section.

Other Contributions to Jellyfin

Even if you can't contribute code, you can still help Jellyfin! The two main things you can help with are testing and creating Issues, and contributing to documentation, translations, and other non-code components.

Documentation

Documentation is incredibly helpful! All these docs are written using mkdocs via readthedocs.io. You can find the raw markdown in the Jellyfin documentation repository. Pull requests are welcome!

Translations

If you're interested in helping to translate Jellyfin into your local language, we use Weblate running at translate.jellyfin.org to handle translations. These are collected in the translations branchs of the various repositories and are merged into the master branches before each release.

Testing

Testing is the easiest way to contribute. Simply use Jellyfin, and if you run into problems, let us know. This is the most common way we uncover bugs, through a user doing something we hadn't thought of. If the issue does end up being related to the code, a bug issue can then be opened.