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
