Naming conventions per library type
The scanner derives everything from paths and filenames, so getting the names right is what makes a library "just work". Chapter 4 gives the short version; this page is the full reference of what the parsers actually accept, per library type. Files and directories that match no rule are silently ignored — a title that never shows up is almost always a naming problem.
Rules that apply everywhere:
- A year suffix is always exactly four digits in parentheses:
(2019).[2019],2019and(19)are not recognised. - Extension matching is case-insensitive (
Cover.JPGworks). - Directories whose name starts with a
.are skipped entirely. Dots elsewhere in a name are fine — "J.K. Rowling", "R.E.M." and "Dr. Stone" all work. - Artwork typing is by substring match on the filename (minus extension): a name containing
backgroundorthumbbecomes the backdrop, one containingcover,folder,posterorartistbecomes the poster/cover — and when a name contains both kinds of token, backdrop wins. Which of these names are accepted at which directory level differs per library type; see each section.
Shows
{Show Name} ({year})/Season {N}/s{NN}e{NN}.mkv
The Wire (2002)/
tvshow.nfo
cover.png
Season 01/
s01e12.mkv
s01e12.en.srt
s01e12-thumb.jpg
Season 04/
s04e06-e07.mkv # double episode: one file, two episodes
- The show directory must end in
(year); a season folder directly under the library root is ignored. - Season folders are
Season {N}(case-insensitive,Season 1andseason 01both work). - Episode files carry an
sNNeNNtoken (1–4 digits each, case-insensitive):s01e12.mkv,S05E05.mp4. The show's title and year always come from the show directory, not the filename. - The season number in the filename wins over the folder:
Season 02/s01e01.mkvis filed under season 1. - Multi-episode files:
s04e06-e07.mkv(also writtens04e06e07ors04e06-07) creates both episodes pointing at the one file, up to three episodes per file. An implausible range (backwards, or wider than three) is logged and treated as the single first episode. - Video containers:
.mkv,.mp4,.webm,.m4v,.flv,.avi. Subtitles:.srtnext to the episode, matched by filename prefix; a language code between the last two dots (s01e01.en.srt,s01e01.nld.srt) sets the subtitle language. Picture-based subtitles embedded in the container (Blu-ray PGS, DVD VobSub) need nothing: the player shows them as they are on the disc. - NFO files:
tvshow.nfoat show level,sNNeNN*.nfoat episode level. - Artwork:
.jpg/.pngwhose name containscover,folder,posterorartist(poster) orbackground/thumb(backdrop) — substring match, backdrop wins on mixed names.
Movies
{Movie Name} ({year}).mkv
Heat (1995)/
Heat (1995).mkv
Heat (1995)-cover.jpg
- The filename must end in
(year)before the extension — that is what distinguishes a movie from a stray video file. A wrapping folder is optional;Movie (2024).mkvdirectly in the library root works too. - A suffix of letters/hyphens after the year is allowed and used for artwork, following the type
rule above:
Heat (1995)-cover.jpg(or-poster/-folder) becomes the poster,Heat (1995)-thumb.jpg(or-background) the backdrop. A bareHeat (1995).jpgcarries no type token and is dropped. - Same containers as shows (
.mkv,.mp4,.webm,.m4v,.flv,.avi). Movie-level.nfofiles and subtitles are currently not picked up for movies.
Music
{Artist}/{Album ({year})}/{NN} - {Track Title}.flac
The Beatles/
artist.nfo
artist.jpg
Abbey Road (1969)/
album.nfo
cover.jpg
01 - Come Together.flac
Grease_ Soundtrack (1991)/ # flat: no artist folder
01-Grease.flac
- Optional
(year)on the artist folder is the artist's birth year; on the album folder it is the release year. - Track numbers come from the leading digits of the filename:
01 - Title,01. Title,01-Titleall work;1-01 - Titleis read as disc 1, track 1. Without a leading number the--separated segments are scanned for one (Artist - 20 - Title→ track 20), and failing that the track number is taken from the audio tags. - Album folder names are normalized: a trailing format marker (
FLAC,(MP3),[FLAC], …) and a leading{Artist} -prefix are stripped, soThe Beatles - Abbey Road (1969) [FLAC]andAbbey Road (1969)are the same album. - A flat album directly under the library root (no artist folder) is allowed; the artist then
comes from the
album_artisttag in the files. Such a folder is one album, so itsalbumtag is only used as the album's title when it names the folder itself (ignoring case, a trailing(YYYY)and the punctuation a folder cannot hold:200 KM/H …for a200 KM_H …folder). A folder of unrelated singles therefore keeps the folder name instead of being titled after whichever single was scanned first. - Tags decide who performs what:
album_artistidentifies the album,artistthe performer of the individual track — on a compilation that per-track tag is the only place the real artist exists. Afeat./ft./featuringguest may stay in theartisttag: the server credits the primary artist and the guest separately, so the track shows up on both artist pages. An ampersand is left alone ("Simon & Garfunkel" stays one artist). - Artist names are matched ignoring case and repeated spaces, so "ABBA" and "Abba" are one artist.
- Audio formats:
mp3,flac,aac,opus,ogg,wav,m4a,wma. - Special files:
artist.nfoat artist level plus artist images whose name containsartist,folder,backgroundorthumb;album.nfoat album level plus covers whose name containscoverorfolder. Other.nfonames are ignored; typing follows the backdrop/poster rule above.
Books
{Author}/{Book Name}.epub
{Author}/{Book Name ({year})}/{NNN}_{Chapter}.mp3
Terry Pratchett/
artist.nfo
Guards! Guards!.epub # the epub…
Guards! Guards!/ # …and the audiobook: same book
album.nfo
cover.jpg
001_Chapter 1.mp3
002_Chapter 2.mp3
- The epub under the author and the audiobook folder converge on one book when they share the
same book name. A
(year)on the author folder is the birth year, on the book it is the publication year. - Chapter files start with 1–4 digits (
001_,01 -,12.); the number only determines ordering and may start at 0. An epub may also live inside the book folder (Author/Book/Book.epub). - A read-aloud edition can be named
{Book Name} (karaoke).epubso it lands on the same book — but whether it actually is read-aloud (EPUB 3 media overlays) is detected from the epub's contents, never from the name. The ISBN is likewise read from inside the epub, not the filename. - Audio formats: as music, plus
m4b. Special files:artist.nfoat author level plus author images whose name containsartist,folder,backgroundorthumb;album.nfoorbook.nfoat book level plus covers whose name containscoverorfolder.
Comics
{Series Name ({start year})}/{volume file}
Rick and Morty (2023)/
cover.jpg
Volume 27.cbz
Vol 3 - Subtitle.pdf
Issue 8.epub
Attack on Titan (2009)/
attackontitan_vol27.pdf
- Exactly two levels: series folder, volume files inside it. Deeper nesting and loose files in
the library root are ignored. The
(year)on the series folder is the series start year. - The volume number is parsed from the filename, in order of preference:
vol/volume+ number (Volume 27,vol 1.5,attackontitan_vol27),issue+ number or#N(Issue 8,Saga #12), or plain trailing digits (fairytail 3). Files without a number sort last. - Formats:
.cbz,.pdf,.epub. Several formats of the same volume (same base name) become one volume entry, and a trailing-Nis stripped as a re-download dedupe suffix —…part2.pdfand…part2-1.pdfare the same volume. AComicInfo.xmlis read from inside the cbz archive, not from the folder. - Series artwork:
.jpg/.jpeg/.pngwhose name containscover,folder,posterorbackground(typing per the backdrop/poster rule above).
Games
{platform}/{Title ({year})}/…
gbc/Tetris (1989)/Tetris.gbc
gbc/Tetris (1989)/cover.jpg
psx/Crash Bandicoot (1996)/Crash Bandicoot.cue
psx/Crash Bandicoot (1996)/Crash Bandicoot.bin
ps3/Demon's Souls (2009)/PS3_GAME/PARAM.SFO
ps3/Demon's Souls (2009)/PS3_GAME/USRDIR/EBOOT.BIN
pc/Celeste (2018)/Celeste.zip
linux/Stardew Valley (2016)/stardew_valley_1.6.sh
steam/Stardew Valley (2016)/appmanifest_413150.acf
steam/Stardew Valley (2016)/Stardew Valley/Stardew Valley.exe
- Platform folder first. Accepted names (case-insensitive):
nes,snes/sfc,n64,gb,gbc,gba,nds,psx/ps1,ps2,ps3,gc/gamecube,wii,pc/windows,linux,steam. Anything else under the library root is ignored. - One game per folder, named
Title (year); the year is optional and part of the game's identity, like books. A loose file directly under the platform folder is ignored. - ROM platforms: the launchable file is the one with the platform's extension (
z64/n64/v64,gb,gbc,gba,nds,sfc/smc,nes/fds,cue/chd/pbp,iso/chd,iso/gcm/rvz/wbfs); companions such as the.bintracks of a.cuetravel with it. Sub-folders of a ROM game are not scanned. - PS3: the game folder holds
PS3_GAME/PARAM.SFO(or one wrapper folder deeper,BLUS30443/PS3_GAME/…); the whole tree is served as it is. Title and title id come fromPARAM.SFO, the cover fromICON0.PNGwhen the folder has nocover.jpg. Only the marker file is scanned — a game is one entry, never one per file. - PC:
pc/takes one.zipof a ready-to-run Windows game (the exe at the zip's root or in a single top folder);linux/takes a GOG.shinstaller or a.tar/.tar.gz/.tar.xzof a ready-to-run Linux game. - Steam: the game folder holds the
appmanifest_<appid>.acffrom a Steam library and the install folder it names (installdir), copied fromsteamapps/common. Both are required; the player restores them into a local Steam library and starts the game through Steam, so the Steam account playing must own the game. - Artwork:
.jpg/.jpeg/.pngwhose name containscover,folder,posterorbackground, directly in the game folder.
Podcasts
No naming rules — a PODCAST library has no directory on disk at all. Episodes are fetched from
the RSS feed and downloaded into the cache; see chapter 4.
When something is not picked up
- Check the year format
(YYYY)and, for shows/movies, that the year is in the right place (directory for shows, filename for movies). - Check the depth: episodes must sit in
Show (year)/Season N/, comic volumes directly in their series folder — one level too deep or too shallow means invisible. - Check the extension against the lists above — anything else is skipped without an error.
- After renaming, run
scanLibrariesagain; renames are only picked up by a new scan.