Export your iTunes library in easy-to-read formats! Install with npm:
$ npm install itunes-data
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:
track
emits a track (song) object with fields such asName
,Artist
,Album
,Genre
, and so on.artist
emits an artist object with fields such asName
,Track Count
, andPlay Count
.album
emits an album object with fields such asArtist
,Album Artist
,Track Count
, and so on.playlist
emits a playlist album with fields such asName
,Tracks
(an array of track objects), and so on.library
emits 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);
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"]
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