Source Tree
Jellyfin is a maze of clients, plugins, and other useful projects. These source trees can serve as an excellent tool to inform new developers about the structure of several projects.
Jellyfin Server
- .ci:
Azure Pipelines Build definitions
- DvdLib:
DVD Anaylzer
- Emby.Dlna:
DLNA support for the server
- Profiles:
DLNA Profiles for clients
- Profiles:
- Emby.Drawing:
image processor managing the image encoder and image cache paths
- Emby.Naming:
parsers for the media filenames
- Emby.Notifications:
listening for events and sending the associated notification
- Emby.Photos:
metadata provider for photos
- Emby.Server.Implementations:
main implementations of the interfaces
- ScheduledTasks:
all scheduled tasks can be found here
- ScheduledTasks:
- Jellyfin.Api:
Jellyfin API
- Controller:
API controllers answering the Jellyfin API requests
- Helpers:
- MediaInfoHelper.cs:
logic for the stream builder that determines method of playback such as Direct Play or Transcoding
- MediaInfoHelper.cs:
- Controller:
- Jellyfin.Data:
models used in the Entity Framework Core Database schema
- Jellyfin.Drawing.Skia:
image manipulation like resizing images, making image collages
- Jellyfin.Networking:
managing network interaces and settings
- Jellyfin.Server.Implementations:
like Emby.Server.Implementations, implementations using the EF Core Database
- Jellyfin.Server:
main server project that starts the whole server
- MediaBrowser.Common:
common methods used throughout the server
- MediaBrowser.Controller:
interface definitions
- MediaBrowser.LocalMetadata:
metadata provider and saver for local images, local Collections and Playlists
- MediaBrowser.MediaEncoding:
managing ffmpeg while interacting with the media files
- MediaBrowser.Model:
defining models used throughout the server
- MediaBrowser.Providers:
managing multiple metadata sources
- MediaBrowser.XbmcMetadata:
metadata provider and saver for local .nfo files
- RSSDP: RSSDP library
, including custom changes, for the Simple Service Discovery (SSDP) protocol
- apiclient:
files used for generating the axios API client
- deployment:
files used while building Jellyfin for different plattforms
- tests:
multiple Unit Test projects testing Jellyfin functionality
- Dockerfile.*
Dockerfiles defining the Jellyfin Docker image
Web Client
- src:
- assets:
images, styles, splash screens, and any other static assets
- css:
all global stylesheets used throughout the client
- img:
images for things like device icons and logos
- splash:
progressive web apps will show these splash screens
- css:
- components:
custom elements used for different sections of the user interface
- playerstats.js:
display playback info in browsers and other clients that include the web source
- playerstats.js:
- controllers:
scripts that handle the logic for different pages
- elements:
custom UI components that are used globally such as buttons or menus
- legacy:
currently used for all polyfills and scripts related to backwards compatibility
- libraries:
dependencies that we eventually want to remove and include during the build step
- scripts:
any script that isn't tied to a UI element or page but rather general functionality
- strings:
translations for the entire interface
- themes:
custom and bundled themes can be found here in their own directories
- assets:
Kodi
- jellyfin_kodi
- database:
manipulating the local Jellyfin sqlite database
- dialogs:
code behind popup menus for user interaction
- entrypoint:
main add-on settings page
- helper:
small helper functions, mostly formatting or reused functions
- jellyfin:
interacting with the server
- objects:
- kodi:
handling local Kodi media types and database
- kodi:
- database:
- resources:
- language:
string files for localization
- skins:
design of popup menus for user interaction
- language: