scrobbler icon indicating copy to clipboard operation
scrobbler copied to clipboard

A command-line Last.fm scrobbler and a now-playing status updater.

Note: Python 3 is required!

Usage

The program can be invoked with one of the following commands:

  • add-user - Add a user to the list of known users.

    • [user] A Last.fm username.

    • [--password, -p] The corresponding password.

    If a username is provided, you will be prompted for a password. If the command is invoked without any arguments, a Last.fm authorization web-page will be opened for you to grant access to the application.

    • [--dont-invoke-browser, -x] When invoking the command without arguments, always show the authentication URL; never try to automatically open it.
  • list-users - List known users and their corresponding session keys.

  • remove-user - Remove a user from the list of known users.

    • user The user to remove.
  • scrobble - Scrobble a track.

    • user The username to scrobble with. If the user isn't known, you will be prompted for a password.

    • artist The name of the artist.

    • track The name of the track.

    • time The time of listening. Formatted by --time-format. It may also be now, in which case the current time is used.

    • [--time-format, -tf] Specifies the format of time, using the syntax of strftime() <http://docs.python.org/dev/library/time.html#time.strftime>_. Defaults to %Y-%m-%d.%H:%M.

    • [--album, -a] The name of the album.

    • [--duration, -d] Has the format of XXhYYmZZs. At least one of those has to be present, but any number of them can be specified, and in any order.

  • now-playing - Update the now-playing status.

    • user The username to use. If the user isn't known, you will be prompted for a password.

    • artist The name of the artist.

    • track The name of the track.

    • [--album, -a] The name of the album.

    • [--duration, -d] Has the format of XXhYYmZZs. At least one of those has to be present, but any number of them can be specified, and in any order.

Examples

Add a user to the list of known users::

$ scrobbler add-user
The Last.fm authentication page will be opened, or its URL printed here.
Press enter to continue.
Press enter after granting access.
User hauzzer added.

$

and::

$ scrobbler add-user hauzzer
Password:
User hauzzer added.

$

also::

$ scrobbler add-user hauzzer --password ******
User hauzzer added.

$

List all known users::

$ scrobbler list-users
hauzzer | b431328fc489a4f6e6eeee3e8a0f5537

$

Scrobble a track, "Lamplight Symphony <http://www.last.fm/music/Kansas/_/Lamplight+Symphony>" by Kansas <http://www.last.fm/music/Kansas>, which was listened to on 07/15/2013 at 15:32::

$ scrobbler scrobble hauzzer Kansas "Lamplight Symphony" 2013-15-07.15:32 -a "Song for America" -d 8m16s
Track scrobbled.

$

Update the now-playing status with "Incomudro - Hymn to the Atman <http://www.last.fm/music/Kansas/_/Incomudro+-+Hymn+to+the+Atman>" by Kansas <http://www.last.fm/music/Kansas>.::

$ scrobbler now-playing hauzzer Kansas "Incomudro - Hymn to the Atman" -a "Song for America" -d 12m17s
Status updated.

$

Remove a user from the list of known users::

$ scrobbler remove-user hauzzer
User hauzzer removed.

$

Donations

If you enjoy my work, please consider a donation.

BTC: BC1QF2G847UQTDY6GAG5D64DSCFVEZ0HHY7AC3PNKX

ETH: 0x61a08C3f8dF5A0507923FcA2ec8597e68e51d6A0

XMR: 48aLGv9rg2Q1edA36PjKbj34SEAViUSGH47QfGDmWuqEDjUE1fA238BMn6z3R79DfKBTgu6TkT4VL5sMeTG6axMaKXytH6F