Compilation Albums
podkit syncs the compilation flag from your source metadata to the iPod database. This ensures compilation albums (soundtracks, “Various Artists” collections, “Best Of” compilations) appear correctly in the iPod’s Compilations browser rather than cluttering individual artist lists.
How It Works
Source Detection
podkit reads the compilation flag from standard audio metadata tags:
| Format | Tag | Example |
|---|---|---|
| FLAC / OGG / Opus | COMPILATION Vorbis comment | COMPILATION=1 |
| MP3 | TCMP ID3v2 frame | iTunes compilation flag |
| M4A / AAC | cpil iTunes atom | iTunes compilation flag |
For Subsonic sources (Navidrome, etc.), podkit reads the isCompilation field from the album-level metadata in the Subsonic API. All tracks in a compilation album inherit the flag.
iPod Behavior
When a track has the compilation flag set:
- It appears under Compilations in the iPod’s music browser
- The track’s artist still shows the individual performer (e.g., “Artist Alpha”)
- The album groups with other compilation albums instead of under each artist
Without the compilation flag, a “Various Artists” album with tracks from different artists would create separate entries under each artist’s name, making it hard to browse.
Sync Pipeline
The compilation flag flows through the full sync pipeline:
- Source scan — podkit reads the compilation tag from your audio files or Subsonic server
- Diff — compilation changes are detected as metadata conflicts (just like genre or year changes)
- Sync — the flag is written to the iPod database via libgpod
- Verification —
podkit device music --format jsonincludes thecompilationfield
Setting Compilation Tags
If your files don’t have the compilation tag set, you can add it with common tagging tools:
metaflac (FLAC files)
# Set compilation flagmetaflac --set-tag="COMPILATION=1" *.flac
# Remove compilation flagmetaflac --remove-tag=COMPILATION *.flacMusicBrainz Picard
- Select the album
- In the metadata panel, set Compilation to “Yes”
- Save
beets
beets reads the comp field from MusicBrainz and writes it to the COMPILATION tag automatically during import. You can also set it manually:
beet modify comp=1 album:"Greatest Hits"kid3
- Open the album
- Select all tracks
- In the tag editor, find the compilation field and set it to
1
Viewing Compilation Status
Default stats view
The default podkit device music output includes a compilation summary when compilations are present:
Music on iPod Tracks: 847 Albums: 62 Artists: 38 Compilations: 4 albums (47 tracks)Albums view
Use --albums to see which albums are compilations. A COMP column with ✓ appears when compilations exist:
podkit device music --albumsTrack listing
Use --fields to include the compilation column in track listings:
podkit device music --tracks --fields "title,artist,album,compilation"Compilation tracks show ✓, non-compilation tracks show ✗.
JSON output
For scripting, use JSON output to filter compilations:
podkit device music --tracks --format json | jq '.[] | select(.compilation == true) | .title'These same options work with podkit collection music to check your source library.
Re-syncing After Tag Changes
If you add or remove the compilation tag from source files after an initial sync, podkit detects the change on the next sync and updates the iPod database accordingly — no need to remove and re-add tracks.