itunes-data
itunes-data copied to clipboard
Export your iTunes library metadata in easy-to-read formats
itunes-data
Export your iTunes library in easy-to-read formats! Install with npm:
$ npm install itunes-data
Node usage
The module's parser() function returns an streaming XML parser that emits
events for different types of data that it encounters in Apple's XML-based
property list files:
trackemits a track (song) object with fields such asName,Artist,Album,Genre, and so on.artistemits an artist object with fields such asName,Track Count, andPlay Count.albumemits an album object with fields such asArtist,Album Artist,Track Count, and so on.playlistemits a playlist album with fields such asName,Tracks(an array of track objects), and so on.libraryemits a big, nested object of your entire library.
var fs = require("fs"),
itunes = require("itunes-data"),
parser = itunes.parser(),
stream = fs.createReadStream("path/to/iTunes Music Library.xml");
parser.on("track", function(track) {
console.log("track:", track);
});
parser.on("album", function(album) {
console.log("album:", album);
});
stream.pipe(parser);
Command Line
Or install the command-line utility:
$ npm install -g itunes-data
$ itunes-data --help
Export an iTunes library XML file.
Usage: itunes-data [options] [path/to/library.xml]
Options:
--tracks Save tracks (songs) to this file
--playlists Save playlists to this file
--artists Save artists to this file
--albums Save albums to this file
--library Save the library to this (JSON) file
--format Default output file format ('csv', 'tsv', 'json' or 'ldjson') [default: "csv"]
Examples
Export a all tracks (songs) in your library as comma-separated values (CSV):
$ itunes-data --tracks tracks.csv ~/Music/iTunes/iTunes\ Music\ Library.xml
Export a all albums in your library as tab-separated values:
$ itunes-data --albums albums.tsv ~/Music/iTunes/iTunes\ Music\ Library.xml
Export your entire library as JSON:
$ itunes-data --library library.json ~/Music/iTunes/iTunes\ Music\ Library.xml
If you leave off the filename for any of the --artists, --tracks,
--playlists, --albums or --library list options the data will be written
to stdout, in which case you probably want to specify the --format option as
well. You should only use one of the list options in this case!
$ itunes-data --artists --format json \
~/Music/iTunes/iTunes\ Music\ Library.xml > artists.json