Last.fm API for retrieving scrobbling data.


Keywords
lastfm, scrobble, music, pypi, python
License
MIT
Install
pip install lastfmget==1.1.0

Documentation

LastFmGet

PyPI Latest Release Tests Current Source Tests

LastFmGet is a Python package for accessing Last.fm scrobble data using the public API.

  • Provides functions for calling specific Last.fm API methods
  • Must use a cfg YAML file and call lastfmget.init() before use
  • Gets a response from the API in JSON and returns a Python dictionary
  • Examples of the response for each method shown in data/dump
  • Use _raw method verions for more direct access to the Last.fm API

Installation

pip install lastfmget

Dependencies

  • python3.10
  • requests
  • requests_cache (used only if configured in api_cfg.yaml)
  • pyyaml

Documentation

lastfmget

Usage

Import

import lastfmget

Config

lastfmget.init('api_cfg.yaml')

api_cfg.yaml example (data/example_api_cfg.yaml)

api_url: http://ws.audioscrobbler.com/2.0/
api_key: <API KEY>
user_agent: <USER AGENT>
call_rate: 5 # Calls per second
cache:
  enable: true
  dir: .cache
  backend: sqlite
  lifetime: 120 # Seconds
# or (defaults)
cache:
  enable: true
# or (disable)
cache:
  enable: false
Field Description
api_url API root URL, should be 'http://ws.audioscrobbler.com/2.0/'
api_key Your private API key. See here
user_agent Identifiable user agent for requests
call_rate Max API requests per second
cache enable: use requests_cache
dir: (optional) cache location
backend: (optional) sqlite recommended
lifetime: (optional) expire_after time in seconds

Code Examples

Getting user information using the user.getInfo method

>>> info = lastfmget.user_info('D3r3k523')
>>> info['playcount']
161602
>>> info['user']['url']
'https://www.last.fm/user/D3r3k523'

Getting a user's top 10 artists using the user.getTopArtists method

>>> topartists = lastfmget.user_top_artists('D3r3k523', 10)
>>> [ artist['name'] for artist in topartists ]
['Radiohead', 'Converge', 'Pink Floyd', 'Queens of the Stone Age', 'Bon Iver', 'Thee Oh Sees', 'Tame Impala', 'Arcade Fire', 'Beach House', 'Mastodon']

Example Projects

Last.fm API Methods Available

Function Last.fm API method
lastfmget.user_info user.getInfo
lastfmget.user_recent_tracks user.getRecentTracks
lastfmget.user_top_artists user.getTopArtists
lastfmget.user_top_albums user.getTopAlbums
lastfmget.user_top_tracks user.getTopTracks
lastfmget.user_weekly_chart_list user.getWeeklyChartList
lastfmget.user_weekly_artist_chart user.getWeeklyArtistChart
lastfmget.user_weekly_album_chart user.getWeeklyAlbumChart
lastfmget.user_weekly_track_chart user.getWeeklyTrackChart

Last.fm API Reference