Playlist Manager Plugin

 

If you find this plugin useful, and/or would like to see future enhancements, consider sending a donation.

Purpose

 

This plugin allows you to manage playlists through your Squeezebox player(s).  It provides a convenient way to build up playlists from your squeezebox player, without destroying your current playlist.

 

When browsing your music library, it provides a context menu for adding an album or song to a playlist, or the current playlist.  From a song in the current playlist, it is possible to add that song to another playlist.  It also provides convenient access to the Zap Playlist function, and a way to save the current playlist.

 

All of this functionality is available from context menus, and sometimes through an IR Remote shortcut key.

 

The functionality works for all types of players, including classic players (SB2/3, Boom, Transporter, SoftSqueeze), and Squeezeplay players (SB Controller, Radio, Touch).

 

I developed this plugin privately and specifically for my needs, but other people also found a lack of official support within the Squeezebox Server (SBS) software for playlist management and requested that I published and maintained the plugin.  I have since made it a bit more generic and useable, and will consider implementing enhancement requests.

 

I was finding music in my library that was incorrectly tagged or didn’t play properly whilst playing random tracks.  I needed a simple mechanism to record these whilst I was at a Squeezebox, such that when I returned to the PC, I could look through the list and correct the tracks.

 

I also wanted a way to add tracks to my morning alarm playlist, without having to load the playlist (losing the current playlist) and then add tracks to it and save it.

 

 

Usage Instructions

 

The plugin allows an album or song to be selected from a Browse menu, or from the current playlist (aka. the “Now Playing” screen).

 

Navigate to an album or song within any browse menu, or a song within the current playlist and either:

a)      Bring up the context menu and select “Add to…”.

b)      Press the pre-configured IR Remote shortcut button (by default Add, but can be configured through a custom IR map).

 

The functions that are available (dependent on the context that the plugin is accessed from) are:

 

Add To…

This menu allows you to select a playlist to add the currently selected item (song or album) to a playlist, either:

a)      The Current Playlist.

b)      Any defined quick-access playlist names are directly listed in this menu.  It is possible to configure these quick-access playlist names through the SBS web UI.

c)      “Other Playlists” - select from a list of all playlists that exist in the music library.

d)     Typing in a playlist name.

 

The track/album will be added to the end of the chosen playlist.  If the playlist doesn’t yet exist (or has been deleted), it is created.

 

Zap track

This allows you to access the original SqueezeCenter functionality that was bound to the IR Remote add.hold button action.

 

Save Current Playlist

This duplicates the functionality of the “Save Playlist” plugin (it was a copy of that code), which is an official SqueezeCenter plugin.  You can disable/remove the Save Playlist plugin if you always access the feature through my plugin instead.

 

 

Installation Instructions

 

The plugin can be installed as an extension within Squeezebox Server by accessing Settings > Plugins.

 

Alternatively, it can be manually installed by doing the following:

  1. Download the relevant version of the plugin.
  2. Extract the content to your SqueezeCenter plugins folder.
  3. Restart SqueezeCenter.
  4. Ensure the plugin is enabled in server settings -> plugin.

 

Note:

This playlist also makes the official SBS “Save Playlist” plugin redundant.  I included this functionality within my plugin, as the Save Playlist plugin automatically associates itself with the “Play.hold” remote key.  I wanted to free this key association up, as it is usually used for accessing mixers (such as MusicIP and other third-party plugins), and make it accessible as a menu action, to make it easy to access from any type of player.

 

To disable/remove the Save Playlist plugin, go to the SBS Settings > Plugins and locate “Save Playlist”.

 

Customising the Remote Functions

 

By default, this plugin will replace the default “Add” IR Remote button, such that it will bring up a new “Add To…” menu.  The existing “Add” key behaviour is moved to a long-hold of the Add key.

 

The plugin may not be able to configure changes to the Add and Add.Hold button actions to invoke the plugin, if another plugin also wants to customise these remote control actions.

 

One workaround is to override the remote control functions via a SqueezeCenter custom IR map file.  This also allows quick access to the plugin functions to be associated with any key you fancy.

 

Custom IR map files are located in the Squeezebox Server installation folder within \server\IR\.  For example, within this folder you can create a file called custom.map.  Then, from the web UI, go to the SBS player settings > Remote, and select the custom IR map from the Remote Button Functions drop down list (e.g. “custom”).  These definitions will override the standard remote control functions (any commands not specified will use the standard functionality).

 

Here is an example custom IR map file content:

 

[playlist]

add.single        = addmenu

add.hold          = add

 

[browsedb]

add.single        = BrowseAddMenu

add.hold          = play_1

 

This replicates the default behaviour configured within my plugin.

 

The [playlist] section configures IR Remote buttons from within the current playlist screen. “addmenu” is the Add menu for the current playlist.  You can swap the .single and .hold functions over if you like.

 

The [browsedb] section configures IR Remote button actions from within any SBS player browse menu.  BrowseAddMenu” is the Add menu for current album or song that you have navigated to within a browse menu.

 

 

Known Problems

 

There are some known problems:

 

  • Configured IR remote button actions may not work if another plugin also customises IR remote functions.  The TrackStat plugin is one such plugin.  See Customising the Remote Functions.
  • It is not possible to add a track twice to a playlist, and SqueezeCenter doesn't display duplicate songs in playlists anyway.  bug 3798.
  • In SBS 7.6 and greater, it is not possible to configure IR Remote buttons to provide a shortcut into the Playlist Manager menu when browsing (current playlist IR remote Add key shortcut is fine though).  The functionality can be reached through the context menu though.

 

Future Enhancements

 

The following are planned:

  • Provide commands to edit playlists (such as delete album from playlist) via Home > Extras > Playlist Manager.  Suggestions welcome for what actions to provide, and how this should work.
  • More actions to add the tracks to other places in the destination playlist other than always at the end.

 

If anyone has any enhancement requests, please post your thoughts to the Plugins SqueezeCenter mailing list/forum, or contact me directly (see below).

 

Contact

 

You can contact me at: phil AT hergest DOT demon DOT co DOT uk.

 

 

Download / History

 

Version 6.1

Tested to be compatible with LMS 7.9.

Avoid deprecated Perl warnings.

Handle other classes of objects that may be added to playlists.

Version 6.0

Added support for SBS 6.0.

Fixed issues with exiting menus (esp. Save Playlist and Add to New Playlist); more consistent now.

Version 5.4

Added support for adding Remote Track (radio url’s) from a playlist to another playlist.

Version 5.3

Added support for adding selected item to a new playlist on Jive UI.

Added French translation strings.  Thanks to JC Lesaint for the patch.

Fixed Add Album to new playlist for classic player UI.

Tidied up some internal stuff.

Version 5.2

Fix Add Track To Other playlist for classic players.

Version 5.1

Support Add Album on Classic player Browse menus.

Fixed German Translations (thanks Dieter Pellkofer and Carsten Pache).

Added Danish Translations (thanks Kurt Poulsen).

Version 5.0

Initial support for jive players, such as SBC, Squeezebox Radio and Touch.

Introduced a CLI command to support external applications.

Only tested with Squeezebox Server 7.5.

Version 4.1

Tidy up for Squeezebox Server 7.4.

Added German translations from Dieter Pellkofer.

Fixed issue with localised strings – needed to be UTF-8 and UNIX line endings.

Version 4.0

Use this version for Squeezebox Server 7.3.

Added support for Browse Menus.

Added a settings screen.

Fixed bug whereby pressing add when browsing list of playlists would hang the server.

Added some Danish translations provided by Kurt Poulsen – thanks!

Version 3.1

Changed install.xml to indicate that the plugin will work with any SqueezeCenter version from 7.0 onwards, including future releases.

Version 3.0

Converted to work only with SqueezeCenter7.0 onwards.

Minor changes to tidy source code; added more language strings.

Version 2.1

Fix to use currently selected track rather than currently playing track.

I have only tested this with Slimserver version 6.5.1.

Version 2.0

Slimserver version 6.5 only.

Can save a selected track to any playlist.

Can save a selected track to a new playlist.

Version 1.0

Initial version – pre-Slimserver version 6.5.