This is the cl-lastfm Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Tue Jul 15 04:02:21 2025 GMT+0.
The main system appears first, followed by any subsystem dependency.
cl-lastfmCommon Lisp wrapper for the Last.fm web service.
Nicolas Lamirault <nicolas.lamirault@gmail.com>
Nicolas Lamirault <nicolas.lamirault@gmail.com>
MIT License
0.1
drakma (system).
cxml-stp (system).
url-rewrite (system).
trivial-utf-8 (system).
src (module).
Modules are listed depth-first from the system components tree.
cl-lastfm/srccl-lastfm (system).
package.lisp (file).
conditions.lisp (file).
specials.lisp (file).
tools.lisp (file).
lastfm.lisp (file).
Files are sorted by type and then listed depth-first from the systems components trees.
cl-lastfm/cl-lastfm.asdcl-lastfm/src/package.lispcl-lastfm/src/conditions.lispcl-lastfm/src/specials.lispcl-lastfm/src/tools.lispcl-lastfm/src/lastfm.lispcl-lastfm/src/conditions.lisppackage.lisp (file).
src (module).
error-message-of (reader method).
lastfm-error (condition).
lastfm-protocol-error (condition).
lastfm-request-error (condition).
request-error-code-of (reader method).
cl-lastfm/src/specials.lisppackage.lisp (file).
src (module).
*debug* (special variable).
*api-key* (special variable).
*api-secret-key* (special variable).
+album-get-info+ (constant).
+album-search+ (constant).
+artist-get-events+ (constant).
+artist-get-info+ (constant).
+artist-get-similar+ (constant).
+artist-get-top-albums+ (constant).
+artist-get-top-fans+ (constant).
+artist-get-top-tags+ (constant).
+artist-get-top-tracks+ (constant).
+artist-search+ (constant).
+event-get-info+ (constant).
+event-get-shouts+ (constant).
+geo-get-events+ (constant).
+geo-top-artists+ (constant).
+geo-top-tracks+ (constant).
+group-get-members+ (constant).
+group-get-weekly-album-chart+ (constant).
+group-get-weekly-artist-chart+ (constant).
+group-get-weekly-chart-list+ (constant).
+group-get-weekly-track-chart+ (constant).
+last-fm-ws+ (constant).
+library-get-albums+ (constant).
+library-get-artists+ (constant).
+library-get-tracks+ (constant).
+tag-get-similar+ (constant).
+tag-get-top-albums+ (constant).
+tag-get-top-artists+ (constant).
+tag-get-top-tags+ (constant).
+tag-get-top-tracks+ (constant).
+tag-get-weekly-artist-chart+ (constant).
+tag-get-weekly-chart-list+ (constant).
+tag-search+ (constant).
+tasteometer-compare+ (constant).
+track-get-info+ (constant).
+track-get-similar+ (constant).
+track-get-top-fans+ (constant).
+track-get-top-tags+ (constant).
+track-search+ (constant).
+user-get-events (constant).
+user-get-friends+ (constant).
+user-get-loved-tracks+ (constant).
+user-get-neighbours+ (constant).
+user-get-recent-tracks+ (constant).
+user-get-shouts+ (constant).
+user-get-top-albums+ (constant).
+user-get-top-artists+ (constant).
+user-get-top-tags+ (constant).
+user-get-top-tracks+ (constant).
+user-get-weekly-album-chart+ (constant).
+user-get-weekly-artist-chart+ (constant).
+user-get-weekly-chart-list+ (constant).
+user-get-weekly-track-chart+ (constant).
def-lastfm-uri (macro).
cl-lastfm/src/tools.lispspecials.lisp (file).
conditions.lisp (file).
src (module).
extract-lastfm-xml-error (function).
get-current-date (function).
get-date-formated (function).
get-timestamp (function).
perform-lastfm-query (function).
unix-timestamp (function).
url-encode-utf8 (function).
cl-lastfm/src/lastfm.lisptools.lisp (file).
src (module).
album-get-info (function).
album-search (function).
artist-get-events (function).
artist-get-info (function).
artist-get-similar (function).
artist-get-top-albums (function).
artist-get-top-fans (function).
artist-get-top-tags (function).
artist-get-top-tracks (function).
artist-search (function).
event-get-info (function).
event-get-shouts (function).
geo-get-events (function).
geo-top-artists (function).
geo-top-tracks (function).
group-get-members (function).
group-get-weekly-album-chart (function).
group-get-weekly-artist-chart (function).
group-get-weekly-chart-list (function).
group-get-weekly-track-chart (function).
library-get-albums (function).
library-get-artists (function).
library-get-tracks (function).
tag-get-similar (function).
tag-get-top-albums (function).
tag-get-top-artists (function).
tag-get-top-tags (function).
tag-get-top-tracks (function).
tag-get-weekly-artist-chart (function).
tag-get-weekly-chart-list (function).
tag-search (function).
tasteometer-compare (function).
track-get-info (function).
track-get-similar (function).
track-get-top-fans (function).
track-get-top-tags (function).
track-search (function).
user-get-events (function).
user-get-friends (function).
user-get-loved-tracks (function).
user-get-neighbours (function).
user-get-recent-tracks (function).
user-get-shouts (function).
user-get-top-albums (function).
user-get-top-artists (function).
user-get-top-tags (function).
user-get-top-tracks (function).
user-get-weekly-album-chart (function).
user-get-weekly-artist-chart (function).
user-get-weekly-chart-list (function).
user-get-weekly-track-chart (function).
with-lastfm-stream (macro).
Packages are listed by definition order.
cl-lastfmCommon Lisp wrapper to Last.fm web service.
See more explanation from the @a[http://www.lastfm.fr/api]{website}.
It has been tested under @a[http://www.sbcl.org]{SBCL}
@begin[Albums]{section}
@aboutfun{album-get-info}
@aboutfun{album-search}
@end{section}
@begin[Artists]{section}
@aboutfun{artist-get-events}
@aboutfun{artist-get-info}
@aboutfun{artist-get-similar}
@aboutfun{artist-get-top-albums}
@aboutfun{artist-get-top-fans}
@aboutfun{artist-get-top-tags}
@aboutfun{artist-get-top-tracks}
@aboutfun{artist-search}
@end{section}
@begin[Geo]{section}
@aboutfun{geo-get-events}
@aboutfun{geo-top-artists}
@aboutfun{geo-top-tracks}
@end{section}
@begin[User]{section}
@aboutfun{user-get-events}
@aboutfun{user-get-friends}
@aboutfun{user-get-loved-tracks}
@aboutfun{user-get-neighbours}
@aboutfun{user-get-top-albums}
@aboutfun{user-get-top-artists}
@aboutfun{user-get-top-tags}
@aboutfun{user-get-top-tracks}
@aboutfun{user-get-recent-tracks}
@aboutfun{user-get-shouts}
@aboutfun{user-get-weekly-album-chart}
@aboutfun{user-get-weekly-artist-chart}
@aboutfun{user-get-weekly-chart-list}
@aboutfun{user-get-weekly-track-chart}
@end{section}
@begin[Group]{section}
@aboutfun{group-get-members}
@aboutfun{group-get-weekly-album-chart}
@aboutfun{group-get-weekly-artist-chart}
@aboutfun{group-get-weekly-chart-list}
@aboutfun{group-get-weekly-track-chart}
@end{section}
@begin[Library]{section}
@aboutfun{library-get-albums}
@aboutfun{library-get-artists}
@aboutfun{library-get-tracks}
@end{section}
@begin[Tag]{section}
@aboutfun{tag-get-similar}
@aboutfun{tag-get-similar}
@aboutfun{tag-get-top-albums}
@aboutfun{tag-get-top-artists}
@aboutfun{tag-get-top-tracks}
@aboutfun{tag-get-top-tags}
@aboutfun{tag-get-weekly-artist-chart}
@aboutfun{tag-get-weekly-chart-list}
@aboutfun{tag-search}
@end{section}
@begin[Track]{section}
@aboutfun{track-get-info}
@aboutfun{track-get-similar}
@aboutfun{track-get-top-fans}
@aboutfun{track-get-top-tags}
@aboutfun{track-search}
@end{section}
@begin[Events]{section}
@aboutfun{event-get-info}
@aboutfun{event-get-shouts}
@end{section}
@begin[TasteOMeter]{section}
@aboutfun{tasteometer-compare}
@end{section}
common-lisp.
*debug* (special variable).
album-get-info (function).
album-search (function).
artist-get-events (function).
artist-get-info (function).
artist-get-similar (function).
artist-get-top-albums (function).
artist-get-top-fans (function).
artist-get-top-tags (function).
artist-get-top-tracks (function).
artist-search (function).
error-message-of (generic reader).
event-get-info (function).
event-get-shouts (function).
geo-get-events (function).
geo-top-artists (function).
geo-top-tracks (function).
group-get-members (function).
group-get-weekly-album-chart (function).
group-get-weekly-artist-chart (function).
group-get-weekly-chart-list (function).
group-get-weekly-track-chart (function).
lastfm-error (condition).
lastfm-protocol-error (condition).
lastfm-request-error (condition).
library-get-albums (function).
library-get-artists (function).
library-get-tracks (function).
request-error-code-of (generic reader).
tag-get-similar (function).
tag-get-top-albums (function).
tag-get-top-artists (function).
tag-get-top-tags (function).
tag-get-top-tracks (function).
tag-get-weekly-artist-chart (function).
tag-get-weekly-chart-list (function).
tag-search (function).
tasteometer-compare (function).
track-get-info (function).
track-get-similar (function).
track-get-top-fans (function).
track-get-top-tags (function).
track-search (function).
user-get-events (function).
user-get-friends (function).
user-get-loved-tracks (function).
user-get-neighbours (function).
user-get-recent-tracks (function).
user-get-shouts (function).
user-get-top-albums (function).
user-get-top-artists (function).
user-get-top-tags (function).
user-get-top-tracks (function).
user-get-weekly-album-chart (function).
user-get-weekly-artist-chart (function).
user-get-weekly-chart-list (function).
user-get-weekly-track-chart (function).
*api-key* (special variable).
*api-secret-key* (special variable).
+album-get-info+ (constant).
+album-search+ (constant).
+artist-get-events+ (constant).
+artist-get-info+ (constant).
+artist-get-similar+ (constant).
+artist-get-top-albums+ (constant).
+artist-get-top-fans+ (constant).
+artist-get-top-tags+ (constant).
+artist-get-top-tracks+ (constant).
+artist-search+ (constant).
+event-get-info+ (constant).
+event-get-shouts+ (constant).
+geo-get-events+ (constant).
+geo-top-artists+ (constant).
+geo-top-tracks+ (constant).
+group-get-members+ (constant).
+group-get-weekly-album-chart+ (constant).
+group-get-weekly-artist-chart+ (constant).
+group-get-weekly-chart-list+ (constant).
+group-get-weekly-track-chart+ (constant).
+last-fm-ws+ (constant).
+library-get-albums+ (constant).
+library-get-artists+ (constant).
+library-get-tracks+ (constant).
+tag-get-similar+ (constant).
+tag-get-top-albums+ (constant).
+tag-get-top-artists+ (constant).
+tag-get-top-tags+ (constant).
+tag-get-top-tracks+ (constant).
+tag-get-weekly-artist-chart+ (constant).
+tag-get-weekly-chart-list+ (constant).
+tag-search+ (constant).
+tasteometer-compare+ (constant).
+track-get-info+ (constant).
+track-get-similar+ (constant).
+track-get-top-fans+ (constant).
+track-get-top-tags+ (constant).
+track-search+ (constant).
+user-get-events (constant).
+user-get-friends+ (constant).
+user-get-loved-tracks+ (constant).
+user-get-neighbours+ (constant).
+user-get-recent-tracks+ (constant).
+user-get-shouts+ (constant).
+user-get-top-albums+ (constant).
+user-get-top-artists+ (constant).
+user-get-top-tags+ (constant).
+user-get-top-tracks+ (constant).
+user-get-weekly-album-chart+ (constant).
+user-get-weekly-artist-chart+ (constant).
+user-get-weekly-chart-list+ (constant).
+user-get-weekly-track-chart+ (constant).
def-lastfm-uri (macro).
extract-lastfm-xml-error (function).
get-current-date (function).
get-date-formated (function).
get-timestamp (function).
perform-lastfm-query (function).
unix-timestamp (function).
url-encode-utf8 (function).
with-lastfm-stream (macro).
Definitions are sorted by export status, category, package, and then by lexicographic order.
@short{Get the metadata for an album on Last.fm using the album name or a
musicbrainz id. See @fun{playlist-fetch} on how to get the album playlist.
This service does not require authentication.}
@arg[api-key]{A Last.fm API key}
@arg[artist-name]{The artist name in question}
@arg[album-name]{The album name in question}
@arg[mbid]{The musicbrainz id for the album}
@arg[lang]{The language to return the biography in, expressed as an
ISO 639 alpha-2 code}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Search for an album by name. Returns album matches sorted by relevance.
This service does not require authentication.}
@arg[api-key]{A Last.fm API key}
@arg[album-name]{The album name in question}
@arg[limit]{Limit the number of albums returned at one time. Default (maximum)
is 30}
@arg[page]{Scan into the results by specifying a page number. Defaults to
first page}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a list of upcoming events for this artist. Easily integratable
into calendars, using the ical standard.
This service does not require authentication.}
@arg[api-key]{A Last.fm API key}
@arg[artist-name]{The artist name in question}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the metadata for an artist on Last.fm. Includes biography. .
This service does not require authentication.}
@arg[api-key]{A Last.fm API key}
@arg[artist-name]{The artist name in question}
@arg[mbid]{The musicbrainz id for the artist}
@arg[lang]{The language to return the biography in, expressed as an ISO 639
alpha-2 code}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get all the artists similar to this artist.
This service does not require authentication.}
@arg[api-key]{A Last.fm API key}
@arg[artist-name]{The artist name in question}
@arg[limit]{Limit the number of similar artists returned}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the top albums for an artist on Last.fm, ordered by popularity.
This service does not require authentication.}
@arg[api-key]{A Last.fm API key}
@arg[artist-name]{The artist name in question}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the top fans for an artist on Last.fm, based on listening data.
This service does not require authentication.}
@arg[api-key]{A Last.fm API key}
@arg[artist-name]{The artist name in question}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the top tags for an artist on Last.fm, ordered by popularity.
This service does not require authentication.}
@arg[api-key]{A Last.fm API key}
@arg[artist-name]{The artist name in question}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the top tracks by an artist on Last.fm, ordered by popularity
This service does not require authentication.}
@arg[api-key]{A Last.fm API key}
@arg[artist-name]{The artist name in question}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Search for an artist by name. Returns artist matches sorted by
relevance.
This service does not require authentication.}
@arg[api-key]{A Last.fm API key}
@arg[artist-name]{The artist name in question}
@arg[limit]{Limit the number of artists returned at one time. Default
(maximum) is 30}
@arg[page]{Scan into the results by specifying a page number. Defaults to
first page}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the metadata for an event on Last.fm. Includes attendance
and lineup information}
@arg[api_key]{A Last.fm API key}
@arg[eventid]{The numeric Last.fm event id}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get shouts for this event} @arg[api_key]{A Last.fm API key} @arg[eventid]{The numeric Last.fm event id} @see-condition{lastfm-request-error} @return{An XML stream}
@short{Get all events in a specific location by country or city name.
This service does not require authentication}
@arg[api_key]{A Last.fm API key}
@arg[location]{Specifies a location to retrieve events for (service returns
nearby events by default}
@arg[lat]{Specifies a latitude value to retrieve events for (service returns
nearby events by default}
@arg[long]{Specifies a longitude value to retrieve events for (service returns
nearby events by default)}
@arg[page]{Display more results by pagination}
@arg[distance]{Find events within a specified distance}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the most popular artists on Last.fm by country.
This service does not require authentication}
@arg[api_key]{A Last.fm API key}
@arg[country-name]{A country name, as defined by the ISO 3166-1 country names
standard}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the most popular tracks on Last.fm by country .
This service does not require authentication}
@arg[api_key]{A Last.fm API key}
@arg[country-name]{A country name, as defined by the ISO 3166-1 country names
standard}
@arg[location]{A metro name, to fetch the charts for (must be within the country
specified)}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a list of members for this group.
This service does not require authentication}
@arg[api_key]{A Last.fm API key}
@arg[group]{The group name to fetch the members of}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get an album chart for a group, for a given date range. If no date range
is supplied, it will return the most recent album chart for this group.}
@arg[api_key]{A Last.fm API key}
@arg[group]{The last.fm group name to fetch the charts of}
@arg[from]{The date at which the chart should start from}
@arg[to]{The date at which the chart should end on}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get an artist chart for a group, for a given date range. If no date
range is supplied, it will return the most recent album chart for this group}
@arg[api_key]{A Last.fm API key}
@arg[group]{The last.fm group name to fetch the charts of}
@arg[from]{The date at which the chart should start from}
@arg[to]{The date at which the chart should end on}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a list of available charts for this group, expressed as date
ranges which can be sent to the chart services}
@arg[api_key]{A Last.fm API key}
@arg[group]{The last.fm group name to fetch the charts list for}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a track chart for a group, for a given date range. If no date
range is supplied, it will return the most recent album chart for this group}
@arg[api_key]{A Last.fm API key}
@arg[group]{The last.fm group name to fetch the charts of}
@arg[from]{The date at which the chart should start from}
@arg[to]{The date at which the chart should end on}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{A paginated list of all the albums in a user’s library, with play
counts and tag counts}
@arg[api_key]{A Last.fm API key}
@arg[user]{The user whose library you want to fetch}
@arg[limit]{Limit the amount of albums returned}
@arg[page]{The page number you wish to scan to}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{A paginated list of all the artists in a user’s library, with play
counts and tag counts}
@arg[api_key]{A Last.fm API key}
@arg[user]{The user whose library you want to fetch}
@arg[limit]{Limit the amount of artists returned}
@arg[page]{The page number you wish to scan to}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{A paginated list of all the tracks in a user’s library, with play
counts and tag counts. }
@arg[api_key]{A Last.fm API key}
@arg[user]{The user whose library you want to fetch}
@arg[limit]{Limit the amount of tracks returned}
@arg[page]{The page number you wish to scan to}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Search for tags similar to this one. Returns tags ranked by
similarity, based on listening data}
@arg[api_key]{A Last.fm API key}
@arg[tag]{The tag name in question}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the top albums tagged by this tag, ordered by tag count}
@arg[api_key]{A Last.fm API key}
@arg[tag]{The tag name in question}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the top artists tagged by this tag, ordered by tag count}
@arg[api_key]{A Last.fm API key}
@arg[tag]{The tag name in question}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Fetches the top global tags on Last.fm, sorted by popularity
(number of times used).}
@arg[api_key]{A Last.fm API key}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the top tracks tagged by this tag, ordered by tag count}
@arg[api_key]{A Last.fm API key}
@arg[tag]{The tag name in question}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get an artist chart for a tag, for a given date range.
If no date range is supplied, it will return the most recent artist chart
for this tag}
@arg[api_key]{A Last.fm API key}
@arg[tag]{The tag name in question}
@arg[from]{The date at which the chart should start from}
@arg[to]{The date at which the chart should end on}
@arg[limit]{The number of chart items to return}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a list of available charts for this tag, expressed as date
ranges which can be sent to the chart services}
@arg[api_key]{A Last.fm API key}
@arg[tag]{The tag name in question}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Search for a tag by name. Returns matches sorted by relevance}
@arg[api_key]{A Last.fm API key}
@arg[tag]{The tag name in question}
@arg[limit]{Limit the number of tags returned at one time}
@arg[page]{Scan into the results by specifying a page number}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a Tasteometer score from two inputs, along with a list of
shared artists. If the input is a User or a Myspace URL, some additional
information is returned.}
@arg[api_key]{A Last.fm API key}
@arg[fisrt-type]{Must be user, artists or myspace}
@arg[second-type]{Must be user, artists or myspace}
@arg[first-value]{Must be : Last.fm username or comma-separated artist names
or a MySpace profile URL}
@arg[second-value]{Must be : Last.fm username or comma-separated artist names
or a MySpace profile URL}
@arg[limit]{How many shared artists to display}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the metadata for a track on Last.fm using the artist/track name
or a musicbrainz id}
@arg[api-key]{A Last.fm API key}
@arg[artist]{The artist name in question}
@arg[track]{The track name in question}
@arg[mbid]{The musicbrainz id for the track}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the similar tracks for this track on Last.fm, based on
listening data}
@arg[api-key]{A Last.fm API key}
@arg[artist]{The artist name in question}
@arg[track]{The track name in question}
@arg[mbid]{The musicbrainz id for the track}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the top fans for this track on Last.fm, based on listening data.
Supply either track & artist name or musicbrainz id}
@arg[api-key]{A Last.fm API key}
@arg[artist]{The artist name in question}
@arg[track]{The track name in question}
@arg[mbid]{The musicbrainz id for the track}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the top tags for this track on Last.fm, ordered by tag count.
Supply either track & artist name or mbid}
@arg[api-key]{A Last.fm API key}
@arg[artist]{The artist name in question}
@arg[track]{The track name in question}
@arg[mbid]{The musicbrainz id for the track}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Search for a track by track name. Returns track matches sorted by
relevance}
@arg[api-key]{A Last.fm API key}
@arg[track]{The track name in question}
@arg[limit]{The number of tracks returned at one time}
@arg[page]{Scan into the results by specifying a page number}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a list of upcoming events that this user is attending.
Easily integratable into calendars, using the ical standard.
This service does not require authentication}
@arg[api_key]{A Last.fm API key}
@arg[user]{The user to fetch the events for}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a list of the user’s friends on Last.fm
This service does not require authentication}
@arg[api_key]{A Last.fm API key}
@arg[user]{The last.fm username to fetch the friends of}
@arg[limit]{An integer used to limit the number of friends returned}
@arg[page]{An integer representing the page number to fetch. Defaults to first page}
@arg[recenttracks]{Whether or not to include information about friends’ recent
listening in the response}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the last 50 tracks loved by a user.
This service does not require authentication}
@arg[api_key]{A Last.fm API key}
@arg[user]{The user name to fetch the loved tracks for}
@arg[limit]{An integer representing the number of results to fetch per page. Defaults to 50}
@arg[page]{An integer representing the page number to fetch. Defaults to first page}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a list of a user’s neighbours on Last.fm
This service does not require authentication}
@arg[api_key]{A Last.fm API key}
@arg[user]{The last.fm username to fetch the neighbours of}
@arg[limit]{An integer used to limit the number of neighbours returned}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a list of the recent tracks listened to by this user. Indicates
now playing track if the user is currently listening}
@arg[api_key]{A Last.fm API key}
@arg[user]{The user name to fetch the recent tracks of}
@arg[limit]{An integer used to limit the number of tracks returned}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get shouts for this user} @arg[api_key]{A Last.fm API key} @arg[user]{The user name to fetch shouts for} @see-condition{lastfm-request-error} @return{An XML stream}
@short{Get the top albums listened to by a user. You can stipulate a time
period. Sends the overall chart by default}
@arg[api_key]{A Last.fm API key}
@arg[user]{The user name to fetch top albums for}
@arg[period]{overall | 3month | 6month | 12month - The time period over which
to retrieve top albums for.}
@arg[limit]{The number of results to fetch per page. Defaults to 50}
@arg[page]{The page number to fetch. Defaults to first page}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the top artists listened to by a user. You can stipulate a time
period. Sends the overall chart by default.}
@arg[api_key]{A Last.fm API key}
@arg[user]{The user name to fetch top artists for}
@arg[period]{overall | 3month | 6month | 12month - The time period over which
to retrieve top albums for.}
@arg[limit]{The number of results to fetch per page. Defaults to 50}
@arg[page]{The page number to fetch. Defaults to first page}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get the top tags used by this user} @arg[api_key]{A Last.fm API key} @arg[user]{The user name} @arg[limit]{The number of tags returned} @see-condition{lastfm-request-error} @return{An XML stream}
@short{Get the top tracks listened to by a user. You can stipulate a time
period. Sends the overall chart by default. }
@arg[api_key]{A Last.fm API key}
@arg[user]{The user name to fetch top tracks for}
@arg[period]{overall | 3month | 6month | 12month - The time period over which
to retrieve top tracks for.}
@arg[limit]{The number of results to fetch per page. Defaults to 50}
@arg[page]{The page number to fetch. Defaults to first page}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get an album chart for a user profile, for a given date range.
If no date range is supplied, it will return the most recent album chart for
this user.}
@arg[api_key]{A Last.fm API key}
@arg[user]{The last.fm username to fetch the charts of}
@arg[from]{The date at which the chart should start from}
@arg[to]{The date at which the chart should end on}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get an artist chart for a user profile, for a given date range.
If no date range is supplied, it will return the most recent artist chart for
this user.}
@arg[api_key]{A Last.fm API key}
@arg[user]{The last.fm username to fetch the charts of}
@arg[from]{The date at which the chart should start from}
@arg[to]{The date at which the chart should end on}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a list of available charts for this user, expressed as date
ranges which can be sent to the chart services}
@arg[api_key]{A Last.fm API key}
@arg[user]{The last.fm username to fetch the charts list for}
@see-condition{lastfm-request-error}
@return{An XML stream}
@short{Get a track chart for a user profile, for a given date range.
If no date range is supplied, it will return the most recent track chart
for this user}
@arg[api_key]{A Last.fm API key}
@arg[user]{The last.fm username to fetch the charts of}
@arg[from]{The date at which the chart should start from}
@arg[to]{The date at which the chart should end on}
@see-condition{lastfm-request-error}
@return{An XML stream}
lastfm-error)) ¶lastfm-request-error)) ¶code.
Main Lastfm error.
simple-error.
Explanation message.
:message
This slot is read-only.
Lastfm protocol error.
Condition raised when an invalide request to the
Lastfm web services is performed.
Available codes are :
@pre{
* 2 : Invalid service -This service does not exist
* 3 : Invalid Method - No method with that name in this package
* 4 : Authentication Failed - You do not have permissions to access the service
* 5 : Invalid format - This service doesn’t exist in that format
* 6 : Invalid parameters - Your request is missing a required parameter
* 7 : Invalid resource specified
* 9 : Invalid session key - Please re-authenticate
* 10 : Invalid API key - You must be granted a valid key by last.fm
* 11 : Service Offline - This service is temporarily offline. Try again later.
* 12 : Subscribers Only - This service is only available to paid last.fm subscribers
}
The error code.
:code
This slot is read-only.
The LastFM web service.
Macro which creates an HTTP url, add parameters executing body, and performs the HTTP request defined by uri.
Extract a LastFM error from a ‘XML’ message. Returns an error code and an error message.
Get current date in YYYY-MM-DD hh:mm:ss format.
Get current date in CONTROL-STRING format.
Get current date in YYYYMMDDHHMMSS format.
Retreive informations from LastFM Web Service.
‘QUERY’ is the HTTP request.
‘PARAMETERS’ is a list of assoc list which specify HTTP parameters.
‘METHOD’ is the HTTP method used to perform the HTTP call.
Get the Unix timestamp : seconds since Jan 01 1970.
URL encode in UTF-8 the sequence.
| Jump to: | A D E F G L M P R T U W |
|---|
| Jump to: | A D E F G L M P R T U W |
|---|
| Jump to: | *
+
C M S |
|---|
| Jump to: | *
+
C M S |
|---|
| Jump to: | C F L M P S T |
|---|
| Jump to: | C F L M P S T |
|---|