lfmCOL.pl - last.fm Data Collector (Windows, Linux, OS X)

lfmCMD - Command Line
lfmCOL - Data Collector
Generic Playlist Transfer
Essential Profile Transfer
Your last.fm Neighbours
Do-It-Yourself Scrobbler
MusicBrainz Scrobbler
Webservice - Word Cloud
iTunes Radio Scrobbler
Site Notice

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)


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"


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.