• Stars
    star
    153
  • Rank 241,896 (Top 5 %)
  • Language
    C#
  • Created over 5 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

LastFM plugin for the Jellyfin media system. Fork of the Emby Last.FM plug-in

jellyfin-plugin-lastfm

Enables audio scrobbling to Last.FM as well as a metadata fetcher source.

This plug-in was migrated from the original Emby repository and has been adapted to function within the Jellyfin ecosystem. This plugin cannot be distributed with Jellyfin due to a missing compatible license. I will attempt to keep this repo up-to-date and in-sync as the Jellyfin project matures.

πŸ”§ Installation and Configuration

Install the plugin via the Jellyfin plugin repository (see: announcement). Navigate to plugins section of the admin dashboard, add the following repository to follow stable builds for this plugin.

plugins

❓ Known Issues

When enabling the plugin, you receive Authentication Failed - You do not have permissions to access this service when authenticating using your last.fm credentials.

This error is returned from the last.fm API. If you're certain you have correctly entered your username and password. Try resetting your last.fm username and password (change the password and change it back) via the last.fm site. This may be due to stale credentials cached on the last.fm infastructure. See #51 for context.

3rd party Jellyfin applications (Gelli, Finamp) may not scrobble.

This appears to be due to the method in which these clients play media files. This plugin relies the invocation of the PlaybackStartEvent and PlaybackStopEvent events. Some details and references to upstream issues is located at #27 (comment)

(very) Poor matching of artist/album/track names in the LovedTracks flow.

Syncing of Loved tracks between LastFM and this plugin is subpar. This is due to the IsLike method that is used to compare track metadata. See #24

🚧 Developing

Developer: Build using Codespaces

GitHub Codespaces is the quickest solution to get started with development. Once your codespace is up and running, issue the following to build and start-up Jellyfin.

cd /workspaces/jellyfin-plugin-lastfm/.devcontainer && make

Developer: Local Builds

Install the .NET SDK on Linux or macOS, see the download page at https://dotnet.microsoft.com/download . Native package manager instructions can be found for Debian, RHEL, Ubuntu, Fedora, SLES, and CentOS.

Once the SDK is installed, run the following.

git clone https://github.com/jesseward/jellyfin-plugin-lastfm.git
cd jellyfin-plugin-lastfm
dotnet build

If the build is successful, the tool will report the path to your Plugin dll (Jellyfin.Plugin.Lastfm/bin/Debug/*/Jellyfin.Plugin.Lastfm.dll)

The plugin should then be copied into your Jellyfin ${CONFIG_DIR}/plugins/LastFM directory.

Running Jellyfin from Docker

CACHE_DIR=/path/to/cache
MEDIA_DIR=/path/to/media
CONFIG_DIR=/path/to/config

docker run -d \
    --name jelly \
    --volume ${CONFIG_DIR}:/config \
    --volume ${MEDIA_DIR}:/media \
    --volume ${CACHE_DIR}:/cache \
    --publish 8096:8096 \
    --rm \
jellyfin/jellyfin

More Repositories

1

discogs-oauth-example

discogs-oauth-example was created to provide a very basic but functioning example of how a developer may utilize the python oauth2 library to download images and make authenticated calls against the Discogs API.
Python
105
star
2

plex-lastfm-scrobbler

Scrobble played audio items Last.FM from the Plex Media Server application.
Python
92
star
3

discogstagger

Console based audio-file metadata tagger that uses the Discogs.com API v2 (JSON based). Relies on the Mutagen and discogs-client libraries. Currently supports FLAC and MP3 file types.
Python
69
star
4

Serato-lib

Provides a python wrapper as well as written documentation describing the Rane Serato Scratch crate, and library binary file-formats.
Python
34
star
5

discogs-cli

View and search for artists, labels and releases in the Discogs.com library, from the command line.
Python
32
star
6

musicdiscovery-assist

Google Home assistant for music recommendations, built with Python & Flask. Using Google Home and API.ai
Python
16
star
7

discogs-banner

Creates an image collage from the album thumbnails in your Discogs collection.
Python
14
star
8

py64

A Commodore 64 (6510) emulator written in python. C64 emulator in Python.
Python
8
star
9

azuretexttospeech

A Go library for Azure's Cognitive Services text-to-speech API.
Go
7
star
10

songexplorer

Song Explorer is an Actions on Google project written in Go
Go
6
star
11

azuracast-widgets

Repo of JS/CSS widgets that interact with the AzuraCast API
HTML
6
star
12

harmonic-shuffle

Utilizes the circle of fifths to recommend like sounding songs. A Python library to generate playlists based on the songs root key.
Python
3
star
13

go-discogs

A Go wrapper for the Discogs API.
Go
2
star
14

bbs.jesseward.com

Repo for customization of the x84 script for bbs.jesseward.com
Python
1
star
15

dotfiles-bootstrap

CentOs and Ubuntu system configuration bootstrapping (vim, tmux, bash, mutt, etc)
Lua
1
star
16

zoofuse

A FUSE filesystem backed by a Zookeeper directory tree.
Go
1
star