rbox-js
Version:
Javascript library for interacting with the local and export data of Pioneers Rekordbox DJ software
1,263 lines (1,238 loc) • 173 kB
TypeScript
/* auto-generated by NAPI-RS */
/* eslint-disable */
/**
* Represents the `agentRegistry` table in the Rekordbox database.
*
* This struct maps to the `agentRegistry` table in the SQLite database used by Rekordbox.
* It contains various fields representing metadata and attributes of the Rekordbox collection.
* Each entry has a unique name as `registry_id`. The local update sequence number (USN), for
* example, is used to track changes made to the entry locally and if stored in the entry
* with `registry_id="localUpdateCount"`.
* Some important fields include:
* * localUpdateCount
* * SyncAnalysisDataRootPath
* * SyncSettingsRootPath
* * LangPath
*/
export interface AgentRegistry {
/** A unique identifier for the registry entry. */
registryId: string
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** An optional string field for additional identifier data. */
id1?: string
/** An optional string field for additional identifier data. */
id2?: string
/** An optional integer field for numerical data. */
int1?: number
/** An optional integer field for numerical data. */
int2?: number
/** An optional string field for textual data. */
str1?: string
/** An optional string field for textual data. */
str2?: string
/** An optional string field for date-related data. */
date1?: string
/** An optional string field for date-related data. */
date2?: string
/** An optional string field for extended text data. */
text1?: string
/** An optional string field for extended text data. */
text2?: string
}
/**
* Represents the `album` table in the Rekordbox One Library database.
*
* This struct maps to the `album` table in the One Library export database.
* It stores album-related data, allowing multiple tracks to be associated with the same album.
* This table includes metadata such as album name, artist, and compilation status.
*
* # Referenced by
* * [`Content`] via `album_id` foreign key.
*
* # References
* * [`Artist`] via `artist_id` foreign key.
* * [`Image`] via `image_id` foreign key.
*/
export interface Album {
/** The unique identifier of the album. */
id: number
/** The name of the album. */
name: string
/** An optional foreign key referencing the album [`Artist`]. */
artistId?: number
/** An optional foreign key referencing the album artwork [`Image`]. */
imageId?: number
/** A flag if the album is a compilation. */
isCompilation: number
/** An optional string used for searching the album. */
nameForSearch?: string
}
/**
* Represents the `artist` table in the Rekordbox One Library database.
*
* This struct maps to the `artist` table in the One Library export database.
* It stores artist-related data, allowing multiple tracks to be associated with the same artist.
*
* # Referenced by
* * [`Album`] via `artist_id` foreign key.
* * [`Content`] via `artist_id`, `remixer_id`, `original_artist_id`, `composer_id` and `lyricist_id` foreign keys.
*/
export interface Artist {
/** The unique identifier of the artist. */
id: number
/** The name of the artist. */
name: string
/** An optional field for storing a search-optimized version of the artist name. */
nameForSearch?: string
}
/**
* Represents the `category` table in the Rekordbox One Library database.
*
* This struct maps to the `category` table in the One Library export database.
*
* # References
* * [`MenuItem`] via `menu_item_id` foreign key.
*/
export interface Category {
/** The unique identifier of the category. */
id: number
/** A foreign key referencing the [`MenuItem`]. */
menuItemId: number
/** The sequence/order of the category. */
seq: number
/** A flag if the category is visible. */
isVisible: number
}
/**
* Represents the `cloudAgentRegistry` table in the Rekordbox database.
*
* This struct maps to the `cloudAgentRegistry` table in the SQLite database used by Rekordbox.
* It contains similar fields as the [`AgentRegistry`], but is specifically used for cloud-related
* registry entries.
*/
export interface CloudAgentRegistry {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** An optional integer field for numerical data. */
int1?: number
/** An optional integer field for numerical data. */
int2?: number
/** An optional string field for textual data. */
str1?: string
/** An optional string field for textual data. */
str2?: string
/** An optional string field for date-related data. */
date1?: string
/** An optional string field for date-related data. */
date2?: string
/** An optional string field for extended text data. */
text1?: string
/** An optional string field for extended text data. */
text2?: string
}
/**
* Represents the `color` table in the Rekordbox One Library database.
*
*
* # Referenced by
* * [`Content`] via `color_id` foreign key.
*/
export interface Color {
/** The unique identifier of the color. */
id: number
/** The name of the color */
name: string
}
export interface Composer {
id: number
name: string
nameForSearch?: string
}
/**
* Represents the `content` table in the Rekordbox One Library database.
*
* This struct maps to the `content` table in the One Library export database.
* It contains metadata and attributes for each track in the collection, including file info,
* artist, album, genre, and more.
*
* # Referenced by
* * [`Cue`] via `content_id` foreign key.
* * [`HistoryContent`] via `content_id` foreign key.
* * [`MyTagContent`] via `content_id` foreign key.
* * [`PlaylistContent`] via `content_id` foreign key.
* * [`RecommendedLike`] via `content_id_1` and `content_id_2` foreign keys.
*
* # References
* * [`Artist`] via `artist_id`, `remixer_id`, `original_artist_id`, `composer_id` and `lyricist_id` foreign keys.
* * [`Album`] via `album_id` foreign key.
* * [`Genre`] via `genre_id` foreign key.
* * [`Label`] via `label_id` foreign key.
* * [`Key`] via `key_id` foreign key.
* * [`Color`] via `color_id` foreign key.
* * [`Image`] via `image_id` foreign key.
*/
export interface Content {
/** The unique identifier of the content. */
id: number
/** The title of the track. */
title?: string
/** An optional title used for searching. */
titleForSearch?: string
/** The subtitle of the track */
subtitle?: string
/** The beats per minute multiplied by 100. */
bpmx100?: number
/** The length of the track in seconds. */
length?: number
/** The track number of the track */
trackNo?: number
/** The disc number of the track */
discNo?: number
/** Optional foreign key referencing the artist [`Artist`]. */
artistId?: number
/** Optional foreign key referencing the remixer [`Artist`]. */
remixerId?: number
/** Optional foreign key referencing the original artist [`Artist`]. */
originalArtistId?: number
/** Optional foreign key referencing the composer [`Artist`]. */
composerId?: number
/** Optional foreign key referencing the lyricist [`Artist`]. */
lyricistId?: number
/** Optional foreign key referencing the [`Album`]. */
albumId?: number
/** Optional foreign key referencing the [`Genre`]. */
genreId?: number
/** Optional foreign key referencing the [`Label`]. */
labelId?: number
/** Optional foreign key referencing the [`Key`]. */
keyId?: number
/** Optional foreign key referencing the [`Color`]. */
colorId?: number
/** Optional foreign key referencing the artwork [`Image`]. */
imageId?: number
/** The ccomment of the track. */
djComment?: string
/** The rating of the track. */
rating?: number
/** The release year of the track. */
releaseYear?: number
/** The release date of the track */
releaseDate?: string
/** The date the record was created */
dateCreated: Date
/** The date the record was added */
dateAdded: Date
/** The relative file path of the track (usually `'/Contents/<Artist>/<Title>'`) */
path: string
/** The file name of the track. */
fileName?: string
/** The file size of the track */
fileSize?: number
/** The file typo of the track */
fileType?: number
/** The bitrate of the trackk */
bitrate?: number
/** The bit depth of the track */
bitDepth?: number
/** The sample rate of the track. */
samplingRate?: number
/** The ISRC of the track */
isrc?: string
/** A flag if hot-cue auto load is enabled */
isHotCueAutoLoadOn?: number
/** A flag if kuvo delivery is enabled */
isKuvoDeliverStatusOn?: number
/** A kuvo delivery comment */
kuvoDeliveryComment?: string
/** The masterdb ID */
masterDbId?: number
/** The ID of the contnent in the masterdb */
masterContentId?: number
/** The relative path to the analysis data */
analysisDataFilePath?: string
/** The number of bits analysed (?) */
analysedBits?: number
/** The ID of the content in the content link database (seems to always be 788224) */
contentLink?: number
/** A flag if the content has been modified */
hasModified?: number
/** The number of updates to the associated cues */
cueUpdateCount?: number
/** The number of updates to the analysis data */
analysisDataUpdateCount?: number
/** The number of updates to the content record */
informationUpdateCount?: number
}
/**
* Represents the `contentActiveCensor` table in the Rekordbox database.
*
* This struct maps to the `contentActiveCensor` table in the SQLite database used by Rekordbox.
* It contains the active censor entries [`DjmdActiveCensor`] of a file as stringified JSON data.
*
* # References
* * [`DjmdContent`] via `content_id` foreign key.
*/
export interface ContentActiveCensor {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** The id of the associated [`DjmdContent`]. */
contentId: string
/** A string representing the active censors. */
activeCensors: string
/** The count of active censors. */
rbActivecensorCount: number
}
/**
* Represents the `contentCue` table in the Rekordbox database.
*
* This struct maps to the `contentCue` table in the SQLite database used by Rekordbox.
* It contains the cue entry [`DjmdCue`] of a file as stringified JSON data.
*
* # References
* * [`DjmdContent`] via `content_id` foreign key.
*/
export interface ContentCue {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** The id of the associated [`DjmdContent`]. */
contentId: string
/** A JSON string representing the cue data. */
cues: string
/** The count of cues. */
rbCueCount: number
}
/**
* Represents the `contentFile` table in the Rekordbox database.
*
* This struct maps to the `contentFile` table in the SQLite database used by Rekordbox.
* It contains metadata and attributes of the additional file of contents. These include
* the analysis and artwork files linked to a track
*
* # References
* * [`DjmdContent`] via `content_id` foreign key.
*/
export interface ContentFile {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** The id of the associated [`DjmdContent`]. */
contentId: string
/** The relative file path. */
path: string
/** The file hash. */
hash: string
/** The file size. */
size: number
/** The absolute file path. */
rbLocalPath: string
/** An optional string representing the in-sync file hash. */
rbInsyncHash?: string
/** An optional integer representing the in-sync local update sequence number. */
rbInsyncLocalUsn?: number
/** An optional integer indicating whether the file hash is dirty. */
rbFileHashDirty?: number
/** An optional integer representing the local file status. */
rbLocalFileStatus?: number
/** An optional integer indicating whether the file is in progress. */
rbInProgress?: number
/** An optional integer representing the process type. */
rbProcessType?: number
/** An optional string representing the temporary file path. */
rbTempPath?: string
/** An optional integer representing the file priority. */
rbPriority?: number
/** An optional integer indicating whether the file size is dirty. */
rbFileSizeDirty?: number
}
/**
* Represents the `cue` table in the Rekordbox One Library database.
*
* This struct maps to the `cue` table in the One Library export database.
* It stores information about cue points for tracks, including their timing, type, and
* additional metadata.
*
* # Notes
* Rekordbox internally represents time in “frames”, each being 1/150th of a second (6.666ms).
* The InFrame and OutFrame values use this unit of time. However, when a track is encoded with
* variable bit-rate (VBR) or average bit-rate (ABR), the InMpegFrame and OutMpegFrame values are
* filled out to assist with correct seeking. Despite the names, these values are not the frame
* indices within the MPEG file, but instead use an alternative timing scheme that is typically
* around 1/75th of a second (13.333ms) per frame, i.e. about half the granularity of normal frames.
*
* # Referenced by
* * [`HotCueBankListCue`] via `cue_id` foreign key.
*
* # References
* * [`Content`] via `content_id` foreign key.
*/
export interface Cue {
/** The unique identifier of the cue. */
id: number
/** A foreign key referencing the [`Content`]. */
contentId: number
/**
* The type of the cue.
*
* 0 if a memory cue, otherwise the number of Hot Cue
*/
kind?: number
/** An optional integer representing the index of the color in the color table. */
colorTableIndex?: number
/** A comment for the cue */
cueComment?: string
/** A flag whether the cue is part of an active loop. */
isActiveLoop?: number
/** Unknown */
beatLoopNumerator?: number
/** Unknonw */
beatLoopDenominator?: number
/** The cue's start time in microseconds. */
inUsec?: number
/** The cue's end time in microseconds. */
outUsec?: number
/**
* The cue's start frame.
*
* One frame is 1/150th of a second
*/
in150FramePerSec?: number
/**
* The cue's end frame or -1 if not a loop.
*
* One frame is 1/150th of a second
*/
out150FramePerSec?: number
/** The cue's start MPEG frame or 0 if not a VBR/ABR MPEG file (see note). */
inMpegFrameNumber?: number
/** The cue's end MPEG frame or 0 if not a loop or not a VBR/ABR MPEG file (see note) */
outMpegFrameNumber?: number
/** The cue's start MPEG absolute frame or 0 if not a VBR/ABR MPEG file. */
inMpegAbs?: number
/** The cue's end MPEG absolute frame or 0 if not a loop or not a VBR/ABR MPEG file */
outMpegAbs?: number
/** The cue's start frame position in the decoding block. */
inDecodingStartFramePosition?: number
/** The cue's end frame position in the decoding block. */
outDecodingStartFramePosition?: number
/** The cue's start file offset in the decoding block. */
inFileOffsetInBlock?: number
/** The cue's end file offset in the decoding block. */
outFileOffsetInBlock?: number
/** The cue's start sample position in the decoding block. */
inNumberOfSampleInBlock?: number
/** The cue's end sample position in the decoding block. */
outNumberOfSampleInBlock?: number
}
/**
* Represents the `djmdActiveCensor` table in the Rekordbox database.
*
* This struct maps to the `djmdActiveCensor` table in the SQLite database used by Rekordbox.
* It contains information for actively censoring explicit content of tracks in the Rekordbox
* collection. Active Censor items behave like two cue points, between which an effect is applied
* to the audio of a track.
*
* # References
* * [`DjmdContent`] via `content_id` and `content_uuid` foreign keys.
*/
export interface DjmdActiveCensor {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** The id of the associated [`DjmdContent`]. */
contentId: string
/** An optional integer representing the start time of the censor in milliseconds. */
inMsec?: number
/** An optional integer representing the end time of the censor in milliseconds. */
outMsec?: number
/** An optional integer representing additional information about the censor. */
info?: number
/** An optional string representing the list of parameters for the censor. */
parameterList?: string
/** An optional string representing the uuid of the associated [`DjmdContent`]. */
contentUuid?: string
}
/**
* Represents the `djmdAlbum` table in the Rekordbox database.
*
* This struct maps to the `djmdAlbum` table in the SQLite database used by Rekordbox.
* It stores album-related data, allowing multiple tracks to be associated with the same album.
* This table includes metadata such as album name, artist, and compilation status.
*
* # Referenced by
* * [`DjmdContent`] via `album_id` foreign key.
*
* # References
* * [`DjmdArtist`] via `album_artist_id` foreign key.
*/
export interface DjmdAlbum {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** The name of the album. */
name: string
/** An optional string representing the id of the album artist [`DjmdArtist`]. */
albumArtistId?: string
/** An optional string representing the path to the album's image. */
imagePath?: string
/** A flag if the album is a compilation. */
compilation: number
/** An optional string used for searching the album. */
searchStr?: string
}
/**
* Represents the `djmdArtist` table in the Rekordbox database.
*
* This struct maps to the `djmdArtist` table in the SQLite database used by Rekordbox.
* It stores artist-related data, allowing multiple tracks to be associated with the same artist.
*
* # Referenced by
* * [`DjmdContent`] via `artist_id` foreign key.
* * [`DjmdAlbum`] via `album_artist_id` foreign key.
*/
export interface DjmdArtist {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** An optional string representing the name of the artist. */
name: string
/** An optional string used for searching the artist. */
searchStr?: string
}
/**
* Represents the `djmdCategory` table in the Rekordbox database.
*
* This struct maps to the `djmdCategory` table in the SQLite database used by Rekordbox.
* It stores category-related data, which can be associated with menu items.
*
* # References
* * [`DjmdMenuItems`] via `menu_item_id` foreign key.
*/
export interface DjmdCategory {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** The id of the associated [`DjmdMenuItems`]. */
menuItemId: string
/** The sequence/order of the category. */
seq: number
/** A flag indicating whether the category is disabled. */
disable: number
/** The info order for the category. */
infoOrder: number
}
/**
* Represents the `djmdCloudProperty` table in the Rekordbox database.
*
* This struct maps to the `djmdCloudProperty` table in the SQLite database used by Rekordbox.
* It stores metadata and properties related to cloud-based entries, including status,
* synchronization details, and reserved fields for future use.
*/
export interface DjmdCloudProperty {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** An optional string for reserved data. */
reserved1?: string
/** An optional string for reserved data. */
reserved2?: string
/** An optional string for reserved data. */
reserved3?: string
/** An optional string for reserved data. */
reserved4?: string
/** An optional string for reserved data. */
reserved5?: string
}
/**
* Represents the `djmdColor` table in the Rekordbox database.
*
* This struct maps to the `djmdColor` table in the SQLite database used by Rekordbox.
* It stores color-related data, which can be associated with tracks and other entities.
*
* # Referenced by
* * [`DjmdContent`] via `color_id` foreign key.
*/
export interface DjmdColor {
/** A unique identifier for the color entry. */
id: string
/** A unique universal identifier for the color entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** An optional string representing the color code (e.g., hex value). */
colorCode?: string
/** The sort key for ordering colors. */
sortKey: number
/** A comment (usually the name) associated with the color. */
commnt: string
}
/**
* Represents the `djmdContent` table in the Rekordbox database.
*
* This struct maps to the `djmdContent` table in the SQLite database used by Rekordbox.
* It contains metadata and attributes for each track in the collection, including file info,
* artist, album, genre, and more.
*
* # Referenced by
* * [`ContentActiveCensor`] via `content_id` foreign key.
* * [`ContentCue`] via `content_id` foreign key.
* * [`ContentFile`] via `content_id` foreign key.
* * [`DjmdActiveCensor`] via `content_id` and `content_uuid` foreign keys.
* * [`DjmdSongHistory`] via `content_id` foreign key.
* * [`DjmdSongHotCueBanklist`] via `content_id` foreign key.
* * [`DjmdMixerParam`] via `content_id` foreign key.
* * [`DjmdSongMyTag`] via `content_id` foreign key.
* * [`DjmdSongPlaylist`] via `content_id` foreign key.
* * [`DjmdRecommendLike`] via `content_id1` and `content_id2` foreign keys.
* * [`DjmdSongRelatedTracks`] via `content_id` foreign key.
* * [`DjmdSongSampler`] via `content_id` foreign key.
* * [`DjmdSongTagList`] via `content_id` foreign key.
*
* # References
* * [`DjmdArtist`] via `artist_id`, `remixer_id`, `original_artist_id`, `composer_id` and `lyricist` foreign keys.
* * [`DjmdAlbum`] via `album_id` foreign key.
* * [`DjmdGenre`] via `genre_id` foreign key.
* * [`DjmdLabel`] via `label_id` foreign key.
* * [`DjmdKey`] via `key_id` foreign key.
* * [`DjmdColor`] via `color_id` foreign key.
*/
export interface DjmdContent {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** An optional string representing the folder path of the track. */
folderPath?: string
/** An optional string representing the long file name of the track. */
fileNameL?: string
/** An optional string representing the short file name of the track. */
fileNameS?: string
/** An optional string representing the title of the track. */
title?: string
/** An optional string representing the ID of the associated artist in [`DjmdArtist`]. */
artistId?: string
/** An optional string representing the ID of the associated album in [`DjmdAlbum`]. */
albumId?: string
/** An optional string representing the ID of the associated genre in [`DjmdGenre`]. */
genreId?: string
/** An optional integer representing the BPM of the track. */
bpm?: number
/** An optional integer representing the length of the track in milliseconds. */
length?: number
/** An optional integer representing the track number in the album. */
trackNo?: number
/** An optional integer representing the bit rate of the track. */
bitRate?: number
/** An optional integer representing the bit depth of the track. */
bitDepth?: number
/** An optional string representing comments about the track. */
commnt?: string
/** An optional integer representing the file type of the track. */
fileType?: number
/** An optional integer representing the rating of the track. */
rating?: number
/** An optional integer representing the release year of the track. */
releaseYear?: number
/** An optional string representing the ID of the remixer in [`DjmdArtist`]. */
remixerId?: string
/** An optional string representing the ID of the label in [`DjmdLabel`]. */
labelId?: string
/** An optional string representing the ID of the original artist in [`DjmdArtist`]. */
orgArtistId?: string
/** An optional string representing the ID of the key in [`DjmdKey`]. */
keyId?: string
/** An optional string representing the stock date of the track. */
stockDate?: string
/** An optional string representing the ID of the color in [`DjmdColor`]. */
colorId?: string
/** An optional integer representing the DJ play count of the track. */
djPlayCount?: number
/** An optional string representing the path to the track's image. */
imagePath?: string
/** An optional string representing the ID of the master database. */
masterDbId?: string
/** An optional string representing the ID of the master song. */
masterSongId?: string
/** An optional string representing the path to the analysis data. */
analysisDataPath?: string
/** An optional string used for searching the track. */
searchStr?: string
/** An optional integer representing the file size of the track. */
fileSize?: number
/** An optional integer representing the disc number of the track. */
discNo?: number
/** An optional string representing the ID of the composer in [`DjmdArtist`]. */
composerId?: string
/** An optional string representing the subtitle of the track. */
subtitle?: string
/** An optional integer representing the sample rate of the track. */
sampleRate?: number
/** An optional integer indicating whether quantization is disabled for the track. */
disableQuantize?: number
/** An optional integer indicating whether the track has been analyzed. */
analysed?: number
/** An optional string representing the release date of the track. */
releaseDate?: string
/** An optional string representing the creation date of the track. */
dateCreated?: string
/** An optional integer representing the content link of the track. */
contentLink?: number
/** An optional string representing tags associated with the track. */
tag?: string
/** An optional string indicating whether the track was modified by Rekordbox. */
modifiedByRbm?: string
/** An optional string representing the auto-load hot cue setting. */
hotCueAutoLoad?: string
/** An optional string representing the delivery control setting. */
deliveryControl?: string
/** An optional string representing comments about the delivery. */
deliveryComment?: string
/** An optional string indicating whether the cue points were updated. */
cueUpdated?: string
/** An optional string indicating whether the analysis data was updated. */
analysisUpdated?: string
/** An optional string indicating whether the track info was updated. */
trackInfoUpdated?: string
/** An optional string representing the lyricist of the track. */
lyricist?: string
/** An optional string representing the ISRC (International Standard Recording Code) of the track. */
isrc?: string
/** An optional integer representing sampler track information. */
samplerTrackInfo?: number
/** An optional integer representing the sampler play offset. */
samplerPlayOffset?: number
/** An optional float representing the sampler gain. */
samplerGain?: number
/** An optional string representing the associated video. */
videoAssociate?: string
/** An optional integer representing the lyric status of the track. */
lyricStatus?: number
/** An optional integer representing the service ID. */
serviceId?: number
/** An optional string representing the original folder path of the track. */
orgFolderPath?: string
/** An optional string for reserved data. */
reserved1?: string
/** An optional string for reserved data. */
reserved2?: string
/** An optional string for reserved data. */
reserved3?: string
/** An optional string for reserved data. */
reserved4?: string
/** An optional string for extended information. */
extInfo?: string
/** An optional string representing the Rekordbox file ID. */
rbFileId?: string
/** An optional string representing the ID of the associated device in [`DjmdDevice`]. */
deviceId?: string
/** An optional string representing the local folder path in Rekordbox. */
rbLocalFolderPath?: string
/** An optional string representing the source ID. */
srcId?: string
/** An optional string representing the source title. */
srcTitle?: string
/** An optional string representing the source artist name. */
srcArtistName?: string
/** An optional string representing the source album name. */
srcAlbumName?: string
/** An optional integer representing the source length in milliseconds. */
srcLength?: number
}
/**
* Represents the `djmdCue` table in the Rekordbox database.
*
* This struct maps to the `djmdCue` table in the SQLite database used by Rekordbox.
* It stores information about cue points for tracks, including their timing, type, and
* additional metadata.
*
* # Notes
* Rekordbox internally represents time in “frames”, each being 1/150th of a second (6.666ms).
* The InFrame and OutFrame values use this unit of time. However, when a track is encoded with
* variable bit-rate (VBR) or average bit-rate (ABR), the InMpegFrame and OutMpegFrame values are
* filled out to assist with correct seeking. Despite the names, these values are not the frame
* indices within the MPEG file, but instead use an alternative timing scheme that is typically
* around 1/75th of a second (13.333ms) per frame, i.e. about half the granularity of normal frames.
*
* # References
* * [`DjmdContent`] via `content_id` and `content_uuid` foreign keys.
*
* # Referenced by
* * [`DjmdSongHotCueBanklist`] via `cue_id` foreign key.
*/
export interface DjmdCue {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** The ID of the associated track in [`DjmdContent`]. */
contentId: string
/** The cue's start time in milliseconds. */
inMsec: number
/**
* The cue's start frame.
*
* One frame is 1/150th of a second
*/
inFrame: number
/** The cue's start MPEG frame or 0 if not a VBR/ABR MPEG file (see note). */
inMpegFrame: number
/** The cue's start MPEG absolute frame or 0 if not a VBR/ABR MPEG file. */
inMpegAbs: number
/** The cue's end time in milliseconds or -1 if not a loop. */
outMsec: number
/**
* The cue's end frame or -1 if not a loop.
*
* One frame is 1/150th of a second
*/
outFrame: number
/** The cue's end MPEG frame or 0 if not a loop or not a VBR/ABR MPEG file (see note) */
outMpegFrame: number
/** The cue's end MPEG absolute frame or 0 if not a loop or not a VBR/ABR MPEG file */
outMpegAbs: number
/**
* The type of the cue.
*
* 0 if a memory cue, otherwise the number of Hot Cue
*/
kind: number
/** The color ID of the cue or -1 if no color. */
color: number
/** An optional integer representing the index of the color in the color table. */
colorTableIndex?: number
/** An optional integer indicating whether the cue is part of an active loop. */
activeLoop?: number
/** An optional string containing comments about the cue. */
comment?: string
/** An optional integer representing the size of the beat loop. */
beatLoopSize?: number
/** An optional integer representing the cue's position in microseconds. */
cueMicrosec?: number
/** An optional string containing seek information for the cue's start point. */
inPointSeekInfo?: string
/** An optional string containing seek information for the cue's end point. */
outPointSeekInfo?: string
/** An optional string representing the UUID of the associated track in [`DjmdContent`]. */
contentUuid?: string
}
/**
* Represents the `djmdDevice` table in the Rekordbox database.
*
* This struct maps to the `djmdDevice` table in the SQLite database used by Rekordbox.
* It stores information about devices associated with the Rekordbox collection, including
* metadata such as device name and master database ID.
*/
export interface DjmdDevice {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** The ID of the master database associated with the device. */
masterDbId: string
/** The name of the device. */
name: string
}
/**
* Represents the `djmdGenre` table in the Rekordbox database.
*
* This struct maps to the `djmdGenre` table in the SQLite database used by Rekordbox.
* It stores genre-related data, allowing tracks to be categorized by genre.
*
* # Referenced by
* * [`DjmdContent`] via `genre_id` foreign key.
*/
export interface DjmdGenre {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** An optional string representing the name of the genre. */
name: string
}
/**
* Represents the `djmdHistory` table in the Rekordbox database.
*
* This struct maps to the `djmdHistory` table in the SQLite database used by Rekordbox.
* It stores information about history entries, including metadata such as sequence, name,
* attributes, and parent relationships.
*
* # Referenced by
* * [`DjmdHistory`] via `parent_id` foreign key.
* * [`DjmdSongHistory`] via `history_id` foreign key.
*
* # References
* * [`DjmdHistory`] via `parent_id` foreign key.
*/
export interface DjmdHistory {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** The sequence/order number of the history (1-based index) */
seq: number
/** The name of the history. */
name: string
/** The attribute of the tag, either history (`0`) or a folder (`1`) */
attribute: number
/** The ID of the parent [`DjmdHistory`], `'root'` for top-level my-tag records. */
parentId: string
/** The creation date of the history. */
dateCreated: string
}
/**
* Represents the `djmdHotCueBanklist` table in the Rekordbox database.
*
* This struct maps to the `djmdHotCueBanklist` table in the SQLite database used by Rekordbox.
* It stores information about hot cue bank lists, including metadata such as sequence, name,
* image path, and parent relationships.
*
* # Referenced by
* * [`DjmdHotCueBanklist`] via `parent_id` foreign key.
* * [`DjmdSongHotCueBanklist`] via `hot_cue_banklist_id` and `hot_cue_banklist_uuid` foreign keys.
* * [`HotCueBanklistCue`] via `hot_cue_banklist_id` foreign key.
*
* # References
* * [`DjmdHotCueBanklist`] via `parent_id` foreign key.
*/
export interface DjmdHotCueBanklist {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** The sequence/order of the hot cue bank list (1-based index) */
seq: number
/** The name of the hot cue bank list. */
name: string
/** An optional path to the image associated with the hot cue bank list. */
imagePath?: string
/** The attribute of the hot cue bank list, either list (`0`) or a folder (`1`) */
attribute: number
/** The ID of the parent [`DjmdHotCueBanklist`], `'root'` for top-level records. */
parentId: string
}
/**
* Represents the `djmdKey` table in the Rekordbox database.
*
* This struct maps to the `djmdKey` table in the SQLite database used by Rekordbox.
* It stores information about musical keys, including their names and sequence order.
*
* # Referenced by
* * [`DjmdContent`] via `key_id` foreign key.
*/
export interface DjmdKey {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer representing the update sequence number. */
usn?: number
/** An optional integer representing the local update sequence number. */
rbLocalUsn?: number
/** The timestamp when the entry was created, serialized/deserialized as `DateString`. */
createdAt: Date
/** The timestamp when the entry was last updated, serialized/deserialized as `DateString`. */
updatedAt: Date
/** The name of the musical key. */
name: string
/** An optional integer representing the sequence/order of the key. */
seq?: number
}
/**
* Represents the `djmdLabel` table in the Rekordbox database.
*
* This struct maps to the `djmdLabel` table in the SQLite database used by Rekordbox.
* It stores information about labels, including their names and metadata.
*
* # Referenced by
* * [`DjmdContent`] via `label_id` foreign key.
*/
export interface DjmdLabel {
/** A unique identifier for the entry. */
id: string
/** A unique universal identifier for the entry. */
uuid: string
/** An integer representing the data status in Rekordbox. */
rbDataStatus: number
/** An integer representing the local data status in Rekordbox. */
rbLocalDataStatus: number
/** An integer indicating whether the entry is locally deleted. */
rbLocalDeleted: number
/** An integer indicating whether the entry is locally synced. */
rbLocalSynced: number
/** An optional integer repres