C# LINQ-To-XML iTunes Library Parser
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ITunesLibraryParser
ITunesLibraryParserTests
packages
.editorconfig
.gitignore
ITunesLibraryParser.sln
LICENSE
README.md
RunCoverage.cmd
appveyor.yml

README.md

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