taglib-wasm
Version:
TagLib-Wasm is the universal tagging library for TypeScript/JavaScript platforms: Browsers, Node.js, Deno, Bun, Cloudflare Workers, and Electron apps
87 lines (86 loc) • 2.3 kB
JavaScript
const Tags = {
// Basic Properties
Title: "title",
Artist: "artist",
Album: "album",
Date: "date",
TrackNumber: "trackNumber",
Genre: "genre",
Comment: "comment",
// Extended Properties
AlbumArtist: "albumArtist",
Composer: "composer",
Copyright: "copyright",
EncodedBy: "encodedBy",
DiscNumber: "discNumber",
TotalTracks: "totalTracks",
TotalDiscs: "totalDiscs",
Compilation: "compilation",
Bpm: "bpm",
Lyricist: "lyricist",
Conductor: "conductor",
Remixer: "remixedBy",
Language: "language",
Publisher: "publisher",
Mood: "mood",
Media: "media",
RadioStationOwner: "radioStationOwner",
Producer: "producer",
Subtitle: "subtitle",
Label: "label",
// Sorting Properties
TitleSort: "titleSort",
ArtistSort: "artistSort",
AlbumArtistSort: "albumArtistSort",
AlbumSort: "albumSort",
ComposerSort: "composerSort",
// Identifiers
Isrc: "isrc",
Asin: "asin",
CatalogNumber: "catalogNumber",
Barcode: "barcode",
// MusicBrainz Identifiers
MusicBrainzArtistId: "musicbrainzArtistId",
MusicBrainzReleaseArtistId: "musicbrainzReleaseArtistId",
MusicBrainzWorkId: "musicbrainzWorkId",
MusicBrainzReleaseId: "musicbrainzReleaseId",
MusicBrainzRecordingId: "musicbrainzTrackId",
MusicBrainzTrackId: "musicbrainzTrackId",
MusicBrainzReleaseGroupId: "musicbrainzReleaseGroupId",
MusicBrainzReleaseTrackId: "musicbrainzReleaseTrackId",
// AcoustID
AcoustidFingerprint: "acoustidFingerprint",
AcoustidId: "acoustidId",
// Podcast Properties
PodcastId: "podcastId",
PodcastUrl: "podcastUrl",
// Grouping and Work
Grouping: "grouping",
Work: "work",
// Additional Metadata
Lyrics: "lyrics",
AlbumGain: "replayGainAlbumGain",
AlbumPeak: "replayGainAlbumPeak",
TrackGain: "replayGainTrackGain",
TrackPeak: "replayGainTrackPeak",
// Original release
OriginalArtist: "originalArtist",
OriginalAlbum: "originalAlbum",
OriginalDate: "originalDate",
// Miscellaneous
Script: "script",
InvolvedPeople: "involvedPeople",
Encoding: "encoding"
};
const VALID_TAG_NAMES = new Set(Object.values(Tags));
function isValidTagName(name) {
return VALID_TAG_NAMES.has(name);
}
function getAllTagNames() {
return Object.values(Tags);
}
export {
Tags,
getAllTagNames,
isValidTagName
};