MCPcopy
hub / github.com/jellyfin/jellyfin-web

github.com/jellyfin/jellyfin-web @v10.11.11 sqlite

repository ↗ · DeepWiki ↗ · release v10.11.11 ↗
4,493 symbols 13,436 edges 786 files 466 documented · 10%
README

Jellyfin Web

Part of the Jellyfin Project


Logo Banner

GPL 2.0 License Current Release Translation Status

Donate Feature Requests Chat on Matrix Join our Subreddit

Jellyfin Web is the frontend used for most of the clients available for end users, such as desktop browsers, Android, and iOS. We welcome all contributions and pull requests! If you have a larger feature in mind please open an issue so we can discuss the implementation before you start. Translations can be improved very easily from our Weblate instance. Look through the following graphic to see if your native language could use some work!

Detailed Translation Status

Build Process

Dependencies

  • Node.js
  • npm (included in Node.js)

Getting Started

  1. Clone or download this repository.

sh git clone https://github.com/jellyfin/jellyfin-web.git cd jellyfin-web

  1. Install build dependencies in the project directory.

sh npm install

  1. Run the web client with webpack for local development.

sh npm start

  1. Build the client with sourcemaps available.

sh npm run build:development

Directory Structure

[!NOTE] We are in the process of refactoring to a new structure based on Bulletproof React architecture guidelines. Most new code should be organized under the appropriate app directory unless it is common/shared.

.
└── src
    ├── apps
    │   ├── dashboard           # Admin dashboard app
    │   ├── experimental        # New experimental app
    │   ├── stable              # Classic (stable) app
    │   └── wizard              # Startup wizard app
    ├── assets                  # Static assets
    ├── components              # Higher order visual components and React components
    ├── constants               # Common constant values
    ├── controllers             # Legacy page views and controllers 🧹 ❌
    ├── elements                # Basic webcomponents and React equivalents 🧹
    ├── hooks                   # Custom React hooks
    ├── lib                     # Reusable libraries
    │   ├── globalize           # Custom localization library
    │   ├── jellyfin-apiclient  # Supporting code for the deprecated apiclient package
    │   ├── legacy              # Polyfills for legacy browsers
    │   ├── navdrawer           # Navigation drawer library for classic layout
    │   └── scroller            # Content scrolling library
    ├── plugins                 # Client plugins (features dynamically loaded at runtime)
    ├── scripts                 # Random assortment of visual components and utilities 🐉 ❌
    ├── strings                 # Translation files (only commit changes to en-us.json)
    ├── styles                  # Common app Sass stylesheets
    ├── themes                  # Sass and MUI themes
    ├── types                   # Common TypeScript interfaces/types
    └── utils                   # Utility functions
  • ❌ — Deprecated, do not create new files here
  • 🧹 — Needs cleanup
  • 🐉 — Serious mess (Here be dragons)

Extension points exported contracts — how you extend this code

Plugin (Interface)
(no doc) [1 implementers]
src/types/plugin.ts
Window (Interface)
(no doc)
src/global.d.ts
ConnectResponse (Interface)
(no doc)
src/apiclient.d.ts
ListItemLinkProps (Interface)
(no doc)
src/components/ListItemLink.tsx
FetchOptions (Interface)
(no doc)
src/utils/fetchLocal.ts
Section (Interface)
(no doc)
src/apps/stable/features/search/types.ts
ColorSchemeOverrides (Interface)
(no doc)
src/themes/themes.ts
Size (Interface)
(no doc)
src/hooks/useElementSize.ts

Core symbols most depended-on inside this repo

push
called by 775
src/components/router/routerHistory.ts
getAttribute
called by 297
src/components/scrollManager.js
on
called by 251
src/components/alphaPicker/alphaPicker.js
getApiClient
called by 189
src/plugins/syncPlay/core/Manager.js
show
called by 180
src/components/sortmenu/sortmenu.js
hide
called by 178
src/components/upnextdialog/upnextdialog.js
off
called by 135
src/components/alphaPicker/alphaPicker.js
get
called by 119
src/scripts/settings/appSettings.js

Shape

Function 2,879
Method 1,164
Interface 246
Class 175
Enum 29

Languages

TypeScript100%
Python1%

Modules by API surface

src/components/playback/playbackmanager.js157 symbols
src/plugins/htmlVideoPlayer/plugin.js103 symbols
src/plugins/chromecastPlayer/plugin.js96 symbols
src/controllers/itemDetails/index.js87 symbols
src/controllers/playback/video/index.js76 symbols
src/plugins/sessionPlayer/plugin.js73 symbols
src/scripts/settings/userSettings.js52 symbols
src/scripts/libraryMenu.js48 symbols
src/plugins/htmlAudioPlayer/plugin.js46 symbols
src/controllers/list.js46 symbols
src/components/cardbuilder/Card/cardHelper.ts44 symbols
src/plugins/syncPlay/ui/players/NoActivePlayer.js42 symbols

Dependencies from manifests, versioned

@babel/core7.27.4 · 1×
@babel/plugin-transform-modules-umd7.27.1 · 1×
@babel/preset-env7.27.2 · 1×
@babel/preset-react7.27.1 · 1×
@emotion/react11.14.0 · 1×
@emotion/styled11.14.0 · 1×
@eslint-community/eslint-plugin-eslint-comments4.5.0 · 1×
@eslint/js9.30.1 · 1×
@fontsource/noto-sans5.2.7 · 1×
@fontsource/noto-sans-hk5.2.6 · 1×
@fontsource/noto-sans-jp5.2.6 · 1×
@fontsource/noto-sans-kr5.2.6 · 1×

For agents

$ claude mcp add jellyfin-web \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact