Last.fm scrobbler via MPRIS2 in Linux
Project description
🎵 Last.fm scrobbler
A Last.fm scrobbler via MPRIS2 in Linux, implemented via pylast and mpris2
Modified based on dbus-scrobbler
Features
-
scrobble music to Last.fm if one of the conditions are met:
- played for 4 mins
- played for half the length
-
update now playing status
-
offline scrobble cache support
What is MPRIS2?
MPRIS (Media Player Remote Interfacing Specification) is a standard D-Bus (Desktop Bus) interface that allows applications to communicate with and control media players running on a Linux desktop environment.
Thus, this scrobbler is a general-purpose one under the Linux desktop environment, supporting scrobble music from media players without a built-in Last.fm scrobbling feature.
Check if your media player supports MPRIS2 via (make sure the player is running):
lastfm-mpris2-scrobbler --list-players
The uri names of players will be shown
Installation
Prerequisite libraries: libglib2.0-dev and libdbus-1-dev, as mentioned in this issue
There're two options available now:
-
grab the stand-alone binary from release page
-
or, via PyPI
pip install lastfm-mpris2-scrobbler
Configurations
The program expects a config.yaml file and can be placed wherever you like, for example ~/.config/lastfm-mpris2-scrobbler/
Example and detailed information can be found in config.yaml.example:
# username for that service
user_name: foo
# md5 hash of your password (obtained via `echo -n password | md5sum`)
password_hash: abc123492abccf4f1997f7ccaabc123b
# last.fm api, which can be created via https://www.last.fm/api/account/create
api_key: 11111111111111111111111111111111
api_secret: 11111111111111111111111111111111
# the app's uri you want to scrobble
# use `lastfm-mpris2-scrobbler --list-players` to check the uri name
application_whitelist: [ "org.mpris.MediaPlayer2.harmonoid" ]
# by default, scrobbler will upload if the track has been played for 4 * 60 seconds or half the total length
scrobble_time_threshold: 240
# app's log level
log_level: DEBUG
Usage
lastfm-mpris2-scrobbler -c PATH_TO_YOUR_CONFIG/config.yaml
For more options, see:
lastfm-mpris2-scrobbler --help
If you want to run it as a daemon service, here's a systemd service in user space for reference:
[Unit]
Description=Last.fm scrobbler via MPRIS2
Documentation=https://github.com/Ladbaby/lastfm-scrobbler
[Service]
ExecStart=PATH_TO_YOUR_BIN/lastfm-mpris2-scrobbler -c PATH_TO_YOUR_CONFIG/config.yaml
[Install]
WantedBy=default.target
You'll have to place the service file under ~/.config/systemd/user/ and name it like scrobbler.service
To run the daemon:
systemctl --user start scrobbler.service
To run at user login:
systemctl --user enable scrobbler.service
Alternatives
If you'd like a scrobbler similar to this, there're some choices. I recommand taking a look at scrobblez. It additionally provides Spotify related improvement, but doesn't provide stand-alone binary build for installation.
Also, although rescrobbled may also work, in my case it raised "Dbus error: argument type mismatch".
Known Issues
-
If the music title contains unwanted substring (like.mp3), then Last.fm won't accept the scrobbleThe program can now remove some of the unwanted substrings, including:
.mp3.ogg.wav.acc.flac
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lastfm_mpris2_scrobbler-1.0.5.tar.gz.
File metadata
- Download URL: lastfm_mpris2_scrobbler-1.0.5.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec0ba1bebbf02aa840ef862a461188d64a3769c4d9089416fb2c10d1ebcc28ca
|
|
| MD5 |
e526f505765a6559794df646a0ae32ac
|
|
| BLAKE2b-256 |
0ae19fdc63574c930c610c6322c36365d53afe7e1ad250f92791d79541420197
|
File details
Details for the file lastfm_mpris2_scrobbler-1.0.5-py3-none-any.whl.
File metadata
- Download URL: lastfm_mpris2_scrobbler-1.0.5-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bcd73a2d9375b5774e4f29043ecac9c48503586798d5a4cc80af6fad9f1a4878
|
|
| MD5 |
6075d37df160033e59f40803307725b0
|
|
| BLAKE2b-256 |
03a33481a5552e09a1c19ea09150644677584ab50fd300d5cedf01ad1211c1f4
|