@@ -73,161 +73,163 @@ gen_map!(
7373gen_map ! (
7474 APE_MAP ;
7575
76- "Album" => AlbumTitle ,
77- "DiscSubtitle" => SetSubtitle ,
78- "Grouping" => ContentGroup ,
79- "Title" => TrackTitle ,
80- "Subtitle" => TrackSubtitle ,
81- "WORKTITLE" => Work ,
82- "MOVEMENTNAME" => Movement ,
83- "MOVEMENT" => MovementNumber ,
84- "MOVEMENTTOTAL" => MovementTotal ,
85- "ALBUMSORT" => AlbumTitleSortOrder ,
86- "ALBUMARTISTSORT" => AlbumArtistSortOrder ,
87- "TITLESORT" => TrackTitleSortOrder ,
88- "ARTISTSORT" => TrackArtistSortOrder ,
89- "Album Artist" | "ALBUMARTIST" => AlbumArtist ,
90- "Artist" => TrackArtist ,
91- "Artists" => TrackArtists ,
92- "Arranger" => Arranger ,
93- "Writer" => Writer ,
94- "Composer" => Composer ,
95- "Conductor" => Conductor ,
96- "Director" => Director ,
97- "Engineer" => Engineer ,
98- "Lyricist" => Lyricist ,
99- "DjMixer" => MixDj ,
100- "Mixer" => MixEngineer ,
101- "Performer" => Performer ,
102- "Producer" => Producer ,
103- "Label" => Label ,
104- "MixArtist" => Remixer ,
105- "Disc" => DiscNumber ,
106- "Disc" => DiscTotal ,
107- "Track" => TrackNumber ,
108- "Track" => TrackTotal ,
109- "Year" => Year ,
110- "ORIGINALYEAR" => OriginalReleaseDate ,
111- "RELEASEDATE" => ReleaseDate ,
112- "ISRC" => Isrc ,
113- "Barcode" => Barcode ,
114- "CatalogNumber" => CatalogNumber ,
115- "Compilation" => FlagCompilation ,
116- "Media" => OriginalMediaType ,
117- "EncodedBy" => EncodedBy ,
118- "REPLAYGAIN_ALBUM_GAIN" => ReplayGainAlbumGain ,
119- "REPLAYGAIN_ALBUM_PEAK" => ReplayGainAlbumPeak ,
120- "REPLAYGAIN_TRACK_GAIN" => ReplayGainTrackGain ,
121- "REPLAYGAIN_TRACK_PEAK" => ReplayGainTrackPeak ,
122- "Genre" => Genre ,
123- "Color" => Color ,
124- "Mood" => Mood ,
125- "Copyright" => CopyrightMessage ,
126- "Comment" => Comment ,
127- "language" => Language ,
128- "Script" => Script ,
129- "Lyrics" => Lyrics ,
130- "MUSICBRAINZ_TRACKID" => MusicBrainzRecordingId ,
131- "MUSICBRAINZ_RELEASETRACKID" => MusicBrainzTrackId ,
132- "MUSICBRAINZ_ALBUMID" => MusicBrainzReleaseId ,
133- "MUSICBRAINZ_RELEASEGROUPID" => MusicBrainzReleaseGroupId ,
134- "MUSICBRAINZ_ARTISTID" => MusicBrainzArtistId ,
135- "MUSICBRAINZ_ALBUMARTISTID" => MusicBrainzReleaseArtistId ,
136- "MUSICBRAINZ_WORKID" => MusicBrainzWorkId
76+ "Album" => AlbumTitle ,
77+ "DiscSubtitle" => SetSubtitle ,
78+ "Grouping" => ContentGroup ,
79+ "Title" => TrackTitle ,
80+ "Subtitle" => TrackSubtitle ,
81+ "WORKTITLE" => Work ,
82+ "MOVEMENTNAME" => Movement ,
83+ "MOVEMENT" => MovementNumber ,
84+ "MOVEMENTTOTAL" => MovementTotal ,
85+ "ALBUMSORT" => AlbumTitleSortOrder ,
86+ "ALBUMARTISTSORT" => AlbumArtistSortOrder ,
87+ "TITLESORT" => TrackTitleSortOrder ,
88+ "ARTISTSORT" => TrackArtistSortOrder ,
89+ "Album Artist" | "ALBUMARTIST" => AlbumArtist ,
90+ "ALBUMARTISTS" | "ALBUM ARTISTS" => AlbumArtists ,
91+ "Artist" => TrackArtist ,
92+ "Artists" => TrackArtists ,
93+ "Arranger" => Arranger ,
94+ "Writer" => Writer ,
95+ "Composer" => Composer ,
96+ "Conductor" => Conductor ,
97+ "Director" => Director ,
98+ "Engineer" => Engineer ,
99+ "Lyricist" => Lyricist ,
100+ "DjMixer" => MixDj ,
101+ "Mixer" => MixEngineer ,
102+ "Performer" => Performer ,
103+ "Producer" => Producer ,
104+ "Label" => Label ,
105+ "MixArtist" => Remixer ,
106+ "Disc" => DiscNumber ,
107+ "Disc" => DiscTotal ,
108+ "Track" => TrackNumber ,
109+ "Track" => TrackTotal ,
110+ "Year" => Year ,
111+ "ORIGINALYEAR" => OriginalReleaseDate ,
112+ "RELEASEDATE" => ReleaseDate ,
113+ "ISRC" => Isrc ,
114+ "Barcode" => Barcode ,
115+ "CatalogNumber" => CatalogNumber ,
116+ "Compilation" => FlagCompilation ,
117+ "Media" => OriginalMediaType ,
118+ "EncodedBy" => EncodedBy ,
119+ "REPLAYGAIN_ALBUM_GAIN" => ReplayGainAlbumGain ,
120+ "REPLAYGAIN_ALBUM_PEAK" => ReplayGainAlbumPeak ,
121+ "REPLAYGAIN_TRACK_GAIN" => ReplayGainTrackGain ,
122+ "REPLAYGAIN_TRACK_PEAK" => ReplayGainTrackPeak ,
123+ "Genre" => Genre ,
124+ "Color" => Color ,
125+ "Mood" => Mood ,
126+ "Copyright" => CopyrightMessage ,
127+ "Comment" => Comment ,
128+ "language" => Language ,
129+ "Script" => Script ,
130+ "Lyrics" => Lyrics ,
131+ "MUSICBRAINZ_TRACKID" => MusicBrainzRecordingId ,
132+ "MUSICBRAINZ_RELEASETRACKID" => MusicBrainzTrackId ,
133+ "MUSICBRAINZ_ALBUMID" => MusicBrainzReleaseId ,
134+ "MUSICBRAINZ_RELEASEGROUPID" => MusicBrainzReleaseGroupId ,
135+ "MUSICBRAINZ_ARTISTID" => MusicBrainzArtistId ,
136+ "MUSICBRAINZ_ALBUMARTISTID" => MusicBrainzReleaseArtistId ,
137+ "MUSICBRAINZ_WORKID" => MusicBrainzWorkId
137138) ;
138139
139140gen_map ! (
140141 ID3V2_MAP ;
141142
142- "TALB" => AlbumTitle ,
143- "TSST" => SetSubtitle ,
144- "TIT1" => ContentGroup ,
145- "GRP1" => AppleId3v2ContentGroup ,
146- "TIT2" => TrackTitle ,
147- "TIT3" => TrackSubtitle ,
148- "TOAL" => OriginalAlbumTitle ,
149- "TOPE" => OriginalArtist ,
150- "TOLY" => OriginalLyricist ,
151- "TSOA" => AlbumTitleSortOrder ,
152- "TSO2" => AlbumArtistSortOrder ,
153- "TSOT" => TrackTitleSortOrder ,
154- "TSOP" => TrackArtistSortOrder ,
155- "TSOC" => ComposerSortOrder ,
156- "TPE2" => AlbumArtist ,
157- "TPE1" => TrackArtist ,
158- "ARTISTS" => TrackArtists ,
159- "TEXT" => Writer ,
160- "TCOM" => Composer ,
161- "TPE3" => Conductor ,
162- "DIRECTOR" => Director ,
163- "TEXT" => Lyricist ,
164- "TMCL" => MusicianCredits ,
165- "TPUB" => Publisher ,
166- "TPUB" => Label ,
167- "TRSN" => InternetRadioStationName ,
168- "TRSO" => InternetRadioStationOwner ,
169- "TPE4" => Remixer ,
170- "TPOS" => DiscNumber ,
171- "TPOS" => DiscTotal ,
172- "TRCK" => TrackNumber ,
173- "TRCK" => TrackTotal ,
174- "POPM" => Popularimeter ,
175- "ITUNESADVISORY" => ParentalAdvisory ,
176- "TDRC" => RecordingDate ,
177- "TDOR" => OriginalReleaseDate ,
178- "TSRC" => Isrc ,
179- "BARCODE" => Barcode ,
180- "CATALOGNUMBER" => CatalogNumber ,
181- "WORK" => Work , // ID3v2.4: TXXX:WORK (Apple uses TIT1/ContentGroup, see GRP1/AppleId3v2ContentGroup for disambiguation)
182- "MVNM" => Movement ,
183- "MVIN" => MovementNumber ,
184- "MVIN" => MovementTotal ,
185- "TCMP" => FlagCompilation ,
186- "PCST" => FlagPodcast ,
187- "TFLT" => FileType ,
188- "TOWN" => FileOwner ,
189- "TDTG" => TaggingTime ,
190- "TLEN" => Length ,
191- "TOFN" => OriginalFileName ,
192- "TMED" => OriginalMediaType ,
193- "TENC" => EncodedBy ,
194- "TSSE" => EncoderSoftware ,
195- "TSSE" => EncoderSettings ,
196- "TDEN" => EncodingTime ,
197- "REPLAYGAIN_ALBUM_GAIN" => ReplayGainAlbumGain ,
198- "REPLAYGAIN_ALBUM_PEAK" => ReplayGainAlbumPeak ,
199- "REPLAYGAIN_TRACK_GAIN" => ReplayGainTrackGain ,
200- "REPLAYGAIN_TRACK_PEAK" => ReplayGainTrackPeak ,
201- "WOAF" => AudioFileUrl ,
202- "WOAS" => AudioSourceUrl ,
203- "WCOM" => CommercialInformationUrl ,
204- "WCOP" => CopyrightUrl ,
205- "WOAR" => TrackArtistUrl ,
206- "WORS" => RadioStationUrl ,
207- "WPAY" => PaymentUrl ,
208- "WPUB" => PublisherUrl ,
209- "TCON" => Genre ,
210- "TKEY" => InitialKey ,
211- "COLOR" => Color ,
212- "TMOO" => Mood ,
213- "TBPM" => IntegerBpm ,
214- "TCOP" => CopyrightMessage ,
215- "TDES" => PodcastDescription ,
216- "TCAT" => PodcastSeriesCategory ,
217- "WFED" => PodcastUrl ,
218- "TDRL" => ReleaseDate ,
219- "TGID" => PodcastGlobalUniqueId ,
220- "TKWD" => PodcastKeywords ,
221- "COMM" => Comment ,
222- "TLAN" => Language ,
223- "USLT" => Lyrics ,
143+ "TALB" => AlbumTitle ,
144+ "TSST" => SetSubtitle ,
145+ "TIT1" => ContentGroup ,
146+ "GRP1" => AppleId3v2ContentGroup ,
147+ "TIT2" => TrackTitle ,
148+ "TIT3" => TrackSubtitle ,
149+ "TOAL" => OriginalAlbumTitle ,
150+ "TOPE" => OriginalArtist ,
151+ "TOLY" => OriginalLyricist ,
152+ "TSOA" => AlbumTitleSortOrder ,
153+ "TSO2" => AlbumArtistSortOrder ,
154+ "TSOT" => TrackTitleSortOrder ,
155+ "TSOP" => TrackArtistSortOrder ,
156+ "TSOC" => ComposerSortOrder ,
157+ "TPE2" | "ALBUMARTIST" | "ALBUM ARTIST" => AlbumArtist ,
158+ "ALBUMARTISTS" | "ALBUM ARTISTS" => AlbumArtists ,
159+ "TPE1" => TrackArtist ,
160+ "ARTISTS" => TrackArtists ,
161+ "TEXT" => Writer ,
162+ "TCOM" => Composer ,
163+ "TPE3" => Conductor ,
164+ "DIRECTOR" => Director ,
165+ "TEXT" => Lyricist ,
166+ "TMCL" => MusicianCredits ,
167+ "TPUB" => Publisher ,
168+ "TPUB" => Label ,
169+ "TRSN" => InternetRadioStationName ,
170+ "TRSO" => InternetRadioStationOwner ,
171+ "TPE4" => Remixer ,
172+ "TPOS" => DiscNumber ,
173+ "TPOS" => DiscTotal ,
174+ "TRCK" => TrackNumber ,
175+ "TRCK" => TrackTotal ,
176+ "POPM" => Popularimeter ,
177+ "ITUNESADVISORY" => ParentalAdvisory ,
178+ "TDRC" => RecordingDate ,
179+ "TDOR" => OriginalReleaseDate ,
180+ "TSRC" => Isrc ,
181+ "BARCODE" => Barcode ,
182+ "CATALOGNUMBER" => CatalogNumber ,
183+ "WORK" => Work , // ID3v2.4: TXXX:WORK (Apple uses TIT1/ContentGroup, see GRP1/AppleId3v2ContentGroup for disambiguation)
184+ "MVNM" => Movement ,
185+ "MVIN" => MovementNumber ,
186+ "MVIN" => MovementTotal ,
187+ "TCMP" => FlagCompilation ,
188+ "PCST" => FlagPodcast ,
189+ "TFLT" => FileType ,
190+ "TOWN" => FileOwner ,
191+ "TDTG" => TaggingTime ,
192+ "TLEN" => Length ,
193+ "TOFN" => OriginalFileName ,
194+ "TMED" => OriginalMediaType ,
195+ "TENC" => EncodedBy ,
196+ "TSSE" => EncoderSoftware ,
197+ "TSSE" => EncoderSettings ,
198+ "TDEN" => EncodingTime ,
199+ "REPLAYGAIN_ALBUM_GAIN" => ReplayGainAlbumGain ,
200+ "REPLAYGAIN_ALBUM_PEAK" => ReplayGainAlbumPeak ,
201+ "REPLAYGAIN_TRACK_GAIN" => ReplayGainTrackGain ,
202+ "REPLAYGAIN_TRACK_PEAK" => ReplayGainTrackPeak ,
203+ "WOAF" => AudioFileUrl ,
204+ "WOAS" => AudioSourceUrl ,
205+ "WCOM" => CommercialInformationUrl ,
206+ "WCOP" => CopyrightUrl ,
207+ "WOAR" => TrackArtistUrl ,
208+ "WORS" => RadioStationUrl ,
209+ "WPAY" => PaymentUrl ,
210+ "WPUB" => PublisherUrl ,
211+ "TCON" => Genre ,
212+ "TKEY" => InitialKey ,
213+ "COLOR" => Color ,
214+ "TMOO" => Mood ,
215+ "TBPM" => IntegerBpm ,
216+ "TCOP" => CopyrightMessage ,
217+ "TDES" => PodcastDescription ,
218+ "TCAT" => PodcastSeriesCategory ,
219+ "WFED" => PodcastUrl ,
220+ "TDRL" => ReleaseDate ,
221+ "TGID" => PodcastGlobalUniqueId ,
222+ "TKWD" => PodcastKeywords ,
223+ "COMM" => Comment ,
224+ "TLAN" => Language ,
225+ "USLT" => Lyrics ,
224226 // Mapping of MusicBrainzRecordingId is implemented as a special case
225- "MusicBrainz Release Track Id" => MusicBrainzTrackId ,
226- "MusicBrainz Album Id" => MusicBrainzReleaseId ,
227- "MusicBrainz Release Group Id" => MusicBrainzReleaseGroupId ,
228- "MusicBrainz Artist Id" => MusicBrainzArtistId ,
229- "MusicBrainz Album Artist Id" => MusicBrainzReleaseArtistId ,
230- "MusicBrainz Work Id" => MusicBrainzWorkId
227+ "MusicBrainz Release Track Id" => MusicBrainzTrackId ,
228+ "MusicBrainz Album Id" => MusicBrainzReleaseId ,
229+ "MusicBrainz Release Group Id" => MusicBrainzReleaseGroupId ,
230+ "MusicBrainz Artist Id" => MusicBrainzArtistId ,
231+ "MusicBrainz Album Artist Id" => MusicBrainzReleaseArtistId ,
232+ "MusicBrainz Work Id" => MusicBrainzWorkId
231233) ;
232234
233235gen_map ! (
@@ -250,6 +252,7 @@ gen_map!(
250252 "sosn" => ShowNameSortOrder ,
251253 "soco" => ComposerSortOrder ,
252254 "aART" => AlbumArtist ,
255+ "----:com.apple.iTunes:ALBUMARTISTS" => AlbumArtists ,
253256 "\u{a9} ART" => TrackArtist ,
254257 "----:com.apple.iTunes:ARTISTS" => TrackArtists ,
255258 "\u{a9} wrt" => Composer ,
@@ -350,7 +353,8 @@ gen_map!(
350353 "ALBUMARTISTSORT" => AlbumArtistSortOrder ,
351354 "TITLESORT" => TrackTitleSortOrder ,
352355 "ARTISTSORT" => TrackArtistSortOrder ,
353- "ALBUMARTIST" => AlbumArtist ,
356+ "ALBUMARTIST" | "ALBUM ARTIST" => AlbumArtist ,
357+ "ALBUMARTISTS" | "ALBUM ARTISTS" => AlbumArtists ,
354358 "ARTIST" => TrackArtist ,
355359 "ARTISTS" => TrackArtists ,
356360 "ARRANGER" => Arranger ,
@@ -523,6 +527,14 @@ gen_item_keys!(
523527
524528 // People & Organizations
525529 AlbumArtist ,
530+ /// The name of each credited album-level artist
531+ ///
532+ /// This tag is meant to appear multiple times in a tag, so it should be retrieved with
533+ /// [`Tag::get_strings`] or [`Tag::take_strings`].
534+ ///
535+ /// [`Tag::get_strings`]: crate::tag::Tag::get_strings
536+ /// [`Tag::take_strings`]: crate::tag::Tag::take_strings
537+ AlbumArtists ,
526538 TrackArtist ,
527539 /// The name of each credited artist
528540 ///
0 commit comments