All Projects → InputUsername → rescrobbled

InputUsername / rescrobbled

Licence: GPL-3.0 license
MPRIS music scrobbler daemon

Programming Languages

rust
11053 projects
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to rescrobbled

spotify-connect-scrobbler
Last.fm scrobbler for Spotify Connect
Stars: ✭ 20 (-86.84%)
Mutual labels:  scrobble, lastfm
iTunes-Scrobbler
An alternative scrobbler for iTunes and Music on macOS 10.12 or higher
Stars: ✭ 19 (-87.5%)
Mutual labels:  scrobble, lastfm
Web Scrobbler
Scrobble music all around the web!
Stars: ✭ 1,783 (+1073.03%)
Mutual labels:  lastfm, listenbrainz
multi-scrobbler
Scrobble plays from multiple sources to multiple clients
Stars: ✭ 54 (-64.47%)
Mutual labels:  scrobble, lastfm
rustfm-scrobble
Last.fm Scrobble API for Rust
Stars: ✭ 32 (-78.95%)
Mutual labels:  scrobble, lastfm
mpv-trakt-sync-daemon
Python daemon that scrobbles watch progress from https://mpv.io to https://trakt.tv
Stars: ✭ 41 (-73.03%)
Mutual labels:  scrobble, daemon
github-now-playing
🎵 Display what you're listening to right on your Github profile
Stars: ✭ 75 (-50.66%)
Mutual labels:  lastfm
shinit
Basic Init Daemon in POSIX sh
Stars: ✭ 17 (-88.82%)
Mutual labels:  daemon
hachidori
Open Source Kitsu, AniList, and MyAnimeList Scrobbler for macOS
Stars: ✭ 61 (-59.87%)
Mutual labels:  scrobble
tundra
MyAnimeList scrobbler for Linux
Stars: ✭ 33 (-78.29%)
Mutual labels:  scrobble
final-pm
Finally a good node.js process manager.
Stars: ✭ 21 (-86.18%)
Mutual labels:  daemon
media-controls
A media indicator for the Gnome shell.
Stars: ✭ 104 (-31.58%)
Mutual labels:  mpris
watchdogd
Advanced system & process supervisor for Linux
Stars: ✭ 146 (-3.95%)
Mutual labels:  daemon
YouScrobbler
Scrobbling from YouTube to Last.FM - Userscript for Firefox and Chrome
Stars: ✭ 34 (-77.63%)
Mutual labels:  lastfm
ShellRemoteBot
Shell remote control from telegram (SSH/terminal emulator)
Stars: ✭ 28 (-81.58%)
Mutual labels:  daemon
v-switch
Virtual Encrypted Switch across the network, using UDP + AES + TAP
Stars: ✭ 27 (-82.24%)
Mutual labels:  daemon
tpm2-abrmd
TPM2 Access Broker & Resource Management Daemon implementing the TCG spec.
Stars: ✭ 97 (-36.18%)
Mutual labels:  daemon
lastfm-friends-who-listen
🎶 Get the Friends Who Listen widget back on Last.fm
Stars: ✭ 22 (-85.53%)
Mutual labels:  lastfm
hasses
Hyper's Asynchronous Server Sent event (SSE) notification Server
Stars: ✭ 18 (-88.16%)
Mutual labels:  daemon
conceal-api
Conceal API - JavaScript Interface (RPC/API)
Stars: ✭ 18 (-88.16%)
Mutual labels:  daemon

rescrobbled

License Crates.io CI

Rescrobbled is a music scrobbler daemon. It detects active media players running on D-Bus using MPRIS, automatically updates "now playing" status, and scrobbles songs to Last.fm or ListenBrainz-compatible services as they play.

Among other things, due to sharing a Spotify account (I know, I know), I needed a way to scrobble to Last.fm without connecting the Spotify account to my Last.fm account. Rescrobbled offers a simple solution for this.

Installation

You can download one of the prebuilt binaries here. The binary can be placed anywhere you like.

Rescrobbled is available on Crates.io: cargo install rescrobbled

Alternatively you can install from source using cargo install --path . from the crate root.

There is also an AUR package by brycied00d, which should always build the latest version of rescrobbled from this repository.

Configuration

Rescrobbled expects a configuration file at ~/.config/rescrobbled/config.toml with the following format:

lastfm-key = "Last.fm API key"
lastfm-secret = "Last.fm API secret"
enable-notifications = false
min-play-time = 0
player-whitelist = [ "Player MPRIS identity or bus name" ]
filter-script = "path/to/script"

[[listenbrainz]]
url = "Custom API URL"
token = "User token"

All settings are optional, although rescrobbled isn't very useful without Last.fm or ListenBrainz credentials. ;-)

If the config file doesn't exist, rescrobbled will generate an example config for you when you run it for the first time.

lastfm-key, lastfm-secret

To use rescrobbled with Last.fm, you'll need a Last.fm API key and secret. These can be obtained here.

enable-notifications

Set this to true to show desktop notifications when a song starts playing: useful if your music player does not support notifications. Defaults to false.

min-play-time

Minimum play time in seconds before a song is scrobbled.

By default, track submission respects Last.fm's recommended behavior: songs should only be scrobbled if they have been playing for at least half their duration, or for 4 minutes, whichever comes first. Using min-play-time you can override this.

player-whitelist

If empty or ommitted, music from all players will be scrobbled; otherwise, rescrobbled will only listen to players in this list.

A CLI application like playerctl can be used to determine a player's name for the whitelist. To do so start playing a song and run the following command:

playerctl --list-all

filter-script

The filter-script will be run before updating status and before submitting tracks. It receives the following properties on consecutive lines of its standard input (separated by \n):

  • artist;
  • song title;
  • album name;
  • zero or more comma-separated (,) genre(s)

The script should write the filtered artist, song title and album name on corresponding lines of its standard output. This can be used to clean up song names, for example removing "remastered" and similar suffixes. If the filter script does not return any output, the current track will be ignored.

A number of example scripts can be found in the filter-script-examples directory.

[[listenbrainz]]

You can specify one or more ListenBrainz instances by repeating this option. Each definition needs at least a token. You can set url to use a custom API URL (eg. for use with custom ListenBrainz instances or services like Maloja). If the URL is not provided, it defaults to the ListenBrainz.org instance.

If you only want to use ListenBrainz.org, you can set the listenbrainz-token option as a shorthand instead.

For ListenBrainz.org, the user token can be found here. Other services might do this differently, refer to their documentation for more info.

Note: due to the way TOML works, these need to be the last thing in your config file.

Usage

To make sure that rescrobbled can scrobble to Last.fm, you need to run the program in a terminal. This will prompt you for your Last.fm username and password, and authenticate with Last.fm. A long-lasting session token is then obtained, which will be used on subsequent runs instead of your username/password. The session token is stored in ~/.config/rescrobbled/session.

If you want to run rescrobbled as a daemon, you can put the provided systemd unit file in the ~/.config/systemd/user/ directory. Change ExecStart to point to the location of the binary, as necessary. Then, to enable the program to run at startup, use:

systemctl --user enable rescrobbled.service

You can run it in the current session using:

systemctl --user start rescrobbled.service

Project resources

Issues and pull requests are more than welcome! Development happens on the development branch, so please create pull requests against that. All contributions will be licensed under GPLv3.

License

GPL-3.0, see LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].