Coder Social home page Coder Social logo

musicplayerdaemon / mpdscribble Goto Github PK

View Code? Open in Web Editor NEW
117.0 117.0 15.0 995 KB

a MPD client which submits information about tracks being played to a scrobbler (e.g. last.fm)

License: GNU General Public License v2.0

C 0.93% Meson 3.95% C++ 95.12%

mpdscribble's People

Contributors

9ary avatar aflyingpumpkin avatar ammgws avatar arybczak avatar august2111 avatar avuton avatar bartman avatar bluca avatar bryal avatar cdown avatar cstew2 avatar davedavenport avatar dependabot[bot] avatar edooper avatar geneticdrift avatar hghwng avatar luizribeiro avatar maxkellermann avatar mpavot avatar neheb avatar neuschaefer avatar nijel avatar php-coder avatar sashashura avatar singpolyma avatar smithjd15 avatar thesamesam avatar warpr avatar wrar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mpdscribble's Issues

mpdscribble does not generate config file upon install

I am running Manjaro, tried installing from both the AUR and the Manjaro's package manager, pamac, none of them generate config file.
Running mpdscribble:
Failed to open /etc/mpdscribble.conf: No such file or directory
Can anyone provide the sample config file?

Does mpdscribble support the Last.fm 2.0 API?

Hi,
I have used mpdscribble for several years. I scrobble to Last.fm.

Last.fm changes the version of their API which is not backward compatible. See:

I just updated my /etc/mpdscibble.conf file with the new URL http://ws.audioscrobbler.com/2.0/ and I have HTTP 400 Bad Request error. Maybe I miss something.

Moreover, it's not clear to me how can I debug this. I don't how I can find the HTTP request send to the Last.fm API. I'll take a look to the source code.

Thanks,
Damien

Cannot scrobble to last.fm

Hi, I've just recently installed mpdscribble and tried scrobbling to last.fm but to no avail.
Scrobbling to libre.fm works though, I tried enable forward scrobbles to last.fm there but it doesn't seem to work.
(EDIT: I've since realized that forwarding scrobbles to last.fm does indeed work, only the first 20 or so songs weren't forwarded)
My current ~/.mpdscribble/mpdscribble.conf is as follows:

log = /home/crea/.mpdscribble/mpdscribble.log
verbose = 1

[last.fm] 
url = http://ws.audioscrobbler.com/2.0/
username = notme
password = b25...9
journal = /home/crea/.mpdscribble/lastfm.journal

I also tried using url = http://post.audioscrobbler.com/ but it didnt change the result
log is as follows:

2022-01-21T14:54:36+0000 starting mpdscribble (mdc 0.24)
2022-01-21T14:54:36+0000 loaded 5 songs from /home/crea/.mpdscribble/lastfm.journal
2022-01-21T14:54:36+0000 connected to mpd 0.23.5 at localhost
2022-01-21T14:54:36+0000 new song detected (ASIAN KUNG-FU GENERATION - All right part2), id: 3, pos: 0

2022-01-21T14:54:38+0000 [last.fm] waiting 60 seconds before trying again

I double checked and the username/password are indeed correct as I am able to login to the last.fm website.

Build failed on FC37

FAILED: mpdscribble.p/src_Log.cxx.o
g++ -Impdscribble.p -I. -I.. -Isrc -I../src -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c++17 -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -Wundef -fno-threadsafe-statics -fmerge-all-constants -Wcomma-subscript -Wextra-semi -Wmismatched-tags -Woverloaded-virtual -Wsign-promo -Wvolatile -Wvirtual-inheritance -Wno-non-virtual-dtor -fvisibility=hidden -ffunction-sections -fdata-sections -m64 -O2 -g0 -march=sandybridge -mtune=sandybridge -mno-avx512f -mfpmath=sse -msse2avx -ftree-slp-vectorize -fopenmp -pipe -fno-strict-aliasing -fomit-frame-pointer -fexceptions -fno-asynchronous-unwind-tables -fstack-protector-strong --param=ssp-buffer-size=6 -Wp,-D_FORTIFY_SOURCE=2 -w -Wformat -Werror=format-security -fPIC -fPIE -fuse-ld=gold -fuse-linker-plugin -Wa,--noexecstack -pthread -MD -MQ mpdscribble.p/src_Log.cxx.o -MF mpdscribble.p/src_Log.cxx.o.d -o mpdscribble.p/src_Log.cxx.o -c ../src/Log.cxx
../src/Log.cxx: In function ‘const char* log_date()’:
../src/Log.cxx:48:13: error: ‘time’ was not declared in this scope
48 | t = time(nullptr);
| ^~~~
../src/Log.cxx:29:1: note: ‘time’ is defined in header ‘’; did you forget to ‘#include ’?
28 | #include <stdarg.h>
+++ |+#include
29 | #include <stdio.h>
../src/Log.cxx:49:15: error: ‘localtime’ was not declared in this scope
49 | tmp = localtime(&t);
| ^~~~~~~~~
../src/Log.cxx:49:15: note: ‘localtime’ is defined in header ‘’; did you forget to ‘#include ’?
../src/Log.cxx:55:14: error: ‘strftime’ was not declared in this scope
55 | if (!strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S%z", tmp)) {
| ^~~~~~~~
../src/Log.cxx:55:14: note: ‘strftime’ is defined in header ‘’; did you forget to ‘#include ’?
[44/45] g++ -Impdscribble.p -I. -I.. -Isrc -I../src -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c++17 -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -Wundef -fno-threadsafe-statics -fmerge-all-constants -Wcomma-subscript -Wextra-semi -Wmismatched-tags -Woverloaded-virtual -Wsign-promo -Wvolatile -Wvirtual-inheritance -Wno-non-virtual-dtor -fvisibility=hidden -ffunction-sections -fdata-sections -m64 -O2 -g0 -march=sandybridge -mtune=sandybridge -mno-avx512f -mfpmath=sse -msse2avx -ftree-slp-vectorize -fopenmp -pipe -fno-strict-aliasing -fomit-frame-pointer -fexceptions -fno-asynchronous-unwind-tables -fstack-protector-strong --param=ssp-buffer-size=6 -Wp,-D_FORTIFY_SOURCE=2 -w -Wformat -Werror=format-security -fPIC -fPIE -fuse-ld=gold -fuse-linker-plugin -Wa,--noexecstack -pthread -MD -MQ mpdscribble.p/src_MpdObserver.cxx.o -MF mpdscribble.p/src_MpdObserver.cxx.o.d -o mpdscribble.p/src_MpdObserver.cxx.o -c ../src/MpdObserver.cxx
ninja: build stopped: subcommand failed.
Fehler: Fehler-Status beim Beenden von /var/tmp/rpm-tmp.3mEMre (%build)

%prep
%setup -q

%build
export CFLAGS="%{optflags} -fPIE -fuse-ld=gold -fuse-linker-plugin -Wa,--noexecstack"
export CXXFLAGS="$CFLAGS"
export CC="gcc $CFLAGS"
export LDFLAGS="-Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -pie $CFLAGS"
%meson --strip --auto-features=disabled --default-library=static
%meson_build

%install
%meson_install
install -D -m 0644 -p %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service
install -D -m 0644 -p %{SOURCE2} %{buildroot}%{_tmpfilesdir}/%{name}.conf
install -d %{buildroot}%{_localstatedir}/run/%{name}

Make room for logs

install -d %{buildroot}%{_localstatedir}/cache/%{name}

minimize build

rm -rf %{buildroot}%{_defaultdocdir}
rm -rf %{buildroot}%{_sysconfdir}/%{name}.conf

%pre
getent group %{name} >/dev/null || groupadd -r %{name}
getent passwd %{name} >/dev/null || useradd -r -g %{name} -d %{_localstatedir}/cache/%{name} -s /sbin/nologin -c "Mpdscribble" %{name} 2>/dev/null || :

%files
%{_bindir}/mpdscribble
%{_mandir}/man1/mpdscribble.1.gz
%{_unitdir}/%{name}.service
%{_tmpfilesdir}/%{name}.conf
%attr(0755,%{name},%{name}) %dir %{_localstatedir}/run/%{name}
%attr(0755,%{name},%{name}) %dir %{_localstatedir}/cache/%{name}

Code=dumped, Signal=TRAP

Hi,

i cant run mpdscribble and idk why. This is error message. Last time when i correctly scrobble track is before mpd update (ver 0.21.3 (2018/11/16))

2019-03-09-17:23:02

Libgcrypt warning: missing initialization

Jan 25 23:58:01 pi-sound systemd[1]: Starting AudioScrobbler for MPD...
Jan 25 23:58:01 pi-sound systemd[1]: Started AudioScrobbler for MPD.
Jan 25 23:58:02 pi-sound mpdscribble[7167]: Libgcrypt warning: missing initialization - please fix the application

It doesn't seem to work, even if its a warning.

busy `epoll_wait` 100% CPU usage

$ mpdscribble -V | head -1
mpdscribble version 0.25

$ pgrep mpdscribble
222341

$ timeout 5s strace -c -p 222341
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00    0.718114           1    363839           epoll_wait
------ ----------- ----------- --------- --------- ----------------
100.00    0.718114           1    363839           total

$ sudo gdb -nh -nx -batch -ex bt -p 222341
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
0x00007002dd1288b2 in epoll_wait () from target:/usr/lib/libc.so.6
#0  0x00007002dd1288b2 in epoll_wait () from target:/usr/lib/libc.so.6
#1  0x000058f25205f1b6 in EpollFD::Wait (this=0x7ffe5913e058, events=0x7ffe5913dea0, maxevents=16, timeout=<optimized out>) at ../src/system/EpollFD.hxx:29
#2  EpollBackend::ReadEvents (this=0x7ffe5913e058, timeout_ms=<optimized out>) at ../src/event/EpollBackend.hxx:41
#3  EventLoop::Wait (this=0x7ffe5913e058, timeout=...) at ../src/event/Loop.cxx:246
#4  EventLoop::Run (this=0x7ffe5913e058) at ../src/event/Loop.cxx:336
#5  Instance::Run (this=0x7ffe5913e050) at ../src/Instance.hxx:34
#6  main (argc=<optimized out>, argv=<optimized out>) at ../src/Main.cxx:188
[Inferior 1 (process 222341) detached]

screenshot-alacritty-2024-07-30-09-37-50

Support loading password from file

It would be helpful to support loading the password from a separate file, because it would allow to keep secrets separate from configuration.

Specifically it would help with using mpdscribble as a NixOS module, because NixOS auto-generates a world readable configuration file, which, in the current setup, has to contain the password.

Something like:

[last.fm]
url = http://post.audioscrobbler.com/
username = foobar
password_file = /var/secret/mpdscribble_password

mpdscribble does not work with streams

mpdscribble does not seem to function as expected when mpd is playing from radio streams. Steps to reproduce:

  1. Add a radio that provides full track information, mpc load https://lainon.life/radio/cafe.ogg.m3u
  2. After mpc play, mpdscribble correctly submits the "now playing" status
  3. When the track changes, mpdscribble does nothing

Sometimes does not scrobble/update as "now playing"

It seems that sometimes mpdscribble will simply not update scrobbles or indicate that a track is being played. I am not sure if this is an issue with the servers themselves or with mpdscribble, but it seems to be related to mpdscribble.

verbose = 0 is still verbose, lastfm journal is not being updated when offline.

i invoke mpdscribble with mpdscribble --conf /etc/mpdscribble.conf --verbose 0, which uses this configuration:

pidfile = /var/run/scribble.pid
daemon_user = mpd
log = /var/lib/mpd/scribble.log
verbose = 0
host = /var/lib/mpd/socket

[last.fm]
url = http://post.audioscrobbler.com/
username =
password =
journal = /var/lib/mpd/lastfm.journal

but even though verbose is set to 0 in both the cmdline and in the config, i see this with every song change:

2021-02-12T01:12:25+0300 new song detected (Fleetwood Mac - Big Love (Extended Remix; 2017 Remaster)), id: 86, pos: 85

2021-02-12T01:12:26+0300 [last.fm] submitting 1 song
2021-02-12T01:12:26+0300 [last.fm] post data: s=3f9ed5c53423bf62dec3858b507f6ee0&a[0]=Fleetwood%20Mac&t[0]=Big%20Love%20%28Extended%20Remix%3B%202017%20Remaster%29&l[0]=403&i[0]=1613081545&o[0]=P&r[0]=&b[0]=Tango%20In%20the%20Night%20%28Deluxe%20Edition%29&n[0]=1&m[0]=
2021-02-12T01:12:26+0300 [last.fm] url: http://post2.audioscrobbler.com:80/protocol_1.2
2021-02-12T01:12:27+0300 [last.fm] OK
2021-02-12T01:12:27+0300 [last.fm] sending 'now playing' notification
2021-02-12T01:12:27+0300 [last.fm] OK

according to the manpage: "2" logs infor-mational messages (e.g. "new song"); so if i understand that correctly, i shouldn't see what i am seeing above in my log file.

also when i render the system completely offline, i do not see /var/lib/mpd/lastfm.journal being created. i am only seeing errors in the log:

2021-02-12T01:21:15+0300 new song detected (Fleetwood Mac - Big Love (Extended Remix; 2017 Remaster)), id: 86, pos: 85

2021-02-12T01:21:16+0300 [last.fm] submitting 1 song
2021-02-12T01:21:16+0300 [last.fm] post data: s=3f9ed5c53423bf62dec3858b507f6ee0&a[0]=Fleetwood%20Mac&t[0]=Big%20Love%20%28House%20on%20the%20Hill%20Dub%3B%202017%20Remaster%29&l[0]=181&i[0]=1613082075&o[0]=P&r[0]=&b[0]=Tango%20In%20the%20Night%20%28Deluxe%20Edition%29&n[0]=2&m[0]=
2021-02-12T01:21:16+0300 [last.fm] url: http://post2.audioscrobbler.com:80/protocol_1.2
2021-02-12T01:21:16+0300 [last.fm] submit error: CURL failed:
2021-02-12T01:21:16+0300 [last.fm] waiting 60 seconds before trying again
2021-02-12T01:22:16+0300 [last.fm] submitting 1 song
2021-02-12T01:22:16+0300 [last.fm] post data: s=3f9ed5c53423bf62dec3858b507f6ee0&a[0]=Fleetwood%20Mac&t[0]=Big%20Love%20%28House%20on%20the%20Hill%20Dub%3B%202017%20Remaster%29&l[0]=181&i[0]=1613082075&o[0]=P&r[0]=&b[0]=Tango%20In%20the%20Night%20%28Deluxe%20Edition%29&n[0]=2&m[0]=
2021-02-12T01:22:16+0300 [last.fm] url: http://post2.audioscrobbler.com:80/protocol_1.2
2021-02-12T01:22:16+0300 [last.fm] submit error: CURL failed:
2021-02-12T01:22:16+0300 [last.fm] waiting 120 seconds before trying again
2021-02-12T01:24:16+0300 [last.fm] submitting 1 song
2021-02-12T01:24:16+0300 [last.fm] post data: s=3f9ed5c53423bf62dec3858b507f6ee0&a[0]=Fleetwood%20Mac&t[0]=Big%20Love%20%28House%20on%20the%20Hill%20Dub%3B%202017%20Remaster%29&l[0]=181&i[0]=1613082075&o[0]=P&r[0]=&b[0]=Tango%20In%20the%20Night%20%28Deluxe%20Edition%29&n[0]=2&m[0]=
2021-02-12T01:24:16+0300 [last.fm] url: http://post2.audioscrobbler.com:80/protocol_1.2
2021-02-12T01:24:16+0300 [last.fm] submit error: CURL failed:
2021-02-12T01:24:16+0300 [last.fm] waiting 240 seconds before trying again

both mpd and mpdscribble are running as user mpd which has read+write access to /var/lib/mpd.

 0 ~: mpdscribble --version | head -1; mpd --version | head -1
mpdscribble version 0.23
Music Player Daemon 0.21.10 (0.21.10)

am i doing something wrong?

verbose setting seems wrong

As mentioned in #28, verbose = 0 seems to be more verbose than it should, and also more verbose than verbose = 3. I just ran into this myself trying to troubleshoot and getting very confused about the lack of output until I set it to 0, so it might be worth looking at.

new release

Hi! Please release a new version of this software. The last one (0.22) is from 2011. A lot has changed in this repository since then. Thanks! :)

High CPU load when idle

Version: mpdscribble 0.25-2
Mode: runs as an enabled mpdscribble.service (/usr/bin/mpdscribble --no-daemon)
System: Arch GNU/Linux [x86_64]
Bundle: mpd 0.23.15-5 + mpc 0.35-1 + ncmpc 0.49-2 + mpdscribble 0.25-2

Actual behavior:

100% load of one CPU core when mpd playback is paused or stopped.

How to reproduce:

Add some tracks to playlist, play them and pause or stop the playback. In a while you should hear the cooler increasing noise and then you could see a high CPU load (top, htop) by mpdscribble.

Libre.fm handshake error

Scrobbling to last.fm works fine but lately I've noticed nothing going to libre.fm. Log shows the following:

2017-12-29T13:33:08+0000 [libre.fm] handshake error: got HTTP status 7 (Connection terminated 
unexpectedly)
2017-12-29T13:33:08+0000 [libre.fm] waiting 60 seconds before trying again
2017-12-29T13:36:18+0000 [libre.fm] handshake error: got HTTP status 7 (Could not connect: 
Connection timed out)
2017-12-29T13:36:18+0000 [libre.fm] waiting 120 seconds before trying again

Confusing Error Message

I am trying to run the command
mpdscribble --conf="/home/wpeace/.config/mpdscribble/mpdscribble.conf" --daemon-user="wpeace"

but get the error message
Section has neither 'file' nor 'url'

When I did
mpdscribble --conf="~/.config/mpdscribble/mpdscribble.conf" --daemon-user="wpeace"
I was told
Failed to open ~/.config/mpdscribble/mpdscribble.conf: No such file or directory, which I didn't expect either.

I got the program off the AUR and there was no default config, but I copied one I dug around in the github repo to find, my config file is:

[mpdscribble]
pidfile = /var/run/mpdscribble.pid
log = ~/.config/mpdscribble/mpdscribble.log
verbose = 2
journal_interval = 600

port = 6600

[last.fm]
url = https://post.audioscrobbler.com/
username = WhoDidYouKnow
password = 1e067f691be7b1f7e9502ba79d272514
journal = ~/.config/mpdscribble/lastfm.journal

[libre.fm]
url = http://turtle.libre.fm/
username = WhereAreWeSeeing
password = 70b8122aeaa5ef53ae37148fbaf37e4f
journal = /var/cache/mpdscribble/librefm.journal

[file]
file = /var/log/mpdscribble/log`

Some of the config comes from this guide: https://ubuntu-mate.community/t/how-to-install-and-setup-mpd-mpdscribble-ncmpcpp/8439, I can't see anything obvious being refernecing, I have both a file and url value, and there wasn't a [url] section listed in the default config, so I don't think that needs to be added anywhere. However i Have a [file] section and file variable, so I am not sure why it appears to be missing.

mpdscribble detect wrong mpd version

mpdscribble built from git master, connected to MPD and work fine, it just tell the wrong MPD version or it detect MPD version differently than i expect. Thanks.

2023-02-09T16:13:43+0700 connected to mpd 0.23.5 at localhost

When my mpd version is 0.23.12

Music Player Daemon 0.23.12 (v0.23.12)
Copyright 2003-2007 Warren Dukes <[email protected]>
Copyright 2008-2021 Max Kellermann <[email protected]>
This is free software; see the source for copying conditions.  There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Database plugins:
 simple proxy

Storage plugins:
 local curl


Decoders plugins:
 [mad] mp3 mp2
 [mpg123] mp3
 [vorbis] ogg oga
 [oggflac] ogg oga
 [flac] flac
 [opus] opus ogg oga
 [sndfile] wav aiff aif au snd paf iff svx sf voc w64 pvf xi htk caf sd2
 [dsdiff] dff
 [dsf] dsf
 [hybrid_dsd] m4a
 [faad] aac
 [wavpack] wv
 [pcm]

Filters:
 libsamplerate

Tag plugins:
 id3tag

Output plugins:
 shout null fifo pipe oss httpd snapcast recorder

Encoder plugins:
 null vorbis opus lame wave flac

Input plugins:
 file curl

Playlist plugins:
 extm3u m3u pls xspf asx rss soundcloud flac cue embcue

Protocols:
 file:// ftp:// ftps:// gopher:// http:// https:// rtmp:// rtmpe:// rtmps:// rtmpt:// rtmpte:// rtmpts:// scp:// sftp:// smb://

Other features:
 epoll icu inotify ipv6 tcp un

mpdscribble: "No username"

Can't start mpdscribble 0.23.

Logs say:

Mar  8 14:44:32 hq systemd[1]: Starting AudioScrobbler for MPD...
Mar  8 14:44:32 hq mpdscribble[88042]: No 'username'
Mar  8 14:44:32 hq systemd[1]: mpdscribble.service: Main process exited, code=exited, status=1/FAILURE
Mar  8 14:44:32 hq systemd[1]: mpdscribble.service: Failed with result 'exit-code'.
Mar  8 14:44:32 hq systemd[1]: Failed to start AudioScrobbler for MPD.

Relevant config file:

[last.fm]
url = https://post.audioscrobbler.com/
username = myuser
password = 111111
# The file where mpdscribble should store its Last.fm journal in case
# you do not have a connection to the Last.fm server.
journal = /var/cache/mpdscribble/lastfm.journal

[libre.fm]
url = https://turtle.libre.fm/
username = myuser
password = 222222
journal = /var/cache/mpdscribble/librefm.journal

Launched with mpdscribble --conf configFile

Get password programmatically?

I'm using pass as my password manager, and I would like to get the password using that, instead of saving it in plaintext on the config file. I tried password = $(pass entertainment/librefm | head -n 1) but it seems that the config parser does not expand it. Is this possible to do somehow?

Send love doesn't work on lastfm

While playing some some running

$: mpc channels
mpdscribble
$: mpc sendmessage mpdscribble love

doesn't work. No love shown on Lastfm

Custom scrobble threshold

At the moment, mpdscribble scrobbles tracks at the hardcoded conditions of either after 4 minutes or after half the track's length have elapsed; most scrobblers allow customozing these thresholds, so it would be nice if that possibility existed in mpdscribble as well.

Last.fm: BADAUTH

Hi there,

I'm unable to scrobble to last.fm on mpdscribbler 0.23~git. I keep getting:

2017-07-28T14:12:38+02:00 nas mpdscribble: [last.fm] handshake failed, username or password incorrect (BADAUTH)

username and password are definitely correct. No hidden spaces in the conf file either. I've tried changing them on last.fm to no avail. Scrobbling to other services works just fine.
So thats all i get at verbosity level 3. I really don't know where else to look.
As for this system time issue, I'm syncing with an NTP server periodically, so that shouldnt be the cause either.
The problems exists with both plain-text and MD5-hash - authentication.

Any ideas?
BTW, how about Last.fm API v2? I'm concerned they might just have switched off the legacy protocol support, if that's what you guys are currently using.

Appreciate your help or bugfix.

Here's the conf file:

mpdscribble.zip

mpdscribble 0.24 build failure

trying to build against the latest release, but failed with the following error

[1/43] rm -f src/net/libnet.a && ar csr src/net/libnet.a 
FAILED: src/net/libnet.a 
rm -f src/net/libnet.a && ar csr src/net/libnet.a 
ar: no archive members specified
usage:  ar -d [-TLsv] archive file ...
	ar -m [-TLsv] archive file ...
	ar -m [-abiTLsv] position archive file ...
	ar -p [-TLsv] archive [file ...]
	ar -q [-cTLsv] archive file ...
	ar -r [-cuTLsv] archive file ...
	ar -r [-abciuTLsv] position archive file ...
	ar -t [-TLsv] archive [file ...]
	ar -x [-ouTLsv] archive [file ...]

relates to Homebrew/homebrew-core#97432

Update config.guess / config.sub

For the next released version I propose to update config.guess and config.sub in the build directory to their latest versions.

I'm unable to build mpdscribble on aarch64, because the version used for mpdscribble 0.22 is quite old (December 2009) and does not support this architecture yet.
If i manually pull the latest versions of these files from http://git.savannah.gnu.org/cgit/config.git/tree/ everything works fine.

Scrobble tracks twice and reports them to last.fm

This is running on a arch linux installation mpd version 0.20.20.

capture

Log

2018-06-17T03:44:00+0200 1529199840, songchange: Hard Bass School - Shinomontazh (248)
2018-06-17T03:44:00+0200 new song detected (Taishi feat.IA - Diaphanser), id: 128, pos: 72
2018-06-17T03:44:01+0200 [last.fm] submitting 1 song
2018-06-17T03:44:02+0200 [last.fm] OK
2018-06-17T03:44:02+0200 [last.fm] sending 'now playing' notification
2018-06-17T03:44:03+0200 [last.fm] OK
2018-06-17T03:52:56+0200 1529200376, songchange: Taishi feat.IA - Diaphanser (518)
2018-06-17T03:52:56+0200 new song detected (syatten feat. 結月ゆかり - Starport), id: 129, pos: 73
2018-06-17T03:52:57+0200 [last.fm] submitting 1 song
2018-06-17T03:52:58+0200 [last.fm] OK
2018-06-17T03:52:58+0200 [last.fm] sending 'now playing' notification
2018-06-17T03:52:58+0200 [last.fm] OK
2018-06-17T04:00:33+0200 1529200833, songchange: syatten feat. 結月ゆかり - Starport (456)
2018-06-17T04:00:33+0200 new song detected (きりん feat. 蒼姫ラピス - COSMOS), id: 130, pos: 74
2018-06-17T04:00:34+0200 [last.fm] submitting 1 song
2018-06-17T04:00:35+0200 [last.fm] OK
2018-06-17T04:00:35+0200 [last.fm] sending 'now playing' notification
2018-06-17T04:00:35+0200 [last.fm] OK
2018-06-17T04:05:23+0200 1529201123, songchange: きりん feat. 蒼姫ラピス - COSMOS (289)
2018-06-17T04:05:23+0200 new song detected (ちばけんいち feat. IA - Trick), id: 131, pos: 75
2018-06-17T04:05:23+0200 [last.fm] submitting 1 song
2018-06-17T04:05:24+0200 [last.fm] OK
2018-06-17T04:05:24+0200 [last.fm] sending 'now playing' notification
2018-06-17T04:05:24+0200 [last.fm] OK
2018-06-17T04:11:56+0200 1529201516, songchange: ちばけんいち feat. IA - Trick (393)
2018-06-17T04:11:56+0200 new song detected (Nhato feat. 蒼姫ラピス - Miss You), id: 132, pos: 76
2018-06-17T04:11:57+0200 [last.fm] submitting 1 song
2018-06-17T04:11:58+0200 [last.fm] OK
2018-06-17T04:11:58+0200 [last.fm] sending 'now playing' notification
2018-06-17T04:11:58+0200 [last.fm] OK
2018-06-17T04:18:14+0200 1529201894, songchange: Nhato feat. 蒼姫ラピス - Miss You (378)
2018-06-17T04:18:14+0200 new song detected (Taishi feat. 結月ゆかり - Hidden Monitor), id: 133, pos: 77
2018-06-17T04:18:15+0200 [last.fm] submitting 1 song
2018-06-17T04:18:16+0200 [last.fm] OK
2018-06-17T04:18:16+0200 [last.fm] sending 'now playing' notification
2018-06-17T04:18:16+0200 [last.fm] OK
2018-06-17T04:26:21+0200 1529202381, songchange: Taishi feat. 結月ゆかり - Hidden Monitor (486)
2018-06-17T04:26:21+0200 new song detected (Taishi feat. 初音ミク V3 (English) - Scaler), id: 134, pos: 78
2018-06-17T04:26:22+0200 [last.fm] submitting 1 song
2018-06-17T04:26:23+0200 [last.fm] OK
2018-06-17T04:26:23+0200 [last.fm] sending 'now playing' notification
2018-06-17T04:26:23+0200 [last.fm] OK
2018-06-17T04:32:31+0200 1529202751, songchange: Taishi feat. 初音ミク V3 (English) - Scaler (370)
2018-06-17T04:32:32+0200 [last.fm] submitting 1 song
2018-06-17T04:32:33+0200 [last.fm] OK
2018-06-17T13:40:04+0200 shutting down

Any idea what might cause this issue?

Example Config

The program appears to simply not work for me, without any error messages output, it is possible I have the config file in the incorrect format. Could I see an example configuration file?

handshake with scrobble server fails if starting mpdscribble while music is playing

If the music is paused in my MPD client, and I start mpdscribble, the scrobble server is successfully connected to.

$ mpdscribble -D 
2022-10-28T16:09:54+0200 starting mpdscribble (mdc 0.25)
2022-10-28T16:09:54+0200 loaded 0 songs from /var/cache/mpdscribble/lastfm.journal
2022-10-28T16:09:54+0200 connected to mpd 0.23.5 at localhost
2022-10-28T16:09:56+0200 [last.fm] handshake successful
2022-10-28T16:09:56+0200 [last.fm] session: be4d1e8a663229520bdc32688c53132f
2022-10-28T16:09:56+0200 [last.fm] now playing url: http://post.audioscrobbler.com:80/np_1.2
2022-10-28T16:09:56+0200 [last.fm] submit url: http://post2.audioscrobbler.com:80/protocol_1.2

If I instead try to start mpdscribble after having pressed the play button in my client, while music is playing, mpdscribble fails to handshake.

$ mpdscribble -D
2022-10-28T16:12:20+0200 starting mpdscribble (mdc 0.25)
2022-10-28T16:12:20+0200 loaded 0 songs from /var/cache/mpdscribble/lastfm.journal
2022-10-28T16:12:20+0200 connected to mpd 0.23.5 at localhost
2022-10-28T16:12:20+0200 new song detected (Kasatka - Debut), id: 4427, pos: 18

2022-10-28T16:12:22+0200 [last.fm] handshake failed, username or password incorrect (BADAUTH)
2022-10-28T16:12:22+0200 [last.fm] waiting 60 seconds before trying again

This reproduces every time I try it.

My config:

verbose = 0

[last.fm]
url = https://post.audioscrobbler.com/
username =...
password =...
journal = /var/cache/mpdscribble/lastfm.journal

The issue occurs in mpdscribble version 0.25. My system is Arch Linux. Installed via the AUR package mpdscribble-git.

$ mpdscribble --version
mpdscribble version 0.25
another audioscrobbler plugin for music player daemon.
Copyright 2005,2006 Kuno Woudt <[email protected]>.
Copyright 2008-2019 Max Kellermann <[email protected]>

mpdscribble comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of mpdscribble under the terms of the
GNU General Public License; either version 2 of the License, or
(at your option) any later version.
For more information about these matters, see the file named COPYING.

$ uname -a
Linux ... 5.19.11-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 24 Sep 2022 18:24:15 +0000 x86_64 GNU/Linux

Very short songs are not scrobbled

I've noticed that two songs I have which are both 12 seconds long never get scrobbled. The currently playing thing works, but they don't actually get scrobbled.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.