ethanndickson / iina-lastfm

mpv script to scrobble songs played through iina to last.fm
MIT License
30 stars 3 forks source link

Implement "Now Playing" status requests #7

Open Fulminare137 opened 2 years ago

Fulminare137 commented 2 years ago

I just can't see the tracks which are being scrobbled right now and like i can't / don't know how to adjust the how much scrobbing in the plugin

ethanndickson commented 2 years ago

I'm not sure what you mean. Is the script running without errors?

Fulminare137 commented 2 years ago

i meant like the songs i am playing should be updated in real time instead of like me waiting for it scrobble then i can show what i am listening to. so thats a hit or a miss most of the times

Fulminare137 commented 2 years ago

"and don't know how to adjust the how much scrobbing in the plugin"

here i wanted to like adjust the scrobbling rate (which is like after the song gets to 50%/60%/70% the track is scrobbled and gets added to last fm )to like x y z percentage

ethanndickson commented 2 years ago

i meant like the songs i am playing should be updated in real time instead of like me waiting for it scrobble then i can show what i am listening to. so thats a hit or a miss most of the times

image

If this is the feature you're referring to, unfortunately, I have no plans to add this.

"and don't know how to adjust the how much scrobbing in the plugin"

here i wanted to like adjust the scrobbling rate (which is like after the song gets to 50%/60%/70% the track is scrobbled and gets added to last fm )to like x y z percentage

And that's for this exact reason, scrobbles are made as soon as the track starts playing, so these features would go hand-in-hand, I would recommend implementing the Last.fm API recommended scrobble rules, rather than a percentage of the track, those rules are:

The track must be longer than 30 seconds. And the track has been played for at least half its duration, or for 4 minutes (whichever occurs earlier.)

One could implement this feature by creating a "Now Playing" request on mpv's start-file event and storing the track metadata in a temp file (Overwriting any existing metadata). Then, since we have the total track duration handy, you could have the script sleep until the halfway point of the track, and which point it will read the metadata from the temp file, and if it doesn't differ from the metadata stored before it slept (in the script itself), it scrobbles the track.

If this sounds like something you (or anyone reading this) would like to have, and are capable of implementing without any dependencies, feel free to make a Pull Request :)