Table of Contents
mAirListDB Library CSV Import/Export
This article explains the CSV file format used to import/export items from/to the mAirListDB Library.
General
File Format
- Plain text format, comma-separated values (CSV).
- Separator is comma or tab (ASCII 9).
- Strings can be quoted with double-quotes.
- Text encoding can be ANSI or UTF-8; for UTF-8, the file must have a valid BOM.
Columns
The CSV file contains one or more columns of values. The set of columns is not fixed, instead the first line in the CSV file must contain the names of the columns used in this file.
Some “fixed” column names will be recognized and mapped to mAirList's internal fields. The other column names will be treated as additional columns for Attributes.
Fixed column names
Column Name | Remark |
---|---|
ID | With or without leading 0s |
ExternalID | |
Filename | |
Title | |
Artist | |
Comment | |
EndType | |
Duration | seconds.milliseconds |
EffectiveDuration | seconds.milliseconds (export only) |
CueIn | seconds.milliseconds |
FadeIn | seconds.milliseconds |
Ramp1 | seconds.milliseconds |
Ramp2 | seconds.milliseconds |
Ramp3 | seconds.milliseconds |
HookIn | seconds.milliseconds |
HookFade | seconds.milliseconds |
HookOut | seconds.milliseconds |
LoopIn | seconds.milliseconds |
LoopOut | seconds.milliseconds |
Outro | seconds.milliseconds |
StartNext | seconds.milliseconds |
FadeOut | seconds.milliseconds |
FadeEnd | seconds.milliseconds |
CueOut | seconds.milliseconds |
Anchor | seconds.milliseconds |
Amplification | dB (from v6.3) |
LevelPeak | dBFS (from v6.3) |
LevelTruePeak | dBTP (from v6.3) |
LevelLoudness | LUFS (from v6.3) |
Attribute columns
Additional columns found in the CSV file will be treated and imported as attributes.
Restrictions
Only the fixed columns and attributes columns can be used for import/export. You can not use CSV import/export to handle any of the following information:
- Folder assignment
- Playback options
- Additional cue data
- …
Exporting Items
When exporting items as CSV from the mAirListDB Library, you have two file formats to choose from:
- CSV file: Will export all columns, including ID and all attributes found in any of the items
- CSV file (without IDs): Will omit the ID column
The latter can be used to import the items into another mAirListDB, where the items have a different ID.
Importing Items
CSV files can be used to update existing items in the Library, as well as adding new items.
In either case, you can have as many or few columns in the CSV file as you like. Columns not found in the file will be ignored. For example, you can use a CSV file with only the ID and Comment columns to update only the comment of a particular set of items (identified by their ID), and leave all other fields untouched.
Updating Existing Items
To update existing items in the Library, mAirListDB will try to identify the item by one of the following columns:
- ID
- ExternalID
- Filename
So if the ID
column is present and contains a value, the ID will be used to identify the item; otherwise, if the ExternalID
is present and contains a value, mAirList will try to identify the item by its External ID; otherwise the filename will be used. If that fails as well, it will look for an item that matches both artist and title.
If mAirListDB is unable to identify the item in any of these ways, the item will be treated as new (see below).
The item will be updated using the data found in the remaining columns of the file. All other fields will remain untouched. If a column contains the special value -
, the field will remain untouched as well.
Adding New Items
CSV files can also be used to add new items to the Library. In this case, the ID
column must be empty, and in case a value for ExternalID
or Filename
is given, there must be no other item in the Library with that External ID or filename already (otherwise mAirListDB would treat that line as an item update, not new item).
When adding new files, the filename must be located inside any of the registered Storages.
When no filename is given, or the Filename
column is not present at all, the items will be treated as Dummy items.
TL;DR - An Example
ID,ExternalID,Filename,Title,Artist,Comment,EndType,Duration,CueIn,FadeIn,Ramp1,Ramp2,Ramp3,HookIn,HookFade,HookOut,LoopIn,LoopOut,Outro,StartNext,FadeOut,FadeEnd,CueOut,Anchor,Album,Top40,Track,Jahr,Genre 00005217,,"M:\Music\Yann Tiersen\Skyline\01 Another Shore.m4a","Another Shore","Yann Tiersen",,,293.907,,,,,,,,,,,,,293.906,,293.907,,Skyline,,1,, 00005206,,"M:\Music\Yann Tiersen\Good Bye Lenin\13 Birthday Preparations.mp3","Birthday Preparations","Yann Tiersen",,,151.000,,,,,,,,,,,,,147.905,,151.293,,"Good Bye Lenin",,13,2003,Soundtrack 00005196,,"M:\Music\Yann Tiersen\Good Bye Lenin\03 Childhood (1).mp3","Childhood (1)","Yann Tiersen",,,97.000,,,,,,,,,,,,,91.606,,97.533,,"Good Bye Lenin",,03,2003,Soundtrack 00005208,,"M:\Music\Yann Tiersen\Good Bye Lenin\15 Childhood (2).mp3","Childhood (2)","Yann Tiersen",,,104.000,,,,,,,,,,,,,97.762,,104.893,,"Good Bye Lenin",,15,2003,Soundtrack 00005195,,"M:\Music\Yann Tiersen\Good Bye Lenin\02 Coma.mp3",Coma,"Yann Tiersen",,,78.000,,,,,,,,,,,,,76.751,,78.400,,"Good Bye Lenin",,02,2003,Soundtrack 00005177,,"M:\Music\Yann Tiersen\Die fabelhafte Welt der Amelie\04 Comptine d'un Autre ete - L'apres-midi.mp3","Comptine d'un Autre ete - L'apres-midi","Yann Tiersen",,,138.000,0.249,,,,,,,,,,,,131.805,,138.710,,"Die fabelhafte Welt der Amelie",,04,2001,Soundtrack