Skip to content

asciamanna/iTunesLibraryParser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5f11b9b · Jun 30, 2019
Mar 3, 2019
Jun 30, 2019
Jun 30, 2019
May 27, 2018
Sep 22, 2018
Jun 5, 2018
May 26, 2018
Sep 30, 2018
Jun 30, 2019
Jun 30, 2019

Repository files navigation

iTunesLibraryParser

Build status Coverage Status NuGet version Codacy Badge

The iTunes Library Parser is implemented in C# utilizing LINQ-To-XML. Given the location of a iTunes Music Library XML file it parses the PropertyList format, which is defined by the Document Type Declaration (DTD) defined here http://www.apple.com/DTDs/PropertyList-1.0.dtd. It supports parsing tracks, albums, and playlists. More features will be added periodically.

Nuget

The nuget package is available here

Usage

var library = new ITunesLibrary("iTunesLibrary.xml");

var tracks = library.Tracks 
// returns all tracks in the iTunes Library

var albums = library.Albums
// returns all albums in the iTunes Library

var playlists = library.Playlists
// returns all playlists in the iTunes Library

Versioning

iTunesLibaryParser will be maintained under the Semantic Versioning guidelines. Releases will follow this format:

<major>.<minor>.<build>
  • If a release breaks backward compatibility the major version will be bumped (resetting minor and build back to zero).
  • New features and updates without breaking backward compatibility will bump the minor version (resetting the build to zero)
  • Bug fixes and small miscellaneous changes increase the build number

Performance Testing

14,500 tracks -> 800ms
2400 albums -> 1.4s
100 playlists -> 2.2s

Coming Soon

Additional features will be coming soon like filtering tracks by track criteria.

Project Dependencies

coveralls.io 1.4.2
Moq 4.8.2
NUnit 3.10.1
NUnit.ConsoleRunner 3.8.0
OpenCover 4.6.519

Contact

Anthony Sciamanna
Web: https://anthonysciamanna.com
Twitter: @asciamanna