Tag reference
CrateDigger writes structured metadata into each MKV file using Matroska tags. Tags are grouped by scope level (called TargetTypeValue or TTV), which determines what the tag applies to:
| TTV | Scope | Used for |
|---|---|---|
| 50 | File | Display metadata that any media player reads: artist, title, date |
| 70 | Collection | CrateDigger enrichment data: 1001Tracklists identifiers, fanart URLs, album-level artist credits |
| 30 | Chapter | Per-track metadata: performer, title, label, genre, MusicBrainz IDs |
How the commands divide tag responsibility
The three-step workflow maps cleanly onto the three tag scopes:
-
identifywrites TTV=70 and TTV=30. It embeds everything downstream needs: the 1001Tracklists identifiers, album-level artist names and slugs, and per-chapter performer names, track titles, labels, and genres.organizereads these tags to build folder and file names. -
enrichwrites TTV=50. It reads the rich metadata thatidentifyembedded, resolves aliases, and produces the clean display-layer tags (ARTIST, TITLE, DATE_RELEASED, SYNOPSIS) that media players and NFO consumers use. It also resolves MusicBrainz IDs and writes them positionally aligned with the slugs and namesidentifyalready placed.
This is why the order matters: enrich depends on what identify wrote.
File-level tags (TTV=50)
Written by enrich (tags operation). These are the tags any MKV-aware media player reads and displays.
| Tag | Content | Example |
|---|---|---|
ARTIST |
Primary artist only, after alias resolution. Used for folder routing and single-value consumers. | Armin van Buuren |
TITLE |
Display title. For festival sets: Artist @ Stage, Festival. For concerts: the concert title. |
Armin van Buuren & KIKI @ Two Is One, AMF |
DATE_RELEASED |
Event date or year. | 2025-10-25 |
SYNOPSIS |
Generated description: artist and stage, then festival (falling back to venue, then freeform location) with country, then edition and set title. Only lines with data are included. | (multi-line) |
DESCRIPTION |
Cleared to empty. Removes the auto-generated description yt-dlp embeds from the YouTube page. | `` |
Collection-level tags (TTV=70)
The CRATEDIGGER_* namespace carries enrichment identifiers and multi-value artist data. Written at collection scope so consumers that ignore per-chapter tags still see them.
1001Tracklists identifiers
Written by identify.
| Tag | Content | Example |
|---|---|---|
CRATEDIGGER_1001TL_URL |
Permalink to the 1001Tracklists tracklist page | https://www.1001tracklists.com/tracklist/... |
CRATEDIGGER_1001TL_TITLE |
Tracklist title as shown on 1001Tracklists | Armin van Buuren & KIKI @ Two Is One, AMF 2025 |
CRATEDIGGER_1001TL_ID |
Numeric tracklist ID | 1hv3n1nt |
CRATEDIGGER_1001TL_DATE |
Event date from 1001Tracklists | 2025-10-25 |
CRATEDIGGER_1001TL_GENRES |
Top 5 most frequent per-track genres, pipe-separated | Techno\|Trance\|Hard Dance |
CRATEDIGGER_1001TL_DJ_ARTWORK |
URL to the DJ photo on the tracklist page | https://... |
CRATEDIGGER_1001TL_STAGE |
Stage name if listed | Two Is One |
CRATEDIGGER_1001TL_FESTIVAL |
Festival display name when the source is a festival | Amsterdam Music Festival |
CRATEDIGGER_1001TL_VENUE |
Venue display name | Johan Cruijff ArenA |
CRATEDIGGER_1001TL_EVENT |
Event or conference display name | Amsterdam Dance Event |
CRATEDIGGER_1001TL_COUNTRY |
Country of the event | Netherlands |
CRATEDIGGER_1001TL_LOCATION |
Freeform location text from the tracklist header, written only when no linked festival/venue/conference/radio source is present | Alexandra Palace London |
CRATEDIGGER_1001TL_SOURCE_TYPE |
Source category: Open Air / Festival, Event Location, Conference, etc. | Open Air / Festival |
Fanart URLs
Written by enrich (tags operation).
| Tag | Content | Example |
|---|---|---|
CRATEDIGGER_FANART_URL |
URL of the artist background image downloaded from fanart.tv | https://assets.fanart.tv/... |
CRATEDIGGER_CLEARLOGO_URL |
URL of the artist clear logo from fanart.tv | https://assets.fanart.tv/... |
CRATEDIGGER_ENRICHED_AT |
Timestamp of the most recent enrich pass that wrote collection-level tags | 2026-04-14T10:15:30+00:00 |
Album-level artist tags
Written by identify (names, display, slugs) and enrich (album_artist_mbids operation for MBIDs). These mirror the per-chapter multi-artist pattern at the album level for downstream tools that need a full multi-value artist credit.
| Tag | Written by | Content | Example |
|---|---|---|---|
CRATEDIGGER_1001TL_ARTISTS |
identify | Pipe-separated canonical DJ names, normalized from 1001Tracklists | Armin van Buuren\|KIKI |
CRATEDIGGER_ALBUMARTIST_SLUGS |
identify | Pipe-separated 1001Tracklists DJ slugs, positionally aligned with CRATEDIGGER_1001TL_ARTISTS |
arminvanbuuren\|kislashki |
CRATEDIGGER_ALBUMARTIST_DISPLAY |
identify | Human-readable join of all artist names. The value to use as a display ALBUMARTIST. |
Armin van Buuren & KIKI |
CRATEDIGGER_ALBUMARTIST_MBIDS |
enrich | Pipe-separated MusicBrainz artist IDs, positionally aligned with CRATEDIGGER_1001TL_ARTISTS. Empty slot "" for unresolved names. |
477b8c0c-...\|<kiki-mbid> |
Per-chapter tags (TTV=30)
Written by identify, except MUSICBRAINZ_ARTISTIDS which is written by enrich (chapter_artist_mbids operation). These tags are attached to each chapter (track) in the MKV.
| Tag | Written by | Content | Example |
|---|---|---|---|
CRATEDIGGER_TRACK_PERFORMER |
identify | Primary artist display name of the track, exactly as 1001Tracklists renders it | AFROJACK ft. Eva Simons |
CRATEDIGGER_TRACK_PERFORMER_SLUGS |
identify | Pipe-separated 1001Tracklists slugs for every artist on the track | afrojack\|oliver-heldens |
CRATEDIGGER_TRACK_PERFORMER_NAMES |
identify | Pipe-separated display names for every artist, aligned with CRATEDIGGER_TRACK_PERFORMER_SLUGS |
Afrojack\|Oliver Heldens |
MUSICBRAINZ_ARTISTIDS |
enrich | Pipe-separated MusicBrainz artist IDs, aligned with CRATEDIGGER_TRACK_PERFORMER_NAMES. Empty slot "" for unresolved names. |
<afrojack-mbid>\|<heldens-mbid> |
CRATEDIGGER_TRACK_TITLE |
identify | Track title with the artist prefix stripped | Take Over Control |
CRATEDIGGER_TRACK_LABEL |
identify | Record label | WALL |
CRATEDIGGER_TRACK_GENRE |
identify | Pipe-separated per-track genres | Big Room\|Electro House |
The CRATEDIGGER_TRACK_* prefix is deliberate: it keeps these per-chapter tags out of mediainfo's flattened "General" section. Unprefixed standard Matroska names (PERFORMER, LABEL, GENRE, TITLE) at TTV=30 get promoted into mediainfo's file-level display (last chapter wins), making files look like they carry the last chapter's values at file scope. The prefix avoids that without changing playback behaviour in Matroska-aware readers (Kodi uses the chapter's ChapterString for the title, not these tags).
Pipe alignment
Two tag families use pipe-separated values that are positionally aligned. You can zip them by index to produce multi-value credits with MBIDs attached.
Per-chapter:
CRATEDIGGER_TRACK_PERFORMER_SLUGS | CRATEDIGGER_TRACK_PERFORMER_NAMES | MUSICBRAINZ_ARTISTIDS
slot 0 | slot 0 | slot 0
slot 1 | slot 1 | slot 1
Album-level:
CRATEDIGGER_1001TL_ARTISTS | CRATEDIGGER_ALBUMARTIST_SLUGS | CRATEDIGGER_ALBUMARTIST_MBIDS
slot 0 | slot 0 | slot 0
slot 1 | slot 1 | slot 1
CRATEDIGGER_ALBUMARTIST_DISPLAY is the human-readable version of the album-level list and is not pipe-separated.
Unresolved MBIDs are preserved as empty slots (""), never dropped. This keeps the alignment intact even when a MusicBrainz lookup fails.
Worked example: Armin van Buuren b2b KIKI at AMF 2025
After identify
CRATEDIGGER_1001TL_URL=https://www.1001tracklists.com/tracklist/...
CRATEDIGGER_1001TL_TITLE=Armin van Buuren & KIKI @ Two Is One, AMF 2025
CRATEDIGGER_1001TL_ARTISTS=Armin van Buuren|KIKI
CRATEDIGGER_ALBUMARTIST_SLUGS=arminvanbuuren|kislashki
CRATEDIGGER_ALBUMARTIST_DISPLAY=Armin van Buuren & KIKI
# Per chapter (TTV=30):
# CRATEDIGGER_TRACK_PERFORMER, CRATEDIGGER_TRACK_PERFORMER_SLUGS,
# CRATEDIGGER_TRACK_PERFORMER_NAMES, CRATEDIGGER_TRACK_TITLE,
# CRATEDIGGER_TRACK_LABEL, CRATEDIGGER_TRACK_GENRE
After enrich
# File-level (TTV=50):
ARTIST=Armin van Buuren
TITLE=Armin van Buuren & KIKI @ Two Is One, AMF
DATE_RELEASED=2025-10-25
SYNOPSIS=...
# Collection-level (TTV=70) additions:
CRATEDIGGER_FANART_URL=https://assets.fanart.tv/...
CRATEDIGGER_CLEARLOGO_URL=https://assets.fanart.tv/...
CRATEDIGGER_ALBUMARTIST_MBIDS=477b8c0c-c5fc-4ad2-b5b2-191f0bf2a9df|<kiki-mbid-or-empty>
CRATEDIGGER_ENRICHED_AT=2026-04-14T10:15:30+00:00
# Per chapter (TTV=30) additions:
# MUSICBRAINZ_ARTISTIDS (aligned with CRATEDIGGER_TRACK_PERFORMER_NAMES)
If KIKI's MBID is not yet in the cache, her slot in CRATEDIGGER_ALBUMARTIST_MBIDS and the per-chapter MUSICBRAINZ_ARTISTIDS will be an empty string. Add her to your artist_mbids.json (~/CrateDigger/artist_mbids.json on Linux and macOS, Documents\CrateDigger\artist_mbids.json on Windows) and re-run:
No --regenerate needed. CrateDigger detects that the resolved ID has changed and writes the update automatically.
See also
- enrich: chapter_artist_mbids: per-chapter MBID resolution and fix workflow
- enrich: album_artist_mbids: album-level MBID resolution
- 1001Tracklists integration: how identify extracts per-chapter metadata
- Configuration: artist MBID override file: user-curated MBID overrides
- Kodi integration: how these tags surface in Kodi