PleXBMC client for XBMC



Use XBMC client to access Plex Media Server


Convert XBMC into a dedicated Plex client for Windows, Linux, Raspberry Pi, OSX and more....



Please use the new Thread for all discussions, this one is no longer maintained:




What is it?

PleXBMC is a number of addons that enable Plex Media Server (PMS) functionality from within XBMC. It consists of:

  • PleXBMC - Main interface addon

  • PleXBMC Helper - Plex remote control interface addon

  • PleXBMC Skins - Modified skins which direct integrate Plex access for a seemless experiance.

Where to get it!

Updated: 20th March 2013

For XBMC 12/Frodo users, there is a Repository available which includes all software.


A seperate addon exists for each version of XBMC available Be sure to use the version that matches your installed version.

PleXBMC Helper (XBMC 12/Frodo only)

PleXBMC modified skins

These are currently the only supported skins:


PleXBMC Addon

PleXBMC supports all the standard functions that an official Plex client offers. Such as:

  • Browse, play and resume media in Plex Media Server sections.

  • Display all intermediate filter menus (selectable by user)

  • Search within library sections

  • Displays full metadata, thumbs, fanart, media flags for all items

  • Track and display the watched status for all items (start on one device and resume on another)

  • Automatic subtitle and audio stream support including external subtitle files (such as .srt)

  • Manually start a rescan of media sections

  • Delete media from Plex Media Server (where enabled by the media server)

  • Browse and play Plex Channels (support is currently limited)

  • myPlex support to allow authenticated access to remote Media Servers.

  • Support for Plex Online - install, modify or delete Plex Plugins

  • Wake On LAN - prod those sleeping servers

  • Transcode media with quality selector (good for remote playback)

  • Transcoding support for AC3 and DTS audio

  • Bonjour/zeroconf support

PleXBMC Helper

If you also install the PleXBMC Helper, you will get the following:

  • Integration with plex iOS (and presumably android and Windows) apps

  • Displays as a selectable screen/client within app

  • Utilise the remote to send commands (excluding keyboard support, as this is removed from current XBMC implementations)

  • Initiate playback of media on the remote app

PleXBMC Skins

In addition, if a PleXBMC specific skin is used:

  • Display all section on the main home screen (movies, tv, channels)

  • Display all partial watched flags

  • Display of recently added items (Quartz skins only)


Still not sure what PleXBMC does - here is a video to explain what it does and a video showing the other available skins


You can also see two extra videos:

  • PleXBMC: Remote playback via Plex/Web

  • PleXBMC: On the Raspberry Pi

    Basic installation and configuation


  • Ensure your PLex Media Server is up and running

  • Install addon directly via zip file

  • Configure the addon with either Bonjour discovery or with the IP address of the Plex Media Server

  • Use the addon via Video -> Addons -> PleXBMC

Addon Configuration Options
Media Sources

Location for Plex Msdia Servers

  • Use Bonjour local Discovery - Automatically locate other Plex Media Server instances in local network (Default: Off)

    Off - use static IPs for media servers

    On - use Bonjour to find ny local media servers

  • Plex Media Server hostname - IP address or DNS name of PMS instance (Default:

  • Port Number - port to talk to Plex Media Server on (default: 32400)

  • MyPlex User - username to log into myplex service

  • MyPlex password - and the corresponding password


  • Stream from PMS - Decide how to play PMS media on XBMC (Default: auto)

    Auto - Let PleXBMC decide (First look for local file ; else http from Plex Media Server)

    http - Use Plex Media Server Webserver to play file

    smb - Use samba/cifs to play file. Share must be assessible to client

    afp - Use Apple AFP to play file.

  • Audio and subtitile selector - determine what audio stream and subtitles to display

    XBMC Control - Let XBMC decide and remember your manual audio and subtitle selection

    Never - Just turn all subtitles off.

    Plex Control - Let PlexBMC decide based on PMS configuration. Audio stream and subtitles will be set to PMS selected stream. If there are no embedded subs, external file will be used.

    External - Always use the external subtitle file if it exists.

  • Force DVD playback - Try to play the DVD as a single image, requires the use of SMB to read whole DVD structure

  • Override SMB location - use the following data to force the source to come from a seperate NAS device:

  • NAS IP Address - Seperate location of NAS source

  • NAS Username - username to log into NAS SMB Share

  • NAS Password - and corresponding password

  • NAS Root folder - The base folder with the NAS for the media file location

  • Select master server - select a plex media server to act as the transcoder master for myplex

  • Current master server - automatically populated item showing the current master server defined.


Used to set the transcoding settings used for media playback. These settings will also be used to playback any flash channels from the Plex Media Server (e.g.,

  • Quality - Select the quality, the higher the better, but will take longer and use more processing power on the Media Server.

  • Select Audio Output:




  • Always transcode - turn it on or off. If selected ALL media is transcoded regardless..

  • Subtitle size - select the sizing of any transcoded subtitles

  • Audio boost - try to increase the volume during transcoding for smaller devices.

Wake on LAN

Configure the device to attempt to wake when running PleXBMC.

  • Use Wake on LAN - switch it on and off

  • MAC Address X - the MAC address of the devices to send the wake up packet too.

Look and Feel

Extra settings to alter some aspects of the way PleXBMC works.

  • Enable extra filter menus - display intermediate Plex Menus (recently played, by genre, etc)

  • Plex Channel View? - display plugins using the iOS channel view, rather than in separate sections

  • Plex Style Watched Flags - shows partially watched media

  • Flatten TV Shows - either off, Single season shows or all seasons.

  • Clean context Menus - show only plexbmc context menu items

  • Skip Context menus - don't bother to build PleXBMC context menus [speedup]

  • Skip genre/director/writer metadata - Don't gather this info [speedup]

  • skip images (thumbs, fanart) - don't get images [speedup]

  • Skip Media Flags - don't process and display media flags [speedup]

  • Strict Skin Views - force a particular skin view for the configured media type.

  • Skin Name - Select the name of the skin

  • Movie view - select the name of the view to use

  • TV view - select the name of the view to use

  • Season view - select the name of the view to use

  • Episode view - select the name of the view to use

  • Music view - select the name of the view to use


Configure the recenty added/Used data on the home screens

  • Enable Movie Shelf - Display the recently added data for movies

  • Enable TV Shelf - Display the recently added data for tv shows

  • Enable Music Shelf - Display the recently added data for music

  • Enable Channel Shelf - Display the recently added data for Plex Channels

  • Content filter - Only display shelf data for items in the following groups:

    Kids - show items appropriate for kids (PG and below)

    Teens - show items appropriate for teens and below (Kids plus items up to 15 years old)

    Adults - show all items (Kids plus Teens plus all items rated 16 and above)

  • map unknown content as - if a media item doesn't have a rating, then set it as one of the previous types.


  • Enable debug output to log - turns on verbose PleXBMC logging into xbmc.log file. Handy if something goes wrong...

  • RA Library Filter - [Advanced setting] block some library section from displaying in the Shelf data (based on the library section number in Plex Media Server)


I've also modified some well known XBMC skins to fully integrate PleXBMC into XBMC - so you get easier access to your media and a better Plex-like experience. I would recommend using a PleXBMC modified skin for best results.

NOTE: you must use a skin and PleXBMC addon appropriate for teh version of XBMC you are running

XBMC 10.1 / Dharma

1. Confluence.plexbmc (originally by Jezz_X and Team XBMC, tweaked by Hippojay)

Activate by enabling "Plexbmc integration" in the skin settings

2.Cirrus-ex.plexbmc (originally by Crookas, extended by butchabay and Malexx, tweaked by hippojay)

Activate by enabling "Plexbmc integration" in the skin settings

3. Quartz.plexbmc (originally by Pecinko, modded by hippojay)

Activate by enabling "Plexbmc integration" in the skin settings


If you want to look at the code it's here:


PleXBMC Skin interface

PleXBMC exposes a number of items which allows skins to directly utilise the plugin to enhance the look and feel of XBMC.

Home/Menu Section items

The biggest change over the standard XBMC view, is the ability to directly add the Plex Media Server sections to the main home screen.

First, the skin must run the plugin to populate the menu item properties. This is done by running with the skin argument.

<br />
  <onload condition="System.HasAddon(">RunScript(,skin)</onload><br />

Secondly, the skin must be configured to pick up these items ready for display. This s done by reading in a number of properties. There are 20 available slots (X), which includes all available sections. Any more than 20 and the sections will not be displayed.


[] plexbmc.X.title - Name of the section

] plexbmc.X.subtitle - Name of the Media Server which owns this section

[] plexbmc.X.path - Item to run when section is selection (an XBMC ActiveWindows() command)

] plexbmc.X.type - The type of section: movie, show, artist, photo

[] - fanart image for the section

] plexbmc.X.icon - the thumbnail for the section

[] plexbmc.X.thumb - the thumbnail for the section

] plexbmc.sectionCount - total number of sections

[*] plexbmc.numServers - total number of media servers available


For example:

<br />
  <item><br />
    <label>$INFO[Window.Property(plexbmc.0.title)]</label><br />
    <label2>$INFO[Window.Property(plexbmc.0.subtitle)]</label2><br />
    <onclick>$INFO[Window.Property(plexbmc.0.path)]</onclick><br />
    <visible>!IsEmpty(Window.Property(plexbmc.0.title))</visible><br />
    <visible>substring(Window.Property(plexbmc.0.type),movie)</visible><br />
  </item><br />

In the above example, an extra visible tag had been used - which allows the sections to be filtered by type.

Home/Menu Channel/plugin items

In addition to the section names, a number of standard menu items are available.



[] - if set, means that the user wishes to see a consolidated list of all channels

] - Item to run when all channels are required to be viewed for media server X

[] - Item to run when video channels only are required for media server X

] - Item to run when video channels only are required for media server X

[] - Item to run when video channels only are required for media server X

] - Item to run when user wish to access the PlexOnline function of media server X

[*] plexbmc.X.server - name of media server X


For example

<br />
  <item><br />
    <label>Video Channels</label><br />
    <onclick>ActivateWindow(Videos,$INFO[Windows.Property(],return)</onclick><br />
  </item><br />

My Plex


[] plexbmc.queue - Item to run to display myplex queue

] plexbmc.myplex - property to show whether myplex is enabled or not


The myplex functionality has an extra flag which help to determine whether to display the queue menu item or not. If myplex is not configured (i.e. there is no myplex username/password) then you can decide not to beother showing the redundant menu item.

PleXBMC settings

If you want to add a dedicated menu item to take you directly to the plexbmc settings, then you can use the special "setting" end point

<br />
  <item id="6" description="PleXBMC Settings"><br />
    <label>PleXBMC</label><br />
    <onclick>XBMC.RunScript(,setting)</onclick><br />
  </item><br />

Shelf items

The shelf is the name given to the area which shows the recently added data. This is split into two types, a media shelf (for video/tv/music and photo) and a channel shelf for recently used channels:

To display media shelf items, you need to first populate the properties by running the shelf end point:

<br />
  <onload condition="System.HasAddon(">RunScript(,shelf)</onload><br />

This then sets the following properties:



[] Plexbmc.LatestMovie.X.Path - sets the item to run for the latest movie X

] Plexbmc.LatestMovie.X.Title - sets the title for latest movie X

[*] Plexbmc.LatestMovie.X.Thumb - sets the thumbnail for latest movie X


For example:

<br />
  <item id="1" description="Movies"><br />
    <visible>!IsEmpty(Window.Property(Plexbmc.LatestMovie.1.Path))</visible><br />
    <label>$INFO[Window.Property(Plexbmc.LatestMovie.1.Title)]</label><br />
    <thumb>$INFO[Window.Property(Plexbmc.LatestMovie.1.Thumb)]</thumb><br />
    <onclick>PlayMedia($ESCINFO[Window(Home).Property(Plexbmc.LatestMovie.1.Path)])</onclick><br />
  </item><br />

** Tv Seasons ** Note plex only shows link to the latest season where an episode has been added, rather than a link directly to the episode


[] Plexbmc.LatestEpisode.X.Path - item to run for latest episode X

] Plexbmc.LatestEpisode.X.EpisodeTitle - title of latest episode X (currently set to blank, as this data isn;t available for recentlyadded)

[] Plexbmc.LatestEpisode.X.EpisodeSeason - the season number for the tv show X(currently set to a string "season N" where N is the season number)

] Plexbmc.LatestEpisode.X.ShowTitle - the name of tv show X

[*] Plexbmc.LatestEpisode.X.Thumb - the thumbnail for tv show X


for example:

<br />
  <item id="1" description="Episodes1"><br />
    <visible>!IsEmpty(Window.Property(Plexbmc.LatestEpisode.1.Path))</visible><br />
    <label>$INFO[Window.Property(Plexbmc.LatestEpisode.1.EpisodeTitle)]</label><br />
    <label2>$INFO[Window.Property(Plexbmc.LatestEpisode.1.ShowTitle)]</label2><br />
    <property name="SeasonEpisode">$INFO[Window.Property(Plexbmc.LatestEpisode.1.EpisodeSeason)]</property><br />
    <thumb>$INFO[Window.Property(Plexbmc.LatestEpisode.1.Thumb)]</thumb><br />
    <property name="ItemType">$LOCALIZE[20387]</property><br />
    <onclick>$INFO[Window(Home).Property(Plexbmc.LatestEpisode.1.Path)]</onclick><br />
  </item><br />



[] Plexbmc.LatestAlbum.X.Path - item to run for Album X

] Plexbmc.LatestAlbum.X.Title - name of album X

[] Plexbmc.LatestAlbum.X.Artist - name of recording artist for album X

] Plexbmc.LatestAlbum.X.Thumb - thumbnail for album X


For example:

<br />
  <item id="1" description="Music"><br />
    <visible>!IsEmpty(Window.Property(Plexbmc.LatestAlbum.1.Path))</visible><br />
    <label>$INFO[Window.Property(Plexbmc.LatestAlbum.1.Artist),, - ]$INFO[Window.Property(Plexbmc.LatestAlbum.1.Title)]</label><br />
    <onclick>PlayList.Clear</onclick><br />
    <onclick>$INFO[Window(Home).Property(Plexbmc.LatestAlbum.1.Path)]</onclick><br />
    <thumb>$INFO[Window.Property(Plexbmc.LatestAlbum.1.Thumb)]</thumb><br />
  </item><br />

Channel Shelf items

Channel items are dealt with seperately to media shelf, to allow a degree of concurrancy with the other scripts.

To display chanel shelf items, you need to first populate the properties by running the channelshelf end point:

<br />
  <onload condition="System.HasAddon(">RunScript(,channelshelf)</onload><br />

This then gives you a similar set of properties to the media shelf:


[] Plexbmc.LatestChannel.X.Path - The item to run for channel X

] Plexbmc.LatestChannel.X.Title - The name of channel X

[*] Plexbmc.LatestChannel.X.Thumb - The thumbnail of channel


for example

<br />
  <item id="1" description="channels"><br />
    <visible>!IsEmpty(Window.Property(Plexbmc.LatestChannel.1.Path))</visible><br />
    <label>$INFO[Window.Property(Plexbmc.LatestChannel.1.Title)]</label><br />
    <onclick>$INFO[Window(Home).Property(Plexbmc.LatestChannel.1.Path)]</onclick><br />
    <thumb>$INFO[Window.Property(Plexbmc.LatestChannel.1.Thumb)]</thumb><br />
  </item><br />

Other bits and bob

There are a few other individual listitem properties that are set, which pass though extra or different metadata items. Some of these are standard-ish XBMC items and some are pleXBMC specific. These are access via:

<br /><br />


[] IsResumable - Is this a partially watched item

] overlay - the name of the overlay image to use

[] Artist_Genre - genre list for the artist

] Artist_Description - the full summary metadata for an artist

[] Album_Description - the full summary metadata for an album

] WatchedEpisodes - number of watched episodes

[] UnwatchedEpisodes - the number ofunwatched episodes

] fanart_image - the fanart for the item being displayed



Everynow and again, a bug might appear. It might be XBMC, my addon, the PMS server or a combination of any of factors. It happens....

If it does happen, then the debug log from xbmc contains pretty much all the info I need to locate and fix the issue:

Enable Debugging

By default PleXBMC runs without any debugging info at all. It runs quicker this way and most people don't have an issue.

However, if a problem does occur then debugging needs to be switched on:


[] Configure the addon. Either system -> addons -> enabled addons -> video addons -> context menu "Configure"

] or: when using PleXBMC, highlight the name or any menu item with in the addon -> context menu -> addon settings

[] or: Navigate to the **Debug* heading and enable the debug log


Now, run the addon in the same way to generate the error again.

NOTE: Performance with debugging enabled is much reduced. Everything will run a good deal slower, so don't worry.

Sharing my debug info

Once you have generated the debug output, it needs to be made available to me to check and fix. The location of the file varies on different platforms:

NOTE: where ~ is the home directory, like /users/[username]/


[] OSX - *~/Library/Logs/xbmc.log*

] Windows XP - ~/Application Data/XBMC/xbmc.log

[] Windows Vista/7 - *~/AppData/Roaming/XBMC/xbmc.log*

] Linux - ~/.xbmc/temp/xbmc.log

[] ATV2 - **Not sure* Probably the system temp area..

[] XBOX 1 - **Q:/xbmc.log


Once you've located the xbmc log file, it can be sent either directly to me in a PM, link to in this thread or "cut and pasted" to a hosting service such as .

If you find that the file size is too large, then you could send only the required information from a specific run of PleXBMC. When PleXBMC starts and stops, it marks this in teh file with a start and stop log entry:


] Start flag: ===== PLEXBMC START =====

[] Stop flag: ===== PLEXBMC STOP =====


Simply extract the info between these two flags.

What does my debug log contain?

The debug log will contain a number of things, such as the program flow through the addon, but will also expose data from your PMS server@


] The XML output from PMS requests, detailing all movies, videos, etc in that section.

[] The username used to access PMS if configured in the addon.

] The plaintext password is not recorded, however the hashed version might be, if configured in the addon.

[*] IP addresses of systems being accessed. Usually these are internal ones (and non-routable), but any remote PMS instances will have the full IP/DNS name displayed.


Due to the type of information, I would recommend that you PM me any logs or host them and send me the URL. However, if you're not too bothered about this, then posting here or at pastebin is fine.

I don't use any of the information to attempt to gain to a Media Server, it is simply recorded so I can ensure that items are being handled correctly and that naming conventions (such as accented characters) aren't causing an issue.

I've never required direct access to another persons Media Server, but if this was needed, permission would be sought before any access takes place. I have a number of servers at home running different Plex versions, so I'm usually good to recreate stuff in house.


What does the channel view setting in 1.9a do? I've set it on and off and I'm not seeing a difference in display or behavior. Is this a skin-specific setting?


It simply displays all the plugins under a single heading of "channels" rather than seperate Video/Music/Photo Plug-ins menus. It mirrors what the iOS client does.

It's a fantastic view on iOS, but I don't think it really works on the desktop client which is why it's off by default - but someone asked for it and I'm a nice guy....


[quote name='hippojay' timestamp='1307106076' post='174277']

It simply displays all the plugins under a single heading of "channels" rather than seperate Video/Music/Photo Plug-ins menus. It mirrors what the iOS client does.


Ah, thanks for the info!



I love PleXBMC but I got following problem: When I change an option (it doesn't matter which one at the PleXBMC Plugin configuration (I'd like to enable extra filter menus) I can't play any video file anymore. I just get an error that the file couldn't play or XBMC crashes. When i set the Plugin configuration to standards everything works again. Does anybody know how to fix this?


That sounds a bit bizarre!!

Could you post up a log from XBMC with the plexbmc debug set to on (in the plugin configuration settings). Not sure what platform you are running on, but the xbmc.log file should be somewhere like library/logs or in the XBMC home directory.


Yes it's really bizarre. What just happened is that the plugin stopped working at all. Now not even putting things back to standard helps anymore. I'm running a late 2099 Mac Mini with Snow Leopard 10.6.7.

I found this log file. I hope this is what you were looking for.

Edit: I couldn't add the file... Here are the last few lines of the log file. I hope it helps.

Edit 2: I deleted the log file code, since the problem is solved.


Ok, I think I see an issue with the file detection (when media server and XBMC are on the same server). It's not passing the right filename - will check it out now.

EDIT: Yep, was doing that allll wrong. Fixed now and new release pushed for automatical update.


Thank you a lot, you are amazing!! It does work now!! :-)

So far I realized two more things which aren't working properly yet. Not such a big deal but maybe in a future release you can adress these two things as well. :-)

1. I use the Confluence.xbmc skin. When I'm at the main menu my Plex sections (movies, tv shows, etc.) don't have any fanart (they do at Plex), so the screen just looks black.

2. When I stop a movie using PleXBMC and later I want to resume, I don't see any option of resuming at where I was, the movie plays again from the beginning. Only if I stopped the movie at Plex I will have the resume option.

Thank you a lot again!!


[quote name='sonicblue83' timestamp='1307271603' post='174516']

1. I use the Confluence.xbmc skin. When I'm at the main menu my Plex sections (movies, tv shows, etc.) don't have any fanart (they do at Plex), so the screen just looks black.


Do you have custom art set for the various sections? There is an issue with this on XBMC at the moment, because it cannot determine that the file is a picture (from the URL)


2. When I stop a movie using PleXBMC and later I want to resume, I don't see any option of resuming at where I was, the movie plays again from the beginning. Only if I stopped the movie at Plex I will have the resume option.

Thank you a lot again!!


looks like something's has changed in the PMS data, as the resume function hasnt been altered for a very long time now. It's an easy fix though, just need to change the capitalisation of a variable.


Yes I did use custom art. I deleted them and now I do see the original art, thanks!


I couldn't leave the path issue alone ... So I just tried something. I added:

file = "smb:" + file.replace("\\",'/')

in mediaType(). This takes care of the whole smb/unc issue. It works for me in windows and it works on the xbox, too. It is maybe not the most elegant solution, but what do you think?


Looks find to me. As you've seen in the rest of my code, I don't tend to do elegant either :D

I'll add it and do some testing with my windows and OSX clients - then I'll push it out along with the other fixes.


I think, this path issue should have been dealt by the PMS team. In my opinion, it would make more sense, that all the different PMS tell you paths in the same format, not depending on the platform they are running on. Luckily, it looks like XBMC is in this case very platform agnostic.

Btw: any progress on the WOL?


I'm having a problem with video endings. When I finish watching any episode on PleXBMC it automatically starts another random episode from the same series. If I watch on XBMC without the plugin playback simply ends as it should.

Has anyone else seen this? I love my PleXBMC. Any help on this would be deeply appreciated.


Toggle the automatically play next track setting under the Music section in Settings. For some reason this setting carried over to video playback with PleXbmc.


Just pushed out a new version with some fixes:

* most notable, the resume function now works again (rewritten to make it better)..

* the UNC/SMB path problem for XBOX (thanks jmk)

I have also added some Plex Style watched flags, if you are using confluence.plexbmc. This will also show the partially watched flag which I miss (as I inch closer to working out how to make a completely plexable skin)


[quote name='jmk' timestamp='1307359397' post='174720']

Btw: any progress on the WOL?


I've added a WOL function to the addon (under a seperate script), but I'm trying to work out the best way to add it into the script. Do I send a WOL for all requests anyway, or do I wait for a failure before sending. If I wait for the failure, I also need to make sure I can loop back around to re-try the URL - which is slightly difficult in an addon and with my code structure). It's not a trivial addition, so will need to think on it..


Hmm, how about you check first inside plexbmc via a simple ping. If that fails you can go to a "sub-addon" which does the whole WOL-thing and if that is successful proceed back to plexbmc from there?! But that's just guess work, as I am not too familiar with the whole xbmc addon thing ...