Plex and PlexAmp plugin

So, I have a draft plugin for Plex and PlexAmp almost ready for an initial release.

In summary this plugin will ultimately do 2 separate things:

  1. Allow Volumio to browse and play you music stored on your Plex server(s).
    I have created a fairly standard set of Volumio capabilities - see below for details.

  2. Allow Volumio to optionally install and config the ‘Headless Plexamp’ on specific hardware that supports PlexAmp.
    I have this currently disabled but will enable it for PlexAmp 4.4.0 very soon.


    So the main capabilities of 1. above are as follows:
    A) View latest Albums Added
    B) View latest Albums Played
    C) View list of Plex’s Playlists
    D) View list of new Artists
    E) View list of recently played Artists
    F) View all Artists (can be slow for large collections)
    G) Search (returning songs, albums or artists with titles based on the search string)

When viewing an Artist I have some information / metadata about the artist including top songs and a biography of the artist. When viewing an Album I show a review if available and similar sounding albums (if available) for the album as well as the tracks.



To configure this plugin, I have implemented the Plex PIN mechanism which requires a Plex Account in the cloud and once linked I have a few configuration options, including the ability to select which Music Library on one or more Plex Servers. If people want I can extended this authentication with other option Plex ‘Linking options’ including using the fixed IP address of the local Plex server with a users UserName and Password, but for now I felt it was simpler, more secure and faster to use the PIN mechanism.

Note: As far as the optional PlexAmp I have disable the headless install for now as the latest Headless PlexAmp 4.5.2 does not support the ‘buster’ build for the RPI that Volumio uses so it does not work with the latest Volumio for the RPI. PlexAmp 4.4.0 does work (though needs a little tweaking as PlexAmp actually uses an older version of Node than Volumio). So ironically Volumio has newer Node on older Linux than PlexAmp.

11 Likes

Amazing job! well done!

1 Like

Very interessting plugin because I have a plex pass.

This looks real nice and I just set up plex amp for my music library. Is this in the plugin store yet so we can add it to our Volumio?

Very excited to try the Plex plugin, Jerome. I wonder if it addresses my top two items regarding Volumio & Plex: (1) Inability to browse my large collection by “All Artists.” Currently, Volumio can’t get beyond “F” in my list, so I have to resort to choosing Rolling Stones albums by genre or year released :grinning: (2) When playing songs from Plex, Volumio’s default display state is to show each song as being named “file.mp3.” This can be toggled by pressing pause and then play, but the generic song name re-establishes itself when the album changes. Thanks!

Thanks guys, yes hopefully it will be avaialble soon, one or 2 minor bugs to tidy up before an initial release.

As per solving your problems @GlowTube it does load my largish library (100,000 songs / 8000 artists) of all artists within say 10 seconds but then caches it so subsequent visits to that page are much quicker. I have some code to split this into progressively loading all artists which I will probably switch too soon. I also implemented search which works pretty well when searching for artists. And It does show the proper track details on the now playing screen.

2 Likes

Great job, @Jerome_O_Flaherty. I’m keen to give this a bash. Plex runs the show in my house so this is right up my alley.

ready to test , plex server available :slight_smile:

1 Like

Potentially a great plugin. However, I have hit a snag if anyone can help. Having installed and enabled the plugin I am getting the “Connection failed Server is unreachable” error code.

When I click “settings” on the plugin I get a blank screen.

Any help is much appreciated.

Same issue as well, sorry don’t have a solution just a FYI for developer. Obtaining PIN and linking process works fine and I can access my Plex instance remotely and Plex indicates Remote Access as Fully Accessible, same error “Server Unreachable.”

Hi, linking was OK but I don’t see a user and Plex server selection. The plugin somehow selected one of my servers, and shows a mixed list of films and music in Newest Albums, and nothing in other categories. It also does not start playing music if I push a music album.

Update: now it plays music albums from Newest Albums.

Guys thanks for trying the plugin - I obviously need to work on the initial download / setup. I will do some testing over the weekend and hopefully release a fixed version.

I think for this version I will add lots of error logging (until we get it working reliably for everyone) and that will hopefully show me what is different about other peoples setup.

What is suppose to happen after the initial linking with the PIN is the plugin will query Plex cloud for a list of Plex servers - at the moment, I just pick the first Plex server from the list and I only support ‘local’ servers (i.e. ones on people home network - I will add support for remote servers soon) - you might see an ECONN error in the logs if the plugin cannot connect to the ‘first’ Plex server returned by the Plex Cloud e.g. if it down or remote.

The plugin then queries all servers for a list of ‘Music’ libraries and again for now I pick the first music library it finds. But in the settings it should show (at least it does for me) a list of Music Libraries on specific Plex Servers (I have 2 local network servers and 3 music libraries). You should be able to view this list in the settings (but obviously there must be some error that I am not getting that is happening in most other setups that I need to investigate).

Beyond that I have to fix a few bugs over the weekend:

  1. The latest artist list seems to query all Plex Media (not just music) - I have a dedicated Plex server just for music so I hadn’t noticed this the other day but I will fix this ASAP
  2. The Album view doesn’t seem to work on music libraries that haven’t been ‘sonically’ analysed - I try to pull in ‘similar’ sounding albums into that view but obvously on libraries without sonic analysis it not handling it correctly

Anyway, hopefully I can figure out what is different about other peoples setup and get you guys playing some music with this plugin

1 Like

Hi Jerome

Thanks for your work on this. I should add with my initial comments above that the plugin does see my local server (on a NAS drive) but I still get the response as described above.

I attach a screenshot.

As I listen to mainly classical music it would also be great to have the option of viewing Albums rather than just artists.

Thanks once again.

Hi Jerome, I’m using your plugin, good work, but there’s an issue for me…
What I like to do is create a huge playlist of all my music and then play it random, volumio is really bad at this when you have a large collection, it takes way to long to load the files and start to play the first song… Plex don’t have this problem, it’s really fast. With your plugin I have best of both worlds but my playlist won’t load all my tracks, it’s loading exactly 2000 tracks, if I inspect the code I have:

to

is it something that you can fix or it’s on volumio side?

Thank you, forgive my bad english I’m french :wink:

1 Like

Thanks, for your comments.

I will have a look very soon. I have a couple of fixes (mostly better error handling) that I meant to publish, but I will have a look at the size of the playlists next week. I was thinking of splitting very large requests into multiple smaller requests and doing partial updates of the UI so that it results would appear faster.

thank you for the fast reply, I’ll be ready to test the new version when you’re ready!

Good evening. I’ve been playing with Plexamp on my Pi and wanted to give this a try, so I can also work other services into the mix.

Is the draft version of the plugin still available to install? Not seeing any info on how to try it out?

Thanks! Can’t wait to test it out.

1 Like

@Jerome_O_Flaherty did you consider connection with Plex INC if the might support a plugin and development? Is there something you might need help with?

Thanks - I did briefly chat to the CTO of Plex in relation to the PlexAmp side of this plugin. He was pretty helpful but they have different priorities and an open public documented API is not one of them, but by scraping together enough information from other projects on Github I was mostly able to understand how to integrate, but I believe some of the problems people have had are when their Plex Setup is different and therefore the undocumented Plex API’s behave a little different than I expect. So I mostly have been looking at better error logging and handling of unexpected responses from Plex.

As far as headless PlexAmp integration, PlexAmp uses a similar platform to Volumio so in lots of ways they can work together well and this plugin was started to help that along. The Plex side of this plugin is to provide Plex audio + Plex metadata in Volumio and the PlexAmp side of this plugin is to allow Volumio to act as an endpoint for the PlexAmp mobile App.

Initially headless PlexAmp was running on the same linux kernel as Volumio but an older Node version than volumio (so the trick was to have 2 node instances running) - but they have moved forward to a new linux kernel and a newer Node. I believe for the PlexAmp side of this plugin to work well with Volumio, we would ideally get an update from Volumio supporting a newer Linux as the base.

3 Likes

Hi! By what I’m reading, the problem we’re having is if plex thinks we have more than one server, and as @Jerome_O_Flaherty mentions, it’s getting the first “knows server”.

I can see it’s trying to query a test server I created back in the day, and that’s why we’re getting the “server is unreachable” (because, in my case, it doesn’t even exist).

By what I’ve been reading, we can change the plex server to query, but I can’t figure it out. As other users are saying, plugin-setting gives me a blank page.

Any alternative way to change the server?

Thanks a lot in advance!