Skip to content

Classification & Staging


get_genre_taxonomy no params

Section titled “get_genre_taxonomy ”

Returns the canonical genre list and alias mappings (54 genres optimized for DJ mixing).


Analyze genres in your library and suggest normalizations to the canonical taxonomy.

ParameterTypeRequiredDescription
min_countintegerOnly include genres with at least this many tracks (default: 1)
stage_aliasesbooleanWhen true, auto-stage all alias normalizations in one call

Returns three sections:

  • alias — known mappings from your genre strings to canonical genres (e.g., “Tech House” → “Tech House”)
  • unknown — genres that don’t match any alias or canonical entry
  • canonical — genres that already match the taxonomy exactly

Apply the genre decision tree to ungenred tracks using cached enrichment and audio evidence. Returns recommendations grouped by confidence level (high/medium/low/insufficient). Cache-only — never triggers external calls.

ParameterTypeRequiredDescription
track_idsstring[]Specific track IDs to classify
playlist_idstringClassify tracks in this playlist
max_tracksintegerMax tracks (default: 50, max: 200)
offsetintegerSkip first N tracks for pagination
genre_overridesarrayRemap genre strings before scoring (e.g., [{"from": "Melodic House & Techno", "to": "Deep Techno"}])
formatstringOutput format: "full" (default), "compact", "summary", "dispatch"
auto_stagestring[]Auto-stage results at these confidence levels: "high", "medium", "low", "insufficient"

Also accepts shared search filters. Enforces has_genre=false when using filters (bypassed when track_ids are provided explicitly).


Verify existing genre tags against enrichment and audio evidence. Returns only conflicts and manual-review tracks — confirmed tracks are counted in the summary but omitted. Cache-only.

ParameterTypeRequiredDescription
track_idsstring[]Specific track IDs to audit
playlist_idstringAudit tracks in this playlist
max_tracksintegerMax tracks (default: 50, max: 200)
offsetintegerSkip first N tracks for pagination
include_confirmedbooleanInclude confirmed tracks in results (default: false)

Also accepts shared search filters. Enforces has_genre=true when using filters (bypassed when track_ids are provided explicitly).


Auto-fill empty labels from enrichment caches (Discogs, MusicBrainz, Bandcamp, Beatport). Stages non-conflicting labels automatically; reports conflicts where the current label disagrees with enrichment.

ParameterTypeRequiredDescription
dry_runbooleanPreview without staging (default: false)
auto_enrichbooleanAutomatically enrich uncached tracks via Bandcamp before backfilling (default: false)
max_conflictsintegerCap on conflict entries in the response (default: 50)

Auto-fill missing years (year=0) from file tags, folder paths, and enrichment cache (Discogs/Beatport/MusicBrainz/Bandcamp). Stages non-conflicting years automatically; reports conflicts where the current year disagrees with enrichment.

ParameterTypeRequiredDescription
dry_runbooleanPreview without staging (default: false)
auto_enrichbooleanAutomatically enrich remaining year-zero tracks via Bandcamp and MusicBrainz before re-scanning (default: false)

Auto-fill empty album names from file tags, folder paths, and enrichment cache (Bandcamp/Discogs). Only fills tracks with no album set. Skips noise entries where the album matches the track title or artist name.

ParameterTypeRequiredDescription
dry_runbooleanPreview without staging (default: false)
auto_enrichbooleanAutomatically enrich uncached tracks via Bandcamp before backfilling (default: false)

update_tracks ──> preview_changes ──> write_xml ──> verify in XML view ──> import
clear_changes (undo)

Stage changes to track metadata. Held in memory until exported or cleared.

ParameterTypeRequiredDescription
changesarrayyesArray of track change objects

Each change object:

FieldTypeRequiredDescription
track_idstringyesTrack ID
genrestringNew genre
commentsstringNew comments
ratingintegerStar rating (1-5)
colorstringColor name
labelstringRecord label
yearintegerRelease year
albumstringAlbum name

You can stage changes for multiple tracks in one call. Calling update_tracks again for the same track merges fields — only the specified fields are overwritten, existing staged fields are preserved.


Preview all staged changes, showing a diff from the current Rekordbox state.

ParameterTypeRequiredDescription
track_idsstring[]Filter to specific track IDs (omit to show all staged; an empty array matches nothing)
formatstring"full" (default) or "summary" (aggregate counts by field and genre)

Export staged changes to Rekordbox-compatible XML. Optionally includes playlists.

ParameterTypeRequiredDescription
output_pathstringOutput path (default: ~/reklawdbox-exports/reklawdbox-{timestamp}.xml)
playlistsarrayOptional playlist exports
skip_label_gatebooleanSet to true to acknowledge that label research is complete and bypass the label gate

Each playlist object:

FieldTypeRequiredDescription
namestringyesPlaylist name
track_idsstring[]yesTrack IDs in playlist order

Clear staged changes, either entirely or selectively by track or field.

ParameterTypeRequiredDescription
track_idsstring[]Track IDs to clear (omit to clear all; an empty array clears nothing)
fieldsstring[]Fields to unstage: "genre", "comments", "rating", "color", "label", "year", "album" (omit to clear all fields on matched tracks)