Skip to content

Alternative Play Count - a plugin for Lyrion Music Server that provides alternative play counts and skip counts to reflect your true listening history.

License

Notifications You must be signed in to change notification settings

AF-1/lms-alternativeplaycount

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alternative Play Count

Alternative Play Count1 provides alternative play counts and skip counts that aim to reflect your true listening history.

If you skip tracks in a playlist, LMS still increases their play counts. With Alternative Play Count you set a time after which a song counts as played. If you skip the song before, it counts as skipped, not played.

You can use APC data in any SQLite query or with other plugins to create/play smart playlists (dynamic playlists), virtual libraries or to skip specific tracks. See features section for details.

💡 As LMS and APC play counts diverge in the long term, you will benefit from the more accurate quality of the data (e.g. in smart playlists & statistics).

⬅️ Back to the list of all plugins

Use the    icon (top right) to jump directly to a specific section.



Screenshots2




Features

  • Set a time3 after which a song counts as played. If you skip the song before, it counts as skipped, not played.

  • The dynamic played/skipped value (DPSV) reflects your listening history/decisions of the recent past and is independent of the absolute play count and skip count values. A track's DPSV increases if played and decreases if skipped (see FAQ for details). You can use it to create smart playlists (dynamic playlists), virtual libraries or skip filter rules.

  • Let APC automatically change the rating of a track when it's marked as played or skipped (disabled by default).

  • Separate database table for APC values (play count, date last played, skip count, date last skipped, dynamic played/skipped value)

  • Create (scheduled) backups of your APC data and restore values from backup files.

  • Automatically undo a track's last (accidental) skip count increment if the track is played within a certain time span afterwards (see plugin settings).

  • Option to ignore, i.e. not count skips requested by the Custom Skip plugin

  • Reset play count, skip count or dynamic played/skipped value (DPSV) for individual or all tracks (see FAQ).

  • These plugins already make use of APC data: Dynamic Playlists, Dynamic Playlist Creator, Virtual Library Creator, Custom Skip, Context Stats and Visual Statistics.

Some features are not enabled by default. Please go to the plugin's settings page to enable them.




Requirements

  • LMS version >= 8.2
  • LMS database = SQLite


Installation

Alternative Play Count is available from the LMS plugin library: LMS > Settings > Manage Plugins.

If you want to test a new patch that hasn't made it into a release version yet, you'll have to install the plugin manually.

Initial values to start with

The plugin uses the current LMS play counts as a starting point.
If you want to start from scratch (no play counts) or use only higher LMS play count values to start your APC database, then you should change this in the APC settings right after installation.
APC play count and skip count values are used once to populate the DPSV column of the APC database when you first install the plugin. These are just initial values which you can reset at any time on this page: LMS Settings > Advanced > Alternative Play Count > Reset.


Reporting a new issue

If you want to report a new issue, please fill out this issue report template.

If you use this plugin and like it, perhaps you could give it a ⭐ so that other users can discover it (in their News Feed). Thank you.


FAQ

»What's a dynamic played/skipped value? How does it work?«

The dynamic played/skipped value (DPSV) is supposed to reflect your recent listening habits/decisions and ranges between -100 (skipped very often recently) and 100 (played very often recently). When a track has been played long enough to count as played, the DPSV increases, just as it decreases if the track is skipped. The closer the current DPSV is to the middle of the scale (0), the greater the increase/decrease. Conversely, DPSV close to 100 or -100, i.e. tracks that have been played or skipped very often recently, change less and will therefore have to be played or skipped more often to move away from the end of the scale. Also, skipping a track decreases its DPSV twice as much as playing it increases it (this is hard-coded and not a user setting).

Example: You've been listening to a great track (rated 5 stars) too many times and you started skipping it when it came up in a mix. It's still a great track, therefore the rating shouldn't change. If you create a dynamic playlist or a CustomSkip filter that exclude tracks with a DPSV of -80 or lower, eventually this track will no longer be played, either skipped by CustomSkip or filtered out in a dynamic playlist - without changing its rating.
A quick way to get the track back into the mix would be to reset the track's DPSV to zero by clicking on the DPSV value in the track's context menu.


»I have renamed / moved some audio files. How can I preserve the APC data for these tracks (play/skip count, date last played/skipped, DPSV)?«

You can use backups. Go to the plugin's settings page (backup section) immediately before you rescan your library and confirm that Backup before each library rescan is enabled. Just to be safe on the safe side, create a manual backup as well.
With the rescan completed, go to the plugin's settings page and restore the APC data from the pre-scan backup. APC will try to restore data for moved/renamed tracks using (relative) path guessing and MusicBrainz IDs. Of course, there's no guarantee that it will restore 100% but that's as good as it gets.


»Can I reset play count, skip count or DPSV for individual or all tracks?«

You can reset play counts, skip counts or DPSV for individual tracks by clicking on the corresponding item in a track's context menu (AKA song details page). Some web skins and controllers will list APC values in the More info submenu.
If you want to reset all skip counts, DPSV or the complete database, you can do so on this page: LMS Settings > Advanced > Alternative Play Count > Reset.


»When I create a backup, APC does not write a backup file.«

The AlternativePlayCount folder is where APC stores its backup files. On every LMS (re)start, APC checks if there's a folder called AlternativePlayCount in the parent folder. The default parent folder is the LMS preferences folder but you can change that in APC's preferences. If it doesn't find the folder AlternativePlayCount inside the specified parent folder, it will try to create it.

The most likely cause is that APC can't create the folder because LMS doesn't have read/write permissions for the parent folder (or the AlternativePlayCount folder). There may be matching error messages in the server log.

So please make sure that LMS has read/write permissions (755) for the parent folder - and the AlternativePlayCount folder (if it exists but cannot be accessed).


»How does automatic rating work?«

If you have the Ratings Light plugin installed, APC can change the rating value of a track when it's marked as played or skipped. When a track has been played long enough to count as played, the rating value increases, just as it decreases if the track is skipped.

Dynamic rating
The closer the current track rating is to the middle of the scale (50), the greater the increase/decrease. Conversely, ratings close to 100 or 0, i.e. tracks that have been played or skipped very often, change less and will therefore have to be played or skipped more often to move away from the end of the scale. Also, skipping a track decreases its rating up to twice as much as playing it increases it (this is hard-coded and not a user setting). There's a setting that gives you some control over how the dynamic rating algorithm changes ratings and an optional baseline rating for tracks never played before according to the APC database.

Linear rating
Enable this if you prefer constant/linear rating changes. If a track is then marked as played or skipped, the rating value is always increased or decreased by a constant value that you can set in the plugin settings.





Footnotes

  1. If you want localized strings in your language, please read this.

  2. The screenshots might not correspond to the UI of the latest release in every detail.

  3. i.e. percentage of the total song duration