https://github.com/asciamanna/ituneslibraryparser
C# LINQ-To-XML iTunes Library Parser
https://github.com/asciamanna/ituneslibraryparser
c-sharp itunes linq nuget plist propertylist xml
Last synced: 9 months ago
JSON representation
C# LINQ-To-XML iTunes Library Parser
- Host: GitHub
- URL: https://github.com/asciamanna/ituneslibraryparser
- Owner: asciamanna
- License: mit
- Created: 2012-09-23T11:49:25.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2020-06-26T05:22:48.000Z (about 6 years ago)
- Last Synced: 2025-09-28T23:51:44.454Z (9 months ago)
- Topics: c-sharp, itunes, linq, nuget, plist, propertylist, xml
- Language: Smalltalk
- Homepage:
- Size: 16.1 MB
- Stars: 19
- Watchers: 2
- Forks: 12
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
iTunesLibraryParser
===================
[](https://ci.appveyor.com/project/asciamanna/ituneslibraryparser)
[](https://coveralls.io/github/asciamanna/iTunesLibraryParser?branch=master)
[](https://www.nuget.org/packages/iTunesLibraryParser/)
[](https://app.codacy.com/app/asciamanna/iTunesLibraryParser?utm_source=github.com&utm_medium=referral&utm_content=asciamanna/iTunesLibraryParser&utm_campaign=badger)
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](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](https://www.nuget.org/packages/iTunesLibraryParser/)
## Usage
```csharp
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](http://semver.org). Releases will follow this format:
```
..
```
* 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](https://anthonysciamanna.com)
**Twitter:** [@asciamanna](https://www.twitter.com/asciamanna)