music-metadata 7.11.6 → 7.11.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +432 -432
- package/lib/ParserFactory.d.ts +49 -49
- package/lib/ParserFactory.js +251 -251
- package/lib/aiff/AiffParser.d.ts +15 -15
- package/lib/aiff/AiffParser.js +85 -85
- package/lib/aiff/AiffToken.d.ts +22 -22
- package/lib/aiff/AiffToken.js +43 -43
- package/lib/apev2/APEv2Parser.d.ts +30 -30
- package/lib/apev2/APEv2Parser.js +162 -162
- package/lib/apev2/APEv2TagMapper.d.ts +4 -4
- package/lib/apev2/APEv2TagMapper.js +86 -86
- package/lib/apev2/APEv2Token.d.ts +100 -100
- package/lib/apev2/APEv2Token.js +126 -126
- package/lib/asf/AsfObject.d.ts +319 -319
- package/lib/asf/AsfObject.js +384 -384
- package/lib/asf/AsfParser.d.ts +17 -17
- package/lib/asf/AsfParser.js +135 -135
- package/lib/asf/AsfTagMapper.d.ts +7 -7
- package/lib/asf/AsfTagMapper.js +95 -95
- package/lib/asf/AsfUtil.d.ts +13 -13
- package/lib/asf/AsfUtil.js +40 -40
- package/lib/asf/GUID.d.ts +86 -86
- package/lib/asf/GUID.js +123 -123
- package/lib/common/BasicParser.d.ts +17 -17
- package/lib/common/BasicParser.js +18 -18
- package/lib/common/CaseInsensitiveTagMap.d.ts +10 -10
- package/lib/common/CaseInsensitiveTagMap.js +21 -21
- package/lib/common/CombinedTagMapper.d.ts +19 -19
- package/lib/common/CombinedTagMapper.js +51 -51
- package/lib/common/FourCC.d.ts +6 -6
- package/lib/common/FourCC.js +28 -28
- package/lib/common/GenericTagMapper.d.ts +51 -51
- package/lib/common/GenericTagMapper.js +55 -55
- package/lib/common/GenericTagTypes.d.ts +33 -33
- package/lib/common/GenericTagTypes.js +131 -131
- package/lib/common/MetadataCollector.d.ts +76 -76
- package/lib/common/MetadataCollector.js +275 -275
- package/lib/common/RandomFileReader.d.ts +20 -20
- package/lib/common/RandomFileReader.js +37 -37
- package/lib/common/RandomUint8ArrayReader.d.ts +18 -18
- package/lib/common/RandomUint8ArrayReader.js +25 -25
- package/lib/common/Util.d.ts +58 -57
- package/lib/common/Util.js +162 -169
- package/lib/core.d.ts +48 -48
- package/lib/core.js +90 -90
- package/lib/dsdiff/DsdiffParser.d.ts +14 -14
- package/lib/dsdiff/DsdiffParser.js +143 -143
- package/lib/dsdiff/DsdiffToken.d.ts +9 -9
- package/lib/dsdiff/DsdiffToken.js +21 -21
- package/lib/dsf/DsfChunk.d.ts +86 -86
- package/lib/dsf/DsfChunk.js +54 -54
- package/lib/dsf/DsfParser.d.ts +9 -9
- package/lib/dsf/DsfParser.js +56 -56
- package/lib/flac/FlacParser.d.ts +28 -28
- package/lib/flac/FlacParser.js +175 -175
- package/lib/id3v1/ID3v1Parser.d.ts +13 -13
- package/lib/id3v1/ID3v1Parser.js +134 -134
- package/lib/id3v1/ID3v1TagMap.d.ts +4 -4
- package/lib/id3v1/ID3v1TagMap.js +22 -22
- package/lib/id3v2/AbstractID3Parser.d.ts +17 -17
- package/lib/id3v2/AbstractID3Parser.js +60 -60
- package/lib/id3v2/FrameParser.d.ts +32 -32
- package/lib/id3v2/FrameParser.js +329 -323
- package/lib/id3v2/ID3v22TagMapper.d.ts +9 -9
- package/lib/id3v2/ID3v22TagMapper.js +55 -55
- package/lib/id3v2/ID3v24TagMapper.d.ts +14 -14
- package/lib/id3v2/ID3v24TagMapper.js +193 -193
- package/lib/id3v2/ID3v2Parser.d.ts +29 -29
- package/lib/id3v2/ID3v2Parser.js +194 -194
- package/lib/id3v2/ID3v2Token.d.ts +73 -73
- package/lib/id3v2/ID3v2Token.js +106 -106
- package/lib/iff/index.d.ts +33 -33
- package/lib/iff/index.js +19 -19
- package/lib/index.d.ts +45 -45
- package/lib/index.js +74 -74
- package/lib/lyrics3/Lyrics3.d.ts +3 -3
- package/lib/lyrics3/Lyrics3.js +17 -17
- package/lib/matroska/MatroskaDtd.d.ts +8 -8
- package/lib/matroska/MatroskaDtd.js +279 -279
- package/lib/matroska/MatroskaParser.d.ts +37 -37
- package/lib/matroska/MatroskaParser.js +235 -235
- package/lib/matroska/MatroskaTagMapper.d.ts +4 -4
- package/lib/matroska/MatroskaTagMapper.js +35 -35
- package/lib/matroska/types.d.ts +175 -175
- package/lib/matroska/types.js +32 -32
- package/lib/mp4/Atom.d.ts +16 -16
- package/lib/mp4/Atom.js +70 -70
- package/lib/mp4/AtomToken.d.ts +395 -395
- package/lib/mp4/AtomToken.js +406 -406
- package/lib/mp4/MP4Parser.d.ts +30 -30
- package/lib/mp4/MP4Parser.js +511 -511
- package/lib/mp4/MP4TagMapper.d.ts +5 -5
- package/lib/mp4/MP4TagMapper.js +115 -115
- package/lib/mpeg/ExtendedLameHeader.d.ts +27 -27
- package/lib/mpeg/ExtendedLameHeader.js +31 -31
- package/lib/mpeg/MpegParser.d.ts +49 -49
- package/lib/mpeg/MpegParser.js +529 -529
- package/lib/mpeg/ReplayGainDataFormat.d.ts +55 -55
- package/lib/mpeg/ReplayGainDataFormat.js +69 -69
- package/lib/mpeg/XingTag.d.ts +45 -45
- package/lib/mpeg/XingTag.js +69 -69
- package/lib/musepack/index.d.ts +5 -5
- package/lib/musepack/index.js +32 -32
- package/lib/musepack/sv7/BitReader.d.ts +13 -13
- package/lib/musepack/sv7/BitReader.js +54 -54
- package/lib/musepack/sv7/MpcSv7Parser.d.ts +8 -8
- package/lib/musepack/sv7/MpcSv7Parser.js +46 -46
- package/lib/musepack/sv7/StreamVersion7.d.ts +28 -28
- package/lib/musepack/sv7/StreamVersion7.js +41 -41
- package/lib/musepack/sv8/MpcSv8Parser.d.ts +6 -6
- package/lib/musepack/sv8/MpcSv8Parser.js +55 -55
- package/lib/musepack/sv8/StreamVersion8.d.ts +40 -40
- package/lib/musepack/sv8/StreamVersion8.js +80 -80
- package/lib/ogg/Ogg.d.ts +72 -72
- package/lib/ogg/Ogg.js +2 -2
- package/lib/ogg/OggParser.d.ts +23 -23
- package/lib/ogg/OggParser.js +126 -126
- package/lib/ogg/opus/Opus.d.ts +48 -48
- package/lib/ogg/opus/Opus.js +28 -28
- package/lib/ogg/opus/OpusParser.d.ts +25 -25
- package/lib/ogg/opus/OpusParser.js +56 -56
- package/lib/ogg/speex/Speex.d.ts +36 -36
- package/lib/ogg/speex/Speex.js +31 -31
- package/lib/ogg/speex/SpeexParser.d.ts +22 -22
- package/lib/ogg/speex/SpeexParser.js +35 -35
- package/lib/ogg/theora/Theora.d.ts +20 -20
- package/lib/ogg/theora/Theora.js +23 -23
- package/lib/ogg/theora/TheoraParser.d.ts +28 -28
- package/lib/ogg/theora/TheoraParser.js +44 -44
- package/lib/ogg/vorbis/Vorbis.d.ts +79 -79
- package/lib/ogg/vorbis/Vorbis.js +78 -78
- package/lib/ogg/vorbis/VorbisDecoder.d.ts +12 -12
- package/lib/ogg/vorbis/VorbisDecoder.js +32 -32
- package/lib/ogg/vorbis/VorbisParser.d.ts +36 -36
- package/lib/ogg/vorbis/VorbisParser.js +128 -128
- package/lib/ogg/vorbis/VorbisTagMapper.d.ts +7 -7
- package/lib/ogg/vorbis/VorbisTagMapper.js +132 -132
- package/lib/riff/RiffChunk.d.ts +16 -16
- package/lib/riff/RiffChunk.js +32 -32
- package/lib/riff/RiffInfoTagMap.d.ts +10 -10
- package/lib/riff/RiffInfoTagMap.js +37 -37
- package/lib/type.d.ts +599 -599
- package/lib/type.js +13 -13
- package/lib/wav/WaveChunk.d.ts +64 -64
- package/lib/wav/WaveChunk.js +65 -65
- package/lib/wav/WaveParser.d.ts +24 -24
- package/lib/wav/WaveParser.js +144 -144
- package/lib/wavpack/WavPackParser.d.ts +14 -14
- package/lib/wavpack/WavPackParser.js +105 -105
- package/lib/wavpack/WavPackToken.d.ts +64 -64
- package/lib/wavpack/WavPackToken.js +76 -76
- package/package.json +142 -142
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap';
|
|
2
|
-
export declare const tagType = "iTunes";
|
|
3
|
-
export declare class MP4TagMapper extends CaseInsensitiveTagMap {
|
|
4
|
-
constructor();
|
|
5
|
-
}
|
|
1
|
+
import { CaseInsensitiveTagMap } from '../common/CaseInsensitiveTagMap';
|
|
2
|
+
export declare const tagType = "iTunes";
|
|
3
|
+
export declare class MP4TagMapper extends CaseInsensitiveTagMap {
|
|
4
|
+
constructor();
|
|
5
|
+
}
|
package/lib/mp4/MP4TagMapper.js
CHANGED
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MP4TagMapper = exports.tagType = void 0;
|
|
4
|
-
const CaseInsensitiveTagMap_1 = require("../common/CaseInsensitiveTagMap");
|
|
5
|
-
/**
|
|
6
|
-
* Ref: https://github.com/sergiomb2/libmp4v2/wiki/iTunesMetadata
|
|
7
|
-
*/
|
|
8
|
-
const mp4TagMap = {
|
|
9
|
-
'©nam': 'title',
|
|
10
|
-
'©ART': 'artist',
|
|
11
|
-
aART: 'albumartist',
|
|
12
|
-
/**
|
|
13
|
-
* ToDo: Album artist seems to be stored here while Picard documentation says: aART
|
|
14
|
-
*/
|
|
15
|
-
'----:com.apple.iTunes:Band': 'albumartist',
|
|
16
|
-
'©alb': 'album',
|
|
17
|
-
'©day': 'date',
|
|
18
|
-
'©cmt': 'comment',
|
|
19
|
-
'©com': 'comment',
|
|
20
|
-
trkn: 'track',
|
|
21
|
-
disk: 'disk',
|
|
22
|
-
'©gen': 'genre',
|
|
23
|
-
covr: 'picture',
|
|
24
|
-
'©wrt': 'composer',
|
|
25
|
-
'©lyr': 'lyrics',
|
|
26
|
-
soal: 'albumsort',
|
|
27
|
-
sonm: 'titlesort',
|
|
28
|
-
soar: 'artistsort',
|
|
29
|
-
soaa: 'albumartistsort',
|
|
30
|
-
soco: 'composersort',
|
|
31
|
-
'----:com.apple.iTunes:LYRICIST': 'lyricist',
|
|
32
|
-
'----:com.apple.iTunes:CONDUCTOR': 'conductor',
|
|
33
|
-
'----:com.apple.iTunes:REMIXER': 'remixer',
|
|
34
|
-
'----:com.apple.iTunes:ENGINEER': 'engineer',
|
|
35
|
-
'----:com.apple.iTunes:PRODUCER': 'producer',
|
|
36
|
-
'----:com.apple.iTunes:DJMIXER': 'djmixer',
|
|
37
|
-
'----:com.apple.iTunes:MIXER': 'mixer',
|
|
38
|
-
'----:com.apple.iTunes:LABEL': 'label',
|
|
39
|
-
'©grp': 'grouping',
|
|
40
|
-
'----:com.apple.iTunes:SUBTITLE': 'subtitle',
|
|
41
|
-
'----:com.apple.iTunes:DISCSUBTITLE': 'discsubtitle',
|
|
42
|
-
cpil: 'compilation',
|
|
43
|
-
tmpo: 'bpm',
|
|
44
|
-
'----:com.apple.iTunes:MOOD': 'mood',
|
|
45
|
-
'----:com.apple.iTunes:MEDIA': 'media',
|
|
46
|
-
'----:com.apple.iTunes:CATALOGNUMBER': 'catalognumber',
|
|
47
|
-
tvsh: 'tvShow',
|
|
48
|
-
tvsn: 'tvSeason',
|
|
49
|
-
tves: 'tvEpisode',
|
|
50
|
-
sosn: 'tvShowSort',
|
|
51
|
-
tven: 'tvEpisodeId',
|
|
52
|
-
tvnn: 'tvNetwork',
|
|
53
|
-
pcst: 'podcast',
|
|
54
|
-
purl: 'podcasturl',
|
|
55
|
-
'----:com.apple.iTunes:MusicBrainz Album Status': 'releasestatus',
|
|
56
|
-
'----:com.apple.iTunes:MusicBrainz Album Type': 'releasetype',
|
|
57
|
-
'----:com.apple.iTunes:MusicBrainz Album Release Country': 'releasecountry',
|
|
58
|
-
'----:com.apple.iTunes:SCRIPT': 'script',
|
|
59
|
-
'----:com.apple.iTunes:LANGUAGE': 'language',
|
|
60
|
-
cprt: 'copyright',
|
|
61
|
-
'©cpy': 'copyright',
|
|
62
|
-
'----:com.apple.iTunes:LICENSE': 'license',
|
|
63
|
-
'©too': 'encodedby',
|
|
64
|
-
pgap: 'gapless',
|
|
65
|
-
'----:com.apple.iTunes:BARCODE': 'barcode',
|
|
66
|
-
'----:com.apple.iTunes:ISRC': 'isrc',
|
|
67
|
-
'----:com.apple.iTunes:ASIN': 'asin',
|
|
68
|
-
'----:com.apple.iTunes:NOTES': 'comment',
|
|
69
|
-
'----:com.apple.iTunes:MusicBrainz Track Id': 'musicbrainz_recordingid',
|
|
70
|
-
'----:com.apple.iTunes:MusicBrainz Release Track Id': 'musicbrainz_trackid',
|
|
71
|
-
'----:com.apple.iTunes:MusicBrainz Album Id': 'musicbrainz_albumid',
|
|
72
|
-
'----:com.apple.iTunes:MusicBrainz Artist Id': 'musicbrainz_artistid',
|
|
73
|
-
'----:com.apple.iTunes:MusicBrainz Album Artist Id': 'musicbrainz_albumartistid',
|
|
74
|
-
'----:com.apple.iTunes:MusicBrainz Release Group Id': 'musicbrainz_releasegroupid',
|
|
75
|
-
'----:com.apple.iTunes:MusicBrainz Work Id': 'musicbrainz_workid',
|
|
76
|
-
'----:com.apple.iTunes:MusicBrainz TRM Id': 'musicbrainz_trmid',
|
|
77
|
-
'----:com.apple.iTunes:MusicBrainz Disc Id': 'musicbrainz_discid',
|
|
78
|
-
'----:com.apple.iTunes:Acoustid Id': 'acoustid_id',
|
|
79
|
-
'----:com.apple.iTunes:Acoustid Fingerprint': 'acoustid_fingerprint',
|
|
80
|
-
'----:com.apple.iTunes:MusicIP PUID': 'musicip_puid',
|
|
81
|
-
'----:com.apple.iTunes:fingerprint': 'musicip_fingerprint',
|
|
82
|
-
'----:com.apple.iTunes:replaygain_track_gain': 'replaygain_track_gain',
|
|
83
|
-
'----:com.apple.iTunes:replaygain_track_peak': 'replaygain_track_peak',
|
|
84
|
-
'----:com.apple.iTunes:replaygain_album_gain': 'replaygain_album_gain',
|
|
85
|
-
'----:com.apple.iTunes:replaygain_album_peak': 'replaygain_album_peak',
|
|
86
|
-
'----:com.apple.iTunes:replaygain_track_minmax': 'replaygain_track_minmax',
|
|
87
|
-
'----:com.apple.iTunes:replaygain_album_minmax': 'replaygain_album_minmax',
|
|
88
|
-
'----:com.apple.iTunes:replaygain_undo': 'replaygain_undo',
|
|
89
|
-
// Additional mappings:
|
|
90
|
-
gnre: 'genre',
|
|
91
|
-
'----:com.apple.iTunes:ALBUMARTISTSORT': 'albumartistsort',
|
|
92
|
-
'----:com.apple.iTunes:ARTISTS': 'artists',
|
|
93
|
-
'----:com.apple.iTunes:ORIGINALDATE': 'originaldate',
|
|
94
|
-
'----:com.apple.iTunes:ORIGINALYEAR': 'originalyear',
|
|
95
|
-
// '----:com.apple.iTunes:PERFORMER': 'performer'
|
|
96
|
-
desc: 'description',
|
|
97
|
-
ldes: 'longDescription',
|
|
98
|
-
'©mvn': 'movement',
|
|
99
|
-
'©mvi': 'movementIndex',
|
|
100
|
-
'©mvc': 'movementTotal',
|
|
101
|
-
'©wrk': 'work',
|
|
102
|
-
catg: 'category',
|
|
103
|
-
egid: 'podcastId',
|
|
104
|
-
hdvd: 'hdVideo',
|
|
105
|
-
keyw: 'keywords',
|
|
106
|
-
shwm: 'showMovement',
|
|
107
|
-
stik: 'stik'
|
|
108
|
-
};
|
|
109
|
-
exports.tagType = 'iTunes';
|
|
110
|
-
class MP4TagMapper extends CaseInsensitiveTagMap_1.CaseInsensitiveTagMap {
|
|
111
|
-
constructor() {
|
|
112
|
-
super([exports.tagType], mp4TagMap);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
exports.MP4TagMapper = MP4TagMapper;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MP4TagMapper = exports.tagType = void 0;
|
|
4
|
+
const CaseInsensitiveTagMap_1 = require("../common/CaseInsensitiveTagMap");
|
|
5
|
+
/**
|
|
6
|
+
* Ref: https://github.com/sergiomb2/libmp4v2/wiki/iTunesMetadata
|
|
7
|
+
*/
|
|
8
|
+
const mp4TagMap = {
|
|
9
|
+
'©nam': 'title',
|
|
10
|
+
'©ART': 'artist',
|
|
11
|
+
aART: 'albumartist',
|
|
12
|
+
/**
|
|
13
|
+
* ToDo: Album artist seems to be stored here while Picard documentation says: aART
|
|
14
|
+
*/
|
|
15
|
+
'----:com.apple.iTunes:Band': 'albumartist',
|
|
16
|
+
'©alb': 'album',
|
|
17
|
+
'©day': 'date',
|
|
18
|
+
'©cmt': 'comment',
|
|
19
|
+
'©com': 'comment',
|
|
20
|
+
trkn: 'track',
|
|
21
|
+
disk: 'disk',
|
|
22
|
+
'©gen': 'genre',
|
|
23
|
+
covr: 'picture',
|
|
24
|
+
'©wrt': 'composer',
|
|
25
|
+
'©lyr': 'lyrics',
|
|
26
|
+
soal: 'albumsort',
|
|
27
|
+
sonm: 'titlesort',
|
|
28
|
+
soar: 'artistsort',
|
|
29
|
+
soaa: 'albumartistsort',
|
|
30
|
+
soco: 'composersort',
|
|
31
|
+
'----:com.apple.iTunes:LYRICIST': 'lyricist',
|
|
32
|
+
'----:com.apple.iTunes:CONDUCTOR': 'conductor',
|
|
33
|
+
'----:com.apple.iTunes:REMIXER': 'remixer',
|
|
34
|
+
'----:com.apple.iTunes:ENGINEER': 'engineer',
|
|
35
|
+
'----:com.apple.iTunes:PRODUCER': 'producer',
|
|
36
|
+
'----:com.apple.iTunes:DJMIXER': 'djmixer',
|
|
37
|
+
'----:com.apple.iTunes:MIXER': 'mixer',
|
|
38
|
+
'----:com.apple.iTunes:LABEL': 'label',
|
|
39
|
+
'©grp': 'grouping',
|
|
40
|
+
'----:com.apple.iTunes:SUBTITLE': 'subtitle',
|
|
41
|
+
'----:com.apple.iTunes:DISCSUBTITLE': 'discsubtitle',
|
|
42
|
+
cpil: 'compilation',
|
|
43
|
+
tmpo: 'bpm',
|
|
44
|
+
'----:com.apple.iTunes:MOOD': 'mood',
|
|
45
|
+
'----:com.apple.iTunes:MEDIA': 'media',
|
|
46
|
+
'----:com.apple.iTunes:CATALOGNUMBER': 'catalognumber',
|
|
47
|
+
tvsh: 'tvShow',
|
|
48
|
+
tvsn: 'tvSeason',
|
|
49
|
+
tves: 'tvEpisode',
|
|
50
|
+
sosn: 'tvShowSort',
|
|
51
|
+
tven: 'tvEpisodeId',
|
|
52
|
+
tvnn: 'tvNetwork',
|
|
53
|
+
pcst: 'podcast',
|
|
54
|
+
purl: 'podcasturl',
|
|
55
|
+
'----:com.apple.iTunes:MusicBrainz Album Status': 'releasestatus',
|
|
56
|
+
'----:com.apple.iTunes:MusicBrainz Album Type': 'releasetype',
|
|
57
|
+
'----:com.apple.iTunes:MusicBrainz Album Release Country': 'releasecountry',
|
|
58
|
+
'----:com.apple.iTunes:SCRIPT': 'script',
|
|
59
|
+
'----:com.apple.iTunes:LANGUAGE': 'language',
|
|
60
|
+
cprt: 'copyright',
|
|
61
|
+
'©cpy': 'copyright',
|
|
62
|
+
'----:com.apple.iTunes:LICENSE': 'license',
|
|
63
|
+
'©too': 'encodedby',
|
|
64
|
+
pgap: 'gapless',
|
|
65
|
+
'----:com.apple.iTunes:BARCODE': 'barcode',
|
|
66
|
+
'----:com.apple.iTunes:ISRC': 'isrc',
|
|
67
|
+
'----:com.apple.iTunes:ASIN': 'asin',
|
|
68
|
+
'----:com.apple.iTunes:NOTES': 'comment',
|
|
69
|
+
'----:com.apple.iTunes:MusicBrainz Track Id': 'musicbrainz_recordingid',
|
|
70
|
+
'----:com.apple.iTunes:MusicBrainz Release Track Id': 'musicbrainz_trackid',
|
|
71
|
+
'----:com.apple.iTunes:MusicBrainz Album Id': 'musicbrainz_albumid',
|
|
72
|
+
'----:com.apple.iTunes:MusicBrainz Artist Id': 'musicbrainz_artistid',
|
|
73
|
+
'----:com.apple.iTunes:MusicBrainz Album Artist Id': 'musicbrainz_albumartistid',
|
|
74
|
+
'----:com.apple.iTunes:MusicBrainz Release Group Id': 'musicbrainz_releasegroupid',
|
|
75
|
+
'----:com.apple.iTunes:MusicBrainz Work Id': 'musicbrainz_workid',
|
|
76
|
+
'----:com.apple.iTunes:MusicBrainz TRM Id': 'musicbrainz_trmid',
|
|
77
|
+
'----:com.apple.iTunes:MusicBrainz Disc Id': 'musicbrainz_discid',
|
|
78
|
+
'----:com.apple.iTunes:Acoustid Id': 'acoustid_id',
|
|
79
|
+
'----:com.apple.iTunes:Acoustid Fingerprint': 'acoustid_fingerprint',
|
|
80
|
+
'----:com.apple.iTunes:MusicIP PUID': 'musicip_puid',
|
|
81
|
+
'----:com.apple.iTunes:fingerprint': 'musicip_fingerprint',
|
|
82
|
+
'----:com.apple.iTunes:replaygain_track_gain': 'replaygain_track_gain',
|
|
83
|
+
'----:com.apple.iTunes:replaygain_track_peak': 'replaygain_track_peak',
|
|
84
|
+
'----:com.apple.iTunes:replaygain_album_gain': 'replaygain_album_gain',
|
|
85
|
+
'----:com.apple.iTunes:replaygain_album_peak': 'replaygain_album_peak',
|
|
86
|
+
'----:com.apple.iTunes:replaygain_track_minmax': 'replaygain_track_minmax',
|
|
87
|
+
'----:com.apple.iTunes:replaygain_album_minmax': 'replaygain_album_minmax',
|
|
88
|
+
'----:com.apple.iTunes:replaygain_undo': 'replaygain_undo',
|
|
89
|
+
// Additional mappings:
|
|
90
|
+
gnre: 'genre',
|
|
91
|
+
'----:com.apple.iTunes:ALBUMARTISTSORT': 'albumartistsort',
|
|
92
|
+
'----:com.apple.iTunes:ARTISTS': 'artists',
|
|
93
|
+
'----:com.apple.iTunes:ORIGINALDATE': 'originaldate',
|
|
94
|
+
'----:com.apple.iTunes:ORIGINALYEAR': 'originalyear',
|
|
95
|
+
// '----:com.apple.iTunes:PERFORMER': 'performer'
|
|
96
|
+
desc: 'description',
|
|
97
|
+
ldes: 'longDescription',
|
|
98
|
+
'©mvn': 'movement',
|
|
99
|
+
'©mvi': 'movementIndex',
|
|
100
|
+
'©mvc': 'movementTotal',
|
|
101
|
+
'©wrk': 'work',
|
|
102
|
+
catg: 'category',
|
|
103
|
+
egid: 'podcastId',
|
|
104
|
+
hdvd: 'hdVideo',
|
|
105
|
+
keyw: 'keywords',
|
|
106
|
+
shwm: 'showMovement',
|
|
107
|
+
stik: 'stik'
|
|
108
|
+
};
|
|
109
|
+
exports.tagType = 'iTunes';
|
|
110
|
+
class MP4TagMapper extends CaseInsensitiveTagMap_1.CaseInsensitiveTagMap {
|
|
111
|
+
constructor() {
|
|
112
|
+
super([exports.tagType], mp4TagMap);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.MP4TagMapper = MP4TagMapper;
|
|
116
116
|
//# sourceMappingURL=MP4TagMapper.js.map
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extended Lame Header
|
|
3
|
-
*/
|
|
4
|
-
import { IGetToken } from 'strtok3/lib/core';
|
|
5
|
-
import { IReplayGain } from './ReplayGainDataFormat';
|
|
6
|
-
/**
|
|
7
|
-
* LAME Tag, extends the Xing header format
|
|
8
|
-
* First added in LAME 3.12 for VBR
|
|
9
|
-
* The modified header is also included in CBR files (effective LAME 3.94), with "Info" instead of "XING" near the beginning.
|
|
10
|
-
*/
|
|
11
|
-
export interface IExtendedLameHeader {
|
|
12
|
-
revision: number;
|
|
13
|
-
vbr_method: number;
|
|
14
|
-
lowpass_filter: number;
|
|
15
|
-
track_peak?: number;
|
|
16
|
-
track_gain: IReplayGain;
|
|
17
|
-
album_gain: IReplayGain;
|
|
18
|
-
music_length: number;
|
|
19
|
-
music_crc: number;
|
|
20
|
-
header_crc: number;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Info Tag
|
|
24
|
-
* @link http://gabriel.mp3-tech.org/mp3infotag.html
|
|
25
|
-
* @link https://github.com/quodlibet/mutagen/blob/abd58ee58772224334a18817c3fb31103572f70e/mutagen/mp3/_util.py#L112
|
|
26
|
-
*/
|
|
27
|
-
export declare const ExtendedLameHeader: IGetToken<IExtendedLameHeader>;
|
|
1
|
+
/**
|
|
2
|
+
* Extended Lame Header
|
|
3
|
+
*/
|
|
4
|
+
import { IGetToken } from 'strtok3/lib/core';
|
|
5
|
+
import { IReplayGain } from './ReplayGainDataFormat';
|
|
6
|
+
/**
|
|
7
|
+
* LAME Tag, extends the Xing header format
|
|
8
|
+
* First added in LAME 3.12 for VBR
|
|
9
|
+
* The modified header is also included in CBR files (effective LAME 3.94), with "Info" instead of "XING" near the beginning.
|
|
10
|
+
*/
|
|
11
|
+
export interface IExtendedLameHeader {
|
|
12
|
+
revision: number;
|
|
13
|
+
vbr_method: number;
|
|
14
|
+
lowpass_filter: number;
|
|
15
|
+
track_peak?: number;
|
|
16
|
+
track_gain: IReplayGain;
|
|
17
|
+
album_gain: IReplayGain;
|
|
18
|
+
music_length: number;
|
|
19
|
+
music_crc: number;
|
|
20
|
+
header_crc: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Info Tag
|
|
24
|
+
* @link http://gabriel.mp3-tech.org/mp3infotag.html
|
|
25
|
+
* @link https://github.com/quodlibet/mutagen/blob/abd58ee58772224334a18817c3fb31103572f70e/mutagen/mp3/_util.py#L112
|
|
26
|
+
*/
|
|
27
|
+
export declare const ExtendedLameHeader: IGetToken<IExtendedLameHeader>;
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Extended Lame Header
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ExtendedLameHeader = void 0;
|
|
7
|
-
const Token = require("token-types");
|
|
8
|
-
const common = require("../common/Util");
|
|
9
|
-
const ReplayGainDataFormat_1 = require("./ReplayGainDataFormat");
|
|
10
|
-
/**
|
|
11
|
-
* Info Tag
|
|
12
|
-
* @link http://gabriel.mp3-tech.org/mp3infotag.html
|
|
13
|
-
* @link https://github.com/quodlibet/mutagen/blob/abd58ee58772224334a18817c3fb31103572f70e/mutagen/mp3/_util.py#L112
|
|
14
|
-
*/
|
|
15
|
-
exports.ExtendedLameHeader = {
|
|
16
|
-
len: 27,
|
|
17
|
-
get: (buf, off) => {
|
|
18
|
-
const track_peak = Token.UINT32_BE.get(buf, off + 2);
|
|
19
|
-
return {
|
|
20
|
-
revision: common.getBitAllignedNumber(buf, off, 0, 4),
|
|
21
|
-
vbr_method: common.getBitAllignedNumber(buf, off, 4, 4),
|
|
22
|
-
lowpass_filter: 100 * Token.UINT8.get(buf, off + 1),
|
|
23
|
-
track_peak: track_peak === 0 ? undefined : track_peak / Math.pow(2, 23),
|
|
24
|
-
track_gain: ReplayGainDataFormat_1.ReplayGain.get(buf, 6),
|
|
25
|
-
album_gain: ReplayGainDataFormat_1.ReplayGain.get(buf, 8),
|
|
26
|
-
music_length: Token.UINT32_BE.get(buf, off + 20),
|
|
27
|
-
music_crc: Token.UINT8.get(buf, off + 24),
|
|
28
|
-
header_crc: Token.UINT16_BE.get(buf, off + 24)
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Extended Lame Header
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ExtendedLameHeader = void 0;
|
|
7
|
+
const Token = require("token-types");
|
|
8
|
+
const common = require("../common/Util");
|
|
9
|
+
const ReplayGainDataFormat_1 = require("./ReplayGainDataFormat");
|
|
10
|
+
/**
|
|
11
|
+
* Info Tag
|
|
12
|
+
* @link http://gabriel.mp3-tech.org/mp3infotag.html
|
|
13
|
+
* @link https://github.com/quodlibet/mutagen/blob/abd58ee58772224334a18817c3fb31103572f70e/mutagen/mp3/_util.py#L112
|
|
14
|
+
*/
|
|
15
|
+
exports.ExtendedLameHeader = {
|
|
16
|
+
len: 27,
|
|
17
|
+
get: (buf, off) => {
|
|
18
|
+
const track_peak = Token.UINT32_BE.get(buf, off + 2);
|
|
19
|
+
return {
|
|
20
|
+
revision: common.getBitAllignedNumber(buf, off, 0, 4),
|
|
21
|
+
vbr_method: common.getBitAllignedNumber(buf, off, 4, 4),
|
|
22
|
+
lowpass_filter: 100 * Token.UINT8.get(buf, off + 1),
|
|
23
|
+
track_peak: track_peak === 0 ? undefined : track_peak / Math.pow(2, 23),
|
|
24
|
+
track_gain: ReplayGainDataFormat_1.ReplayGain.get(buf, 6),
|
|
25
|
+
album_gain: ReplayGainDataFormat_1.ReplayGain.get(buf, 8),
|
|
26
|
+
music_length: Token.UINT32_BE.get(buf, off + 20),
|
|
27
|
+
music_crc: Token.UINT8.get(buf, off + 24),
|
|
28
|
+
header_crc: Token.UINT16_BE.get(buf, off + 24)
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
};
|
package/lib/mpeg/MpegParser.d.ts
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { AbstractID3Parser } from '../id3v2/AbstractID3Parser';
|
|
2
|
-
export declare class MpegParser extends AbstractID3Parser {
|
|
3
|
-
private frameCount;
|
|
4
|
-
private syncFrameCount;
|
|
5
|
-
private countSkipFrameData;
|
|
6
|
-
private totalDataLength;
|
|
7
|
-
private audioFrameHeader;
|
|
8
|
-
private bitrates;
|
|
9
|
-
private offset;
|
|
10
|
-
private frame_size;
|
|
11
|
-
private crc;
|
|
12
|
-
private calculateEofDuration;
|
|
13
|
-
private samplesPerFrame;
|
|
14
|
-
private buf_frame_header;
|
|
15
|
-
/**
|
|
16
|
-
* Number of bytes already parsed since beginning of stream / file
|
|
17
|
-
*/
|
|
18
|
-
private mpegOffset;
|
|
19
|
-
private syncPeek;
|
|
20
|
-
/**
|
|
21
|
-
* Called after ID3 headers have been parsed
|
|
22
|
-
*/
|
|
23
|
-
_parse(): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Called after file has been fully parsed, this allows, if present, to exclude the ID3v1.1 header length
|
|
26
|
-
*/
|
|
27
|
-
protected finalize(): void;
|
|
28
|
-
private sync;
|
|
29
|
-
/**
|
|
30
|
-
* Combined ADTS & MPEG (MP2 & MP3) header handling
|
|
31
|
-
* @return {Promise<boolean>} true if parser should quit
|
|
32
|
-
*/
|
|
33
|
-
private parseCommonMpegHeader;
|
|
34
|
-
/**
|
|
35
|
-
* @return {Promise<boolean>} true if parser should quit
|
|
36
|
-
*/
|
|
37
|
-
private parseAudioFrameHeader;
|
|
38
|
-
private parseAdts;
|
|
39
|
-
private parseCrc;
|
|
40
|
-
private skipSideInformation;
|
|
41
|
-
private readXtraInfoHeader;
|
|
42
|
-
/**
|
|
43
|
-
* Ref: http://gabriel.mp3-tech.org/mp3infotag.html
|
|
44
|
-
* @returns {Promise<string>}
|
|
45
|
-
*/
|
|
46
|
-
private readXingInfoHeader;
|
|
47
|
-
private skipFrameData;
|
|
48
|
-
private areAllSame;
|
|
49
|
-
}
|
|
1
|
+
import { AbstractID3Parser } from '../id3v2/AbstractID3Parser';
|
|
2
|
+
export declare class MpegParser extends AbstractID3Parser {
|
|
3
|
+
private frameCount;
|
|
4
|
+
private syncFrameCount;
|
|
5
|
+
private countSkipFrameData;
|
|
6
|
+
private totalDataLength;
|
|
7
|
+
private audioFrameHeader;
|
|
8
|
+
private bitrates;
|
|
9
|
+
private offset;
|
|
10
|
+
private frame_size;
|
|
11
|
+
private crc;
|
|
12
|
+
private calculateEofDuration;
|
|
13
|
+
private samplesPerFrame;
|
|
14
|
+
private buf_frame_header;
|
|
15
|
+
/**
|
|
16
|
+
* Number of bytes already parsed since beginning of stream / file
|
|
17
|
+
*/
|
|
18
|
+
private mpegOffset;
|
|
19
|
+
private syncPeek;
|
|
20
|
+
/**
|
|
21
|
+
* Called after ID3 headers have been parsed
|
|
22
|
+
*/
|
|
23
|
+
_parse(): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Called after file has been fully parsed, this allows, if present, to exclude the ID3v1.1 header length
|
|
26
|
+
*/
|
|
27
|
+
protected finalize(): void;
|
|
28
|
+
private sync;
|
|
29
|
+
/**
|
|
30
|
+
* Combined ADTS & MPEG (MP2 & MP3) header handling
|
|
31
|
+
* @return {Promise<boolean>} true if parser should quit
|
|
32
|
+
*/
|
|
33
|
+
private parseCommonMpegHeader;
|
|
34
|
+
/**
|
|
35
|
+
* @return {Promise<boolean>} true if parser should quit
|
|
36
|
+
*/
|
|
37
|
+
private parseAudioFrameHeader;
|
|
38
|
+
private parseAdts;
|
|
39
|
+
private parseCrc;
|
|
40
|
+
private skipSideInformation;
|
|
41
|
+
private readXtraInfoHeader;
|
|
42
|
+
/**
|
|
43
|
+
* Ref: http://gabriel.mp3-tech.org/mp3infotag.html
|
|
44
|
+
* @returns {Promise<string>}
|
|
45
|
+
*/
|
|
46
|
+
private readXingInfoHeader;
|
|
47
|
+
private skipFrameData;
|
|
48
|
+
private areAllSame;
|
|
49
|
+
}
|