mirror of
https://github.com/navidrome/navidrome.git
synced 2026-04-28 11:29:38 +00:00
Some checks are pending
Pipeline: Test, Lint, Build / Get version info (push) Waiting to run
Pipeline: Test, Lint, Build / Lint Go code (push) Waiting to run
Pipeline: Test, Lint, Build / Test Go code (push) Waiting to run
Pipeline: Test, Lint, Build / Test JS code (push) Waiting to run
Pipeline: Test, Lint, Build / Lint i18n files (push) Waiting to run
Pipeline: Test, Lint, Build / Check Docker configuration (push) Waiting to run
Pipeline: Test, Lint, Build / Build (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-1 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-2 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-3 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-4 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-5 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-6 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-7 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-8 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-9 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-10 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Push to GHCR (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Push to Docker Hub (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Cleanup digest artifacts (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build Windows installers (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Package/Release (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Upload Linux PKG (push) Blocked by required conditions
The Vorbis/FLAC VERSION field is for track-level disambiguation (e.g. remix, live, 30s edit), not album versioning. Including it in the albumversion aliases caused albums to split incorrectly when tracks had different VERSION values and no MusicBrainz Album ID was set. Remove 'version' from the albumversion aliases in mappings.yaml. Users who want the old behavior can re-add it via Tags config. Update the PID test to use 'albumversion' directly instead of 'version' as the raw PID attribute, with a realistic value. Fixes #5082 Co-authored-by: Deluan Quintão <deluan@navidrome.org>
257 lines
12 KiB
YAML
257 lines
12 KiB
YAML
#file: noinspection SpellCheckingInspection
|
|
# Tag mapping adapted from https://picard-docs.musicbrainz.org/downloads/MusicBrainz_Picard_Tag_Map.html
|
|
#
|
|
# NOTE FOR USERS:
|
|
#
|
|
# This file can be used as a reference to understand how Navidrome maps the tags in your music files to its fields.
|
|
# If you want to customize these mappings, please refer to https://www.navidrome.org/docs/usage/customtags/
|
|
#
|
|
#
|
|
# NOTE FOR DEVELOPERS:
|
|
#
|
|
# This file contains the mapping between the tags in your music files and the fields in Navidrome.
|
|
# You can add new tags, change the aliases, or add new split characters to the existing tags.
|
|
# The artists and roles keys are used to define how to split the tag values into multiple values.
|
|
# The tags are divided into two categories: main and additional.
|
|
# The main tags are handled directly by Navidrome, while the additional tags are available as fields for smart playlists.
|
|
#
|
|
# Applies to single valued ARTIST and ALBUMARTIST tags. Won't be applied if the tag is multivalued or the multivalued
|
|
# versions are available (ARTISTS and ALBUMARTISTS)
|
|
artists:
|
|
split: [" / ", " feat. ", " feat ", " ft. ", " ft ", "; "]
|
|
# Applies to all remaining single-valued role tags (composer, lyricist, arranger...)
|
|
roles:
|
|
split: ["/", ";"]
|
|
|
|
# These tags are handled directly by Navidrome. You can add/remove/reorder aliases, but changing the tag name
|
|
# may require code changes
|
|
main:
|
|
title:
|
|
aliases: [ tit2, title, ©nam, inam ]
|
|
titlesort:
|
|
aliases: [ tsot, titlesort, sonm, wm/titlesortorder ]
|
|
artist:
|
|
aliases: [ tpe1, artist, ©art, author, iart ]
|
|
artistsort:
|
|
aliases: [ tsop, artistsort, artistsort, soar, wm/artistsortorder ]
|
|
artists:
|
|
aliases: [ txxx:artists, artists, ----:com.apple.itunes:artists, wm/artists ]
|
|
artistssort:
|
|
aliases: [ artistssort ]
|
|
arranger:
|
|
aliases: [ tipl:arranger, ipls:arranger, arranger ]
|
|
composer:
|
|
aliases: [ tcom, composer, ©wrt, wm/composer, imus,
|
|
writer, txxx:writer, iwri,
|
|
# If you need writer separated from composer, remove these tagss from the line above
|
|
# and uncomment the two lines below
|
|
]
|
|
#writer:
|
|
# aliases: [ WRITER, TXXX:Writer, IWRI ]
|
|
composersort:
|
|
aliases: [ tsoc, txxx:composersort, composersort, soco, wm/composersortorder ]
|
|
lyricist:
|
|
aliases: [ text, lyricist, ----:com.apple.itunes:lyricist, wm/writer ]
|
|
lyricistsort:
|
|
aliases: [ lyricistsort ]
|
|
conductor:
|
|
aliases: [ tpe3, conductor, ----:com.apple.itunes:conductor, wm/conductor ]
|
|
director:
|
|
aliases: [ txxx:director, director, ©dir, wm/director ]
|
|
djmixer:
|
|
aliases: [ tipl:dj-mix, ipls:dj-mix, djmixer, ----:com.apple.itunes:djmixer, wm/djmixer ]
|
|
mixer:
|
|
aliases: [ tipl:mix, ipls:mix, mixer, ----:com.apple.itunes:mixer, wm/mixer ]
|
|
engineer:
|
|
aliases: [ tipl:engineer, ipls:engineer, engineer, ----:com.apple.itunes:engineer, wm/engineer, ieng ]
|
|
producer:
|
|
aliases: [ tipl:producer, ipls:producer, producer, ----:com.apple.itunes:producer, wm/producer, ipro ]
|
|
remixer:
|
|
aliases: [ tpe4, remixer, mixartist, ----:com.apple.itunes:remixer, wm/modifiedby ]
|
|
albumartist:
|
|
aliases: [ tpe2, albumartist, album artist, album_artist, aart, wm/albumartist ]
|
|
albumartistsort:
|
|
aliases: [ tso2, txxx:albumartistsort, albumartistsort, soaa, wm/albumartistsortorder ]
|
|
albumartists:
|
|
aliases: [ txxx:album artists, albumartists ]
|
|
albumartistssort:
|
|
aliases: [ albumartistssort ]
|
|
album:
|
|
aliases: [ talb, album, ©alb, wm/albumtitle, iprd ]
|
|
albumsort:
|
|
aliases: [ tsoa, albumsort, soal, wm/albumsortorder ]
|
|
albumversion:
|
|
aliases: [albumversion, musicbrainz_albumcomment, musicbrainz album comment]
|
|
album: true
|
|
genre:
|
|
aliases: [ tcon, genre, ©gen, wm/genre, ignr ]
|
|
split: [ ";", "/", "," ]
|
|
album: true
|
|
mood:
|
|
aliases: [ tmoo, mood, ----:com.apple.itunes:mood, wm/mood ]
|
|
split: [ ";", "/", "," ]
|
|
album: true
|
|
compilation:
|
|
aliases: [ tcmp, compilation, cpil, wm/iscompilation ]
|
|
track:
|
|
aliases: [ track, trck, tracknumber, trkn, wm/tracknumber, itrk ]
|
|
tracktotal:
|
|
aliases: [ tracktotal, totaltracks ]
|
|
album: true
|
|
disc:
|
|
aliases: [ tpos, disc, discnumber, disk, wm/partofset ]
|
|
disctotal:
|
|
aliases: [ disctotal, totaldiscs ]
|
|
album: true
|
|
discsubtitle:
|
|
aliases: [ tsst, discsubtitle, ----:com.apple.itunes:discsubtitle, setsubtitle, wm/setsubtitle ]
|
|
bpm:
|
|
aliases: [ tbpm, bpm, tmpo, wm/beatsperminute ]
|
|
lyrics:
|
|
# Note, @lyr and wm/lyrics have been removed. Taglib somehow appears to always populate `lyrics:xxx`
|
|
aliases: [ uslt:description, lyrics, unsyncedlyrics ]
|
|
maxLength: 32768
|
|
type: pair # ex: lyrics:eng, lyrics:xxx
|
|
comment:
|
|
aliases: [ comm:description, comment, ©cmt, description, icmt ]
|
|
maxLength: 4096
|
|
originaldate:
|
|
aliases: [ tdor, originaldate, ----:com.apple.itunes:originaldate, wm/originalreleasetime, tory, originalyear, ----:com.apple.itunes:originalyear, wm/originalreleaseyear ]
|
|
type: date
|
|
recordingdate:
|
|
aliases: [ tdrc, date, recordingdate, icrd, record date ]
|
|
type: date
|
|
releasedate:
|
|
aliases: [ tdrl, releasedate, ©day, wm/year, year ]
|
|
type: date
|
|
catalognumber:
|
|
aliases: [ txxx:catalognumber, catalognumber, ----:com.apple.itunes:catalognumber, wm/catalogno ]
|
|
musicbrainz_artistid:
|
|
aliases: [ txxx:musicbrainz artist id, musicbrainz_artistid, musicbrainz artist id, ----:com.apple.itunes:musicbrainz artist id, musicbrainz/artist id ]
|
|
type: uuid
|
|
musicbrainz_recordingid:
|
|
aliases: [ ufid:http://musicbrainz.org, musicbrainz_trackid, musicbrainz track id, ----:com.apple.itunes:musicbrainz track id, musicbrainz/track id ]
|
|
type: uuid
|
|
musicbrainz_trackid:
|
|
aliases: [txxx:musicbrainz release track id, musicbrainz_releasetrackid, ----:com.apple.itunes:musicbrainz release track id, musicbrainz/release track id]
|
|
type: uuid
|
|
musicbrainz_albumartistid:
|
|
aliases: [ txxx:musicbrainz album artist id, musicbrainz_albumartistid, musicbrainz album artist id, ----:com.apple.itunes:musicbrainz album artist id, musicbrainz/album artist id ]
|
|
type: uuid
|
|
musicbrainz_albumid:
|
|
aliases: [ txxx:musicbrainz album id, musicbrainz_albumid, musicbrainz album id, ----:com.apple.itunes:musicbrainz album id, musicbrainz/album id ]
|
|
type: uuid
|
|
musicbrainz_releasegroupid:
|
|
aliases: [ txxx:musicbrainz release group id, musicbrainz_releasegroupid, ----:com.apple.itunes:musicbrainz release group id, musicbrainz/release group id ]
|
|
type: uuid
|
|
musicbrainz_composerid:
|
|
aliases: [ txxx:musicbrainz composer id, musicbrainz_composerid, musicbrainz_composer_id, ----:com.apple.itunes:musicbrainz composer id, musicbrainz/composer id ]
|
|
type: uuid
|
|
musicbrainz_lyricistid:
|
|
aliases: [ txxx:musicbrainz lyricist id, musicbrainz_lyricistid, musicbrainz_lyricist_id, ----:com.apple.itunes:musicbrainz lyricist id, musicbrainz/lyricist id ]
|
|
type: uuid
|
|
musicbrainz_directorid:
|
|
aliases: [ txxx:musicbrainz director id, musicbrainz_directorid, musicbrainz_director_id, ----:com.apple.itunes:musicbrainz director id, musicbrainz/director id ]
|
|
type: uuid
|
|
musicbrainz_producerid:
|
|
aliases: [ txxx:musicbrainz producer id, musicbrainz_producerid, musicbrainz_producer_id, ----:com.apple.itunes:musicbrainz producer id, musicbrainz/producer id ]
|
|
type: uuid
|
|
musicbrainz_engineerid:
|
|
aliases: [ txxx:musicbrainz engineer id, musicbrainz_engineerid, musicbrainz_engineer_id, ----:com.apple.itunes:musicbrainz engineer id, musicbrainz/engineer id ]
|
|
type: uuid
|
|
musicbrainz_mixerid:
|
|
aliases: [ txxx:musicbrainz mixer id, musicbrainz_mixerid, musicbrainz_mixer_id, ----:com.apple.itunes:musicbrainz mixer id, musicbrainz/mixer id ]
|
|
type: uuid
|
|
musicbrainz_remixerid:
|
|
aliases: [ txxx:musicbrainz remixer id, musicbrainz_remixerid, musicbrainz_remixer_id, ----:com.apple.itunes:musicbrainz remixer id, musicbrainz/remixer id ]
|
|
type: uuid
|
|
musicbrainz_djmixerid:
|
|
aliases: [ txxx:musicbrainz djmixer id, musicbrainz_djmixerid, musicbrainz_djmixer_id, ----:com.apple.itunes:musicbrainz djmixer id, musicbrainz/djmixer id ]
|
|
type: uuid
|
|
musicbrainz_conductorid:
|
|
aliases: [ txxx:musicbrainz conductor id, musicbrainz_conductorid, musicbrainz_conductor_id, ----:com.apple.itunes:musicbrainz conductor id, musicbrainz/conductor id ]
|
|
type: uuid
|
|
musicbrainz_arrangerid:
|
|
aliases: [ txxx:musicbrainz arranger id, musicbrainz_arrangerid, musicbrainz_arranger_id, ----:com.apple.itunes:musicbrainz arranger id, musicbrainz/arranger id ]
|
|
type: uuid
|
|
releasetype:
|
|
aliases: [ txxx:musicbrainz album type, releasetype, musicbrainz_albumtype, ----:com.apple.itunes:musicbrainz album type, musicbrainz/album type ]
|
|
album: true
|
|
split: [ "," ]
|
|
replaygain_album_gain:
|
|
aliases: [ txxx:replaygain_album_gain, replaygain_album_gain, ----:com.apple.itunes:replaygain_album_gain ]
|
|
replaygain_album_peak:
|
|
aliases: [ txxx:replaygain_album_peak, replaygain_album_peak, ----:com.apple.itunes:replaygain_album_peak ]
|
|
replaygain_track_gain:
|
|
aliases: [ txxx:replaygain_track_gain, replaygain_track_gain, ----:com.apple.itunes:replaygain_track_gain ]
|
|
replaygain_track_peak:
|
|
aliases: [ txxx:replaygain_track_peak, replaygain_track_peak, ----:com.apple.itunes:replaygain_track_peak ]
|
|
r128_album_gain:
|
|
aliases: [r128_album_gain]
|
|
r128_track_gain:
|
|
aliases: [r128_track_gain]
|
|
performer:
|
|
aliases: [performer]
|
|
type: pair
|
|
musicbrainz_performerid:
|
|
aliases: [ txxx:musicbrainz performer id, musicbrainz_performerid, musicbrainz_performer_id, ----:com.apple.itunes:musicbrainz performer id, musicbrainz/performer id ]
|
|
type: pair
|
|
explicitstatus:
|
|
aliases: [ itunesadvisory, rtng ]
|
|
|
|
# Additional tags. You can add new tags without the need to modify the code. They will be available as fields
|
|
# for smart playlists
|
|
additional:
|
|
asin:
|
|
aliases: [ txxx:asin, asin, ----:com.apple.itunes:asin ]
|
|
barcode:
|
|
aliases: [ txxx:barcode, barcode, ----:com.apple.itunes:barcode, wm/barcode ]
|
|
copyright:
|
|
aliases: [ tcop, copyright, cprt, icop ]
|
|
encodedby:
|
|
aliases: [ tenc, encodedby, ©too, wm/encodedby, ienc ]
|
|
encodersettings:
|
|
aliases: [ tsse, encodersettings, ----:com.apple.itunes:encodersettings, wm/encodingsettings ]
|
|
grouping:
|
|
aliases: [ grp1, grouping, ©grp, wm/contentgroupdescription ]
|
|
album: true
|
|
key:
|
|
aliases: [ tkey, key, ----:com.apple.itunes:initialkey, wm/initialkey ]
|
|
isrc:
|
|
aliases: [ tsrc, isrc, ----:com.apple.itunes:isrc, wm/isrc ]
|
|
language:
|
|
aliases: [ tlan, language, ----:com.apple.itunes:language, wm/language, ilng ]
|
|
license:
|
|
aliases: [ wcop, txxx:license, license, ----:com.apple.itunes:license ]
|
|
media:
|
|
aliases: [ tmed, media, ----:com.apple.itunes:media, wm/media, imed ]
|
|
album: true
|
|
movementname:
|
|
aliases: [ mvnm, movementname, ©mvn ]
|
|
movementtotal:
|
|
aliases: [ movementtotal, mvc ]
|
|
movement:
|
|
aliases: [ mvin, movement, mvi ]
|
|
recordlabel:
|
|
aliases: [ tpub, label, publisher, ----:com.apple.itunes:label, wm/publisher, organization ]
|
|
album: true
|
|
musicbrainz_discid:
|
|
aliases: [ txxx:musicbrainz disc id, musicbrainz_discid, musicbrainz disc id, ----:com.apple.itunes:musicbrainz disc id, musicbrainz/disc id ]
|
|
type: uuid
|
|
musicbrainz_workid:
|
|
aliases: [ txxx:musicbrainz work id, musicbrainz_workid, musicbrainz work id, ----:com.apple.itunes:musicbrainz work id, musicbrainz/work id ]
|
|
type: uuid
|
|
releasecountry:
|
|
aliases: [ txxx:musicbrainz album release country, releasecountry, ----:com.apple.itunes:musicbrainz album release country, musicbrainz/album release country, icnt ]
|
|
album: true
|
|
releasestatus:
|
|
aliases: [ txxx:musicbrainz album status, releasestatus, musicbrainz_albumstatus, ----:com.apple.itunes:musicbrainz album status, musicbrainz/album status ]
|
|
album: true
|
|
script:
|
|
aliases: [ txxx:script, script, ----:com.apple.itunes:script, wm/script ]
|
|
subtitle:
|
|
aliases: [ tit3, subtitle, ----:com.apple.itunes:subtitle, wm/subtitle ]
|
|
website:
|
|
aliases: [ woar, website, weblink, wm/authorurl ]
|
|
work:
|
|
aliases: [ txxx:work, tit1, work, ©wrk, wm/work ]
|