lfmCOL.pl is a small but powerful Perl program. It is a generic last.fm data collector client for Windows, Linux and OS X. It collects some user specific data and stores them into a XML file. The file can than be loaded into any program that supports xml import. For example: You can import the data into Excel or a XML database and use advanced features like: searching, sorting, filtering, stats, ...

Supported last.fm methods (requests):
- album.getShouts (new)
- artist.getImages
- artist.getPastEvents (new)
- artist.getShouts
- chart.getHypedArtists (new)
- chart.getHypedTracks (new)
- chart.getLovedTracks (new)
- chart.getTopArtists (new)
- chart.getTopTags (new)
- chart.getTopTracks (new)
- geo.getEvents
- group.getMembers
- library.getAlbums
- library.getArtists
- library.getTracks
- track.getShouts (new)
- user.getArtistTracks (new)
- user.getBannedTracks
- user.getFriends
- user.getLovedTracks
- user.getPastEvents
- user.getPersonalTags (tracks only) (new)
- user.getRecentStations
- user.getRecentTracks
- user.getRecommendedArtists
- user.getRecommendedEvents
- venue.getPastEvents (new)
Usage:
perl lfmCOL.pl [-maxpages=N] -xmlfile="Name" [-logging=0|1] method="name" [param1="value"] ... [paramN="value"]
-h | -? = show help (this)
-maxpages = maximum number of pages to be fetched (default=-1 [no limit])
-xmlfile = (to) xml data file
-logging = 0=OFF / 1=ON; logfile="lfmCOL.log"
Examples:
perl lfmCOL.pl -xmlfile=myRecentTracks.xml method=user.getRecentTracks limit=50 user=garry
perl lfmCOL.pl -xmlfile=myLovedTracks.xml method=user.getLovedTracks user=garry
perl lfmCOL.pl -xmlfile=ArethaImages.xml method=artist.getImages artist="Aretha Franklin"
perl lfmCOL.pl -xmlfile=Albums_garry.xml method=library.getAlbums user=garry
perl lfmCOL.pl -xmlfile=Artists_garry.xml method=library.getArtists user=garry
perl lfmCOL.pl -xmlfile=Tracks_jim.xml method=library.getTracks user=jim
perl lfmCOL.pl -xmlfile="Members_Webservices.xml" method=group.getMembers group="Last.fm Web Services"
perl lfmCOL.pl -maxpages=20 -xmlfile=Last1000Tracks.xml method=user.getRecentTracks limit=200 user=joey
perl lfmCOL.pl -maxpages=10 -xmlfile=Tracks_joey.xml method=library.getTracks user=joey
perl lfmCOL.pl -maxpages=10 -xmlfile=Tracks_joey.xml method=library.getTracks user=joey page=22
perl lfmCOL.pl -xmlfile=ReginaSpektorTracks.xml method=user.getArtistTracks user=toc-rox artist="Regina Spektor"
Link to utility: lfmCOL-20101203.zip

Two practical examples:
Collect your complete scrobbling history:
perl lfmCOL.pl -xmlfile=JoesRecentTracks.xml method=user.getRecentTracks limit=200 user=OldJoe
Collect your complete music library:
perl lfmCOL.pl -xmlfile=JoesMusicLibrary.xml method=library.getTracks user=OldJoe
General informations:
- You need a Perl interpreter to run the Perl script (lfmCOL.pl).
- Linux / OS X: Perl is already available
- Windows: You have to download Perl (Link to free ActivePerl: http://www.activestate.com/activeperl/)
- You typically use the utility from a command window (prompt).
- Windows: Start, Programs, Accessories, Command prompt.
- Linux / OS X: Start a terminal (console).
- Recommended terminal size setting is 132 x 43.
- Help informations: Start the utility without any parameters.
Technical notes:
- The utility comes with a configuration file (lfmCOL.cfg).
- You typically configure your "terminal encoding" and "proxy setting".
- lfmCOL.pl has full unicode (utf8) support.
- You have to configure the terminal encoding according to your codepage setting.
- Windows: eg. "cp850" / use "mode con" to find out your codepage setting.
- Linux / OS X: eg. "utf8" / have a look at your terminal configuration.
- Proxy support and configuration is possible.
- HTTP timeout configuration ist possible.