Export Plugin

The export plugin lets you get data from the items and export the content as JSON, CSV, or XML.

Enable the export plugin (see Using Plugins for help). Then, type beet export followed by a query to get the data from your library. For example, run this:

$ beet export beatles

to print a JSON file containing information about your Beatles tracks.

Command-Line Options

The export command has these command-line options:

  • --include-keys or -i: Choose the properties to include in the output data. The argument is a comma-separated list of simple glob patterns where * matches any string. For example:

    $ beet export -i 'title,mb*' beatles
    

    will include the title property and all properties starting with mb. You can add the -i option multiple times to the command line.

  • --library or -l: Show data from the library database instead of the files’ tags.

  • --album or -a: Show data from albums instead of tracks (implies --library).

  • --output or -o: Path for an output file. If not informed, will print the data in the console.

  • --append: Appends the data to the file instead of writing.

  • --format or -f: Specifies the format the data will be exported as. If not informed, JSON will be used by default. The format options include csv, json, jsonlines and xml.

Configuration

To configure the plugin, make a export: section in your configuration file. For JSON export, these options are available under the json and jsonlines keys:

  • ensure_ascii: Escape non-ASCII characters with \uXXXX entities.

  • indent: The number of spaces for indentation.

  • separators: A [item_separator, dict_separator] tuple.

  • sort_keys: Sorts the keys in JSON dictionaries.

Those options match the options from the Python json module. Similarly, these options are available for the CSV format under the csv key:

  • delimiter: Used as the separating character between fields. The default value is a comma (,).

  • dialect: The kind of CSV file to produce. The default is excel.

These options match the options from the Python csv module.

The default options look like this:

export:
    json:
        formatting:
            ensure_ascii: false
            indent: 4
            separators: [',' , ': ']
            sort_keys: true
    csv:
        formatting:
            delimiter: ','
            dialect: excel