FoxxMD / multi-scrobbler

Scrobble plays from multiple sources to multiple clients
https://foxxmd.github.io/multi-scrobbler
MIT License
420 stars 17 forks source link

Multiple Artists from Jellyfin are not scrobbled correctly #70

Closed Karsten-Yan closed 1 month ago

Karsten-Yan commented 1 year ago

Please check the FAQ before submitting a bug report.

Describe the bug Multiple Artists from Jellyfin are not scrobbled correctly. Only first Artist in list is submitted .

To Reproduce Steps to reproduce the behavior:

  1. Scrobble multi track song from jellyfin (correctly tagged in jellyfin by Picard)

Expected behavior All artists should be submitted, correctly seperated

Logs

2023-02-24T07:14:11+00:00 debug : [Client Maloja - maloja_karsten ] Payload: [{"album":"The 30th Anniversary The Legend of Zelda Game Music Collection","artists":["永田権太"],"key":"TEeB6TsoQTkuHKDUA19p6tRABWuT0csbl793bkyqC6IOsJWEhBWvFqv75fp0Wl","length":129,"time":1677222818,"title":"プロロ島(アリルのテーマ)"}]
2023-02-24T07:14:11+00:00 info : [Client Maloja - maloja_karsten ] Scrobbled (New) => (Jellyfin) 永田権太 - プロロ島(アリルのテーマ) @ 2023-02-24T07:13:38+00:00
2023-02-24T07:14:11+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:14:11+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:14:11+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:14:10+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:14:10+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:14:10+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:14:09+00:00 debug : [Client Maloja - maloja_karsten ] Refreshing recent scrobbles
2023-02-24T07:14:09+00:00 info : [Source - Jellyfin - jellyfin_karsten] New Track => 永田権太 - プロロ島(アリルのテーマ) @ 2023-02-24T07:13:38+00:00
2023-02-24T07:14:09+00:00 debug : [Source - Jellyfin - jellyfin_karsten] (Stateful Play) (2e47c3621135b119ef5115676af9ea5f) 永田権太 - プロロ島(アリルのテーマ) added after being seen for 30 seconds and not matching any prior plays
2023-02-24T07:14:08+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:14:08+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:14:08+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:14:05+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:14:05+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:14:05+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:14:00+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:14:00+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:14:00+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:58+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:58+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:58+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:57+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:57+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:57+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:55+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:55+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:55+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:54+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:54+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:54+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:52+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:52+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:52+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:51+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:51+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:51+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:49+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:49+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:49+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:48+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:48+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:48+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:48+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:48+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:48+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:45+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:45+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:45+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:44+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:44+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:44+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:43+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:43+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:43+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:40+00:00 debug : [Source - Jellyfin - jellyfin_karsten] Will not scrobble event because media type was not 'Audio' (undefined) [{"artists":[null]}]
2023-02-24T07:13:40+00:00 warn : [Source - Jellyfin - jellyfin_karsten] Config defined users but payload contained no user info
2023-02-24T07:13:40+00:00 warn : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Payload from Jellyfin did not contain server info! Make sure 'Send all Properties' is checked in webhook
2023-02-24T07:13:38+00:00 debug : [Source - Jellyfin - jellyfin_karsten] No prior candidate recent plays! Adding new locked plays: (2e47c3621135b119ef5115676af9ea5f) 永田権太 - プロロ島(アリルのテーマ)
2023-02-24T07:13:38+00:00 info : [Ingress - Jellyfin ] ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9) Received valid data from server karsten-B450-AORUS-PRO (Version 10.8.9) for the first time.
2023-02-24T07:13:38+00:00 info : [Ingress - Jellyfin ] Received request from a new remote address: ::ffff:192.168.178.47 (UA: Jellyfin-Server/10.8.9)

Versions (please complete the following information): Provide version information for any related sources/clients.

Webhook is configured according to docs, all properties is checked. Artists in Jellyfin are like this: 永田権太;若井淑;峰岸透;近藤浩治

I think the multiple Warnings/Errors in the middle are unrelated, i get them every time i scrobble from jellyfin

FoxxMD commented 1 year ago

Thanks for the logs and detail, I was able to reproduce this:

song metadata webhook payload

Jellyfin is only sending the first artist. I able to narrow this down to a coding decision in the jellyfin webhook plugin. I have reported the issue to the webhook plugin project. There is no way to fix this until they make changes.

FoxxMD commented 1 year ago

@Karsten-Yan I've also improved logging for Jellyfin in the latest develop image. The debug output should give you more information about missing information as well as be less noisy.

If you are still seeing warnings about Config defined users but payload contained no user info and such you can additionally get the raw webhook payload sent to multi-scrobbler by modifying your jellyfin config to include logPayload like this:

[
  {
    "name": "MyJellyfin",
    "clients": [],
    "data": {
      "users": ["FoxxMD"],
      "servers": ["myServer","anotherServer"],
      "options": {
        "logPayload": true
      }
    }
  }
]

This will output the payload to DEBUG logging. Please include this in your reply if you are still seeing issues.

Karsten-Yan commented 1 year ago

@FoxxMD Thanks for the quick response. Fingers crossed that it can be solved on the plugin side. Also the log is now way less noisy, not seeing those errors anymore. If they occur again i'll make sure to include the payload in the logs.

Thanks for the awesome work!

FoxxMD commented 2 months ago

@Karsten-Yan I've written a new Jellyfin Source that uses the API rather than webhook plugin and works with multiple artists. If you'd like to try it out follow the instructions in https://github.com/FoxxMD/multi-scrobbler/pull/172#issuecomment-2318716575

FoxxMD commented 1 month ago

Fixed in 0.8.4 with the new Jellyfin Source