Methods
(static) AppearsOnList(id) → {dynamic}
Get list of albums an artist appears on as a contributing artist (not album artist). Uses ContributingArtistIds which Jellyfin defines as artists who appear on the album but are NOT tagged as the album artist — so this row is mutually exclusive with MusicAlbumList(). Sorted by year descending.
| Name | Type | Description |
|---|---|---|
id | string |
- Source
- Type:
- dynamic
(static) ArtistOverview(name) → {dynamic}
Music Artist Data
| Name | Type | Description |
|---|---|---|
name | string |
- Source
- Type:
- dynamic
(static) AudioItem(id) → {dynamic}
Get audio item metadata (raw, no transform)
| Name | Type | Description |
|---|---|---|
id | string |
- Source
- Type:
- dynamic
(static) AudioStream(id) → {dynamic}
| Name | Type | Description |
|---|---|---|
id | string |
- Source
- Type:
- dynamic
(static) BackdropImage(id) → {dynamic}
| Name | Type | Description |
|---|---|---|
id | string |
- Source
- Type:
- dynamic
(static) GetIntroVideos(id) → {dynamic}
Get Intro Videos for an item
| Name | Type | Description |
|---|---|---|
id | string |
- Source
- Type:
- dynamic
(static) GetItemLyrics(itemId) → {dynamic}
Get lyrics for an Audio item.
| Name | Type | Description |
|---|---|---|
itemId | string | The Audio item ID |
- Source
LyricDto: { Metadata: {...}, Lyrics: [{Start: ticks, Text: string}] }, or invalid
- Type:
- dynamic
(static) GetMediaSegments(id) → {dynamic}
GetMediaSegments: Fetches media segments for an item (Intro, Outro, Recap, etc.).
Only available on Jellyfin 10.10.0+ servers. Returns invalid for older servers.
| Name | Type | Description |
|---|---|---|
id | string | The item ID |
- Source
- { Items: [MediaSegmentDto], TotalRecordCount } or invalid
- Type:
- dynamic
(static) GetSongsByArtist(id, paramsopt) → {dynamic}
Get list of songs belonging to an artist
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
id | string | |||
params | object | <optional> | {} |
- Source
- Type:
- dynamic
(static) GetSongsByArtistBroad(id) → {dynamic}
Get all Audio tracks by an artist in any capacity (album artist OR contributing artist). Broader than GetSongsByArtist (which uses AlbumArtistIds). Used for the artist Songs row so songs on compilation albums or items with mismatched album-level tags still surface.
| Name | Type | Description |
|---|---|---|
id | string | MusicArtist item ID |
- Source
- Type:
- dynamic
(static) ItemDetailsMetaData(id, forceRefreshopt) → {dynamic}
MetaData for an item detail screen — includes People, Genres, and Studios in addition to Chapters and Trickplay. Use this instead of ItemMetaData() when populating a detail view.
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
id | string | |||
forceRefresh | boolean | <optional> | false |
- Source
- Type:
- dynamic
(static) ItemMetaData(id, fieldsopt, forceRefreshopt) → {dynamic}
MetaData about an item — returns a JellyfinBaseItem node.
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
id | string | |||
fields | string | <optional> | "Chapters,Trickplay" | Comma-separated Jellyfin fields to request. Defaults to Chapters and Trickplay only. |
forceRefresh | boolean | <optional> | false |
- Source
- Type:
- dynamic
(static) ItemPostPlaybackInfo(id, mediaSourceIdopt, audioTrackIndexopt, subtitleTrackIndexopt, startTimeTicksopt, videoMetadataopt, bypassDoviPreservationopt, forceTranscodingopt) → {dynamic}
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
id | string | |||
mediaSourceId | string | <optional> | "" | |
audioTrackIndex | integer | <optional> | -1 | |
subtitleTrackIndex | integer | <optional> | SubtitleSelection.NONE | |
startTimeTicks | longinteger | <optional> | 0& | |
videoMetadata | dynamic | <optional> | invalid | |
bypassDoviPreservation | boolean | <optional> | false | |
forceTranscoding | boolean | <optional> | false |
- Source
- Type:
- dynamic
(static) MusicAlbumList(id) → {dynamic}
Get list of albums where this artist is the album artist (strict: AlbumArtistIds only). Sorted by year descending so the discography reads newest-first. Does NOT include albums the artist merely contributes to — see AppearsOnList().
| Name | Type | Description |
|---|---|---|
id | string |
- Source
- Type:
- dynamic
(static) MusicSongList(id) → {dynamic}
Get Songs that are on an Album
| Name | Type | Description |
|---|---|---|
id | string |
- Source
- Type:
- dynamic
(static) TVSeasons(id) → {dynamic}
Seasons for a TV Show
| Name | Type | Description |
|---|---|---|
id | string |
- Source
- Type:
- dynamic
(static) applyLiveTvMinSegments(postData) → {void}
applyLiveTvMinSegments: For HLS transcodes that report no source duration (live channels), request ≥8 segments per Roku's recommendation. Gives ~48 s seekable DVR window.
| Name | Type | Description |
|---|---|---|
postData | object |
- Source
- Type:
- void
(static) applyMediaSourceToPostData(postData, mediaSourceId, forceTranscoding) → {void}
applyMediaSourceToPostData: Applies the media source ID or live TV retry flags to a postData object. Live TV is detected by an empty mediaSourceId. On the first attempt, direct play is not disabled so the server can evaluate compatibility (matching web client behaviour). On retry, forceTranscoding=true sets EnableDirectPlay=false so the server provides a transcode URL instead.
| Name | Type | Description |
|---|---|---|
postData | object | The request body assoc array to modify |
mediaSourceId | string | Media source ID, or "" for live TV |
forceTranscoding | boolean | True when retrying with forced transcoding |
- Source
- Type:
- void
(static) optimizeAudioCodecListForSource(deviceProfile, channelCount) → {void}
Tailors a video transcoding profile's AudioCodec list to the current source's channel count so the server (and downstream HLS variant selection) can't fall back to a less-desirable codec.
Multichannel source (>2ch): Strips ALL stereo-output codecs (aac, mp3, flac, alac, pcm, lpcm, wav, vorbis). Without this, Jellyfin's HLS muxer offers BOTH the surround codec AND a stereo fallback as separate variants in the master playlist, and Roku's HLS player has been observed (via in-house testing on physical hardware; no upstream tracking issue at time of writing) to pick the stereo variant — defeating the entire point of having surround passthrough hardware. Caller must already have verified the device has surround passthrough before invoking with channelCount > 2.
Stereo source (≤2ch): Strips surround passthrough codecs (eac3, ac3, dts) plus aac so transcoding falls through to mp3. Avoids handing the server a surround target codec for content that's only 2ch anyway.
| Name | Type | Description |
|---|---|---|
deviceProfile | object | |
channelCount | integer |
- Source
- Type:
- void
(static) searchMedia(query) → {object}
Render-thread wrapper: delegates search to SearchTask (task thread) and blocks until complete. Used by Main.bs SearchBox flow which shows a ProgressDialog while waiting.
| Name | Type | Description |
|---|---|---|
query | string |
- Source
- Type:
- object
(static) useTranscodeAudioStream(playbackInfo) → {dynamic}
| Name | Type | Description |
|---|---|---|
playbackInfo | dynamic |
- Source
- Type:
- dynamic