Skip to main content

Music

Albums are organized in folders, with one folder containing one and only one album. Jellyfin does not care how you organize albums together, as long as each album is contained within one folder. Filenames generally do not matter since the info will be scraped from the embedded metadata of the tracks. If no other metadata was found, Jellyfin uses the file names as track titles.

Music
├── Some Artist
│ ├── Album A
│ │ ├── Song 1.flac
│ │ ├── Song 2.flac
│ │ └── Song 3.flac
│ └── Album B
│ ├── Track 1.m4a
│ ├── Track 2.m4a
│ └── Track 3.m4a
└── Album X
├── Whatever You.mp3
├── Like To.mp3
├── Name Your.mp3
└── Music Files.mp3

While Jellyfin generally doesn't use the file names for identification, file names containing special characters can still cause problems. The following characters are known to cause issues: <, >, :, ", /, \, |, ?, *

Discs

Albums with several discs are identified by the metadata tags with the disc number and total discs fields. Place the tracks for all discs in one folder. They can optionally be separated into disc folders, but embedded metadata takes priority.

Music
├── Album 1
│ ├── Disc 1 Track 1.ogg
│ ├── Disc 1 Track 2.ogg
│ ├── Disc 2 Track 1.ogg
│ ├── Disc 3 Track 1.ogg
│ ├── Disc 3 Track 2.ogg
│ └── Disc 3 Track 3.ogg
└── Album 2
├── Disc 1
│ ├── Disc 1 Track 1.aiff
│ └── Disc 1 Track 2.aiff
├── Disc 2
│ ├── Disc 2 Track 1.aiff
│ ├── Disc 2 Track 2.aiff
│ └── Disc 2 Track 3.aiff
└── Disc 3
└── Disc 3 Track 1.aiff

Lyrics

Lyrics must be contained in the same folder and match the filename for their corresponding item. For example: The lyric file for 01 Death Eternal.mp3 must be 01 Death Eternal.lrc, 01 Death Eternal.elrc or 01 Death Eternal.txt.

Music
└── Some Artist
└── Album A
├── Song 1.flac
├── Song 1.lrc
├── Song 2.flac
├── Song 2.lrc
├── Song 3.flac
└── Song 3.lrc

Lyrics can be jumped to within Jellyfin's UI, meaning it's possible for a user to click on any line and jump straight to the corresponding timestamp where the line appears in the song. The lyrics file can be synchronised or unsynchronised. It can have some extra metadata, but won't be shown in the Jellyfin client.

  • Synchronized lyrics are interactive, enabling users to click on any line to jump directly to the corresponding timestamp in the song. You have the option to either manually synchronize the text, which can be time-consuming and may lack accuracy, or utilize lyrics synchronization software such as MiniLyrics. A synchronised lyrics file would likely look something like the following:
[ar: Some Artist]
[ti: Song 1]
[al: Album 1]
[by: Author]
[length: 2:57]
[00:10.89]Line 1
[00:14.58]Line 2
[00:16.78]Line 3
[00:21.03]Line 4
[00:24.86]Line 5
(...)
  • Unsynchronized lyrics are easier to implement, but will be harder for users to sing along. Such a file would look something like this:
Line 1
Line 2
Line 3
Line 4
Line 5
(...)

Metadata Images

Images can either be provided as external files within the media folders, or embedded in the media files themselves. When external imaged are provided, they should be placed alongside the media files. When they are provided, they will take precedence over other sources.

Album
├── cover.jpg
├── backdrop.webp
├── logo.png
├── Track 1.m4a
└── Track 2.m4a

When no images are provided for music, Jellyfin will take the cover image from the first track that has an embedded cover image.

Image types:

TypeDescription
PrimaryThe primary cover image
BackdropBackground image in media page 1
BannerDisplayed when browsing library in banner mode. Video only. 2
LogoLogo displayed on the top of a media item.
ThumbThumbnail for homepage and for browsing library in thumb mode. Video only. 2

1Multiple backdrop images can be used to cycle through several over time. Simply append a number to the end of the filename directly after or after a hyphen, e.g. backdrop-1.jpg, backdrop2.jpg.

2These can be added to both video and audio content, but are not used by any client for audio conent.

Filenames, their respective types and supported media types

Unless otherwise noted, all filenames can be used either standalone (e.g. logo.png) or as a suffix (e.g. movie-logo.png)

FilenameTypeMoviesSeriesSeasonEpisodeMusic
posterPrimary2
folderPrimary2
coverPrimary2
defaultPrimary2
moviePrimary2
showPrimary
jacketPrimary
thumb (suffix) 1Primary
backdropBackdrop2
fanartBackdrop2
backgroundBackdrop2
artBackdrop2
extrafanart (folder)Backdrop2
bannerBanner
logoLogo2
clearlogoLogo2
landscapeThumb
thumbThumb

1 For example: S01E01 Some Episode-thumb.jpg
2 These file names can also be embedded in supported media containers (e.g. mkv) and will be used when the Embedded Image Extractor source is enabled for movies.

Below is a screenshot showing the 3 main types of images in Jellyfin

Album Image View

Unused types are listed below. While they are unused by official clients, they may be used by 3rd party clients.
TypeDescription
ArtUnused
DiscUnused
BoxUnused
MenuUnused
ChapterUnused
BoxRearUnused
ProfileUnused
ScreenshotUnused, Deprecated
FilenameTypeMoviesSeriesSeasonEpisodeMusic
discDisc
cdartDisc
discartDisc
clearartArt

File Extensions / Containers

Jellyfin supports most common music formats, with some exceptions:

  • MP4 with only audio: .mp4 files won't be recognized as music. Please rename them to .m4a.
  • MKV / WebM with only audio: .mkv and .webm files won't be recognized as music. Please rename them to .mka.
  • WebA: .weba files aren't supported. Please rename them to .mka
  • .flac files with embedded WebP images or ID3 tags may fail to play in Chromium based browsers (Chrome, Edge, Opera, Brave etc.) or Firefox. Please enable Always remux FLAC audio files in the client settings if you encounter this issue.
  • Files with ID3v1 tags have a length limit of 30 bytes for most fields. Anything longer will be truncated. Please upgrade to ID3v2.4.
Alternate containers

Problematic files can be remuxed to .mka containers with ffmpeg with this command:

ffmpeg -i <Input File> -c:a copy <Output File>.mka

Do note that the metadata may be messed up and images might not carry over, so the metadata will have to be restored either manually or using another program.