NAME
Mac::iTunes::Library - Perl extension for representing an iTunes library
SYNOPSIS
use Mac::iTunes::Library;
my $library = Mac::iTunes::Library->new();
my $item = Mac::iTunes::Library::Item->new(
'Track ID' => 1,
'Name' => 'The Fooiest Song',
'Artist' => 'The Bar Band',
);
$library->add($item);
print "This library has only " . $library->num() . "item.\n";
DESCRIPTION
A data structure for representing an iTunes library.
The library keeps track of the number of tracks by each artist (a hash of Artist => num_tracks) and the number of songs in each genre (Genre => num_tracks). Additionally, the total playcounts for each artist (Artist => playcount_of_all_songs) and genre (Genre => playcount_of_all_songs) are tallied. Finally, all of the items in the library are available, sorted by artist.
EXPORT
None by default.
METHODS
- new()
-
Creates a new Mac::iTunes::Library object that can store Mac::iTunes::Library::Item objects.
- version()
-
Get/set the plist version number.
- majorVersion()
-
Get/set the Major Version number
- minorVersion()
-
Get/set the Minor Version number
- applicationVersion()
-
Get/set the Application Version number
- features()
-
Get/set the Features attribute
- showContentRatings()
-
Get/set the Show Content Ratings attribute
- musicFolder()
-
Get/set the Music Folder attribute
- libraryPersistentID()
-
Get/set the Library Persistent ID
- num()
-
Get the number of tracks in the library
- size()
-
Get the total size of the library
- time()
-
Get the total time of the library
- artist()
-
Get the hash of the number of tracks for each artist.
- partist()
-
Get the hash of the number of plays (playcount) for each artist.
- albumArtist()
-
Get the hash of the number of tracks for each albumArtist.
- palbumArtist()
-
Get the hash of the number of plays (playcount) for each albumArtist.
- genre()
-
Get the hash of the number of tracks in each genre.
- pgenre()
-
Get the hash of the number of plays (playcount) for each genre.
- type()
-
Get the hash of item types in the library
- items()
-
Get the hash of Items (Artist->Name->[item, item]) contained in the library; artist names are the top level keys; accessing one gives you a hash-ref with keys of song names and array-refs as values. Those array-refs contain Mac::iTunes::Library::Item objects. Example traversal:
# Assuming a previously created library %items = $library->items(); foreach my $artist (keys %items) { my $artistSongs = $items{$artist};
foreach my $songName (keys %$artistSongs) { my $artistSongItems = $artistSongs->{$songName}; foreach my $item (@$artistSongItems) { # Do something here to every item in the library print $song->name() . "\n"; } } }
- add( Mac::iTunes::Library::Item )
-
Add an item to the library
SEE ALSO
Mac::iTunes::Library::XML, Mac::iTunes::Library::Item, Mac::iTunes::Library::Playlist
AUTHOR
Drew Stephens <drew@dinomite.net>, http://dinomite.net
CONTRIBUTORS
Mark Grimes <mgrimes@cpan.org>, http://www.peculiarities.com
SOURCE REPOSITORY
http://mac-itunes.googlecode.com
SVN INFO
$Revision: 76 $ $Date: 2009-11-13 15:40:07 -0500 (Fri, 13 Nov 2009) $ $Author: drewgstephens $
COPYRIGHT AND LICENSE
Copyright (C) 2007-2008 by Drew Stephens
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 521:
You forgot a '=back' before '=head1'