The Plex Media Server either running on Windows, macOS, Linux, FreeBSD or a NAS which organizes audio (music) and visual (photos and videos) content from personal media libraries and streams it to their player counterparts.

The players can either be the Plex Apps available for mobile devices, smart TVs, and streaming boxes, or the web UI of the Plex Media Server called Plex Web App, or the old Plex player called Plex Home Theater.

A premium version of the service, called Plex Pass, is also available and offers advanced features like synchronization with mobile devices, access to cloud storage providers, up to date and high quality metadata and matchings for music, multi-users mode, parental controls, access to high quality trailers and extras, wireless synchronization from mobile devices to the server, access to discounts on partner products and early access.

Plex began as a freewarehobby project in December 2007 when the developer Elan Feingold was looking for a media centre application for his Apple Mac, better than Front Row. Elan came out of the desire to get the XBMC code running on a more powerful machine that could handle higher resolution media than the devices on which XBMC was usually running. According to him, the perfect platform seemed to be the Mac, especially with the form factor of the Mac Mini.

At that time, XBMC spin-offs were legion and were created by developers to solve a specific problem. In this situation, the reason was because XBMC was not available for Mac OS X yet. Fervent user of managed programming languages like Java and C#, and after some debate with a coworker with regard to managed languages vs unmanaged ones like C++, Feingold decided to port a massive C++ project as a challenge.[4] He downloaded the XBMC code, a project written in C++, and attempted to build it on the Mac for the first time in December 2007. This started the port to the Mac OS X platform.

After having posted on the XBMC forums a report with screenshots about the progress made on the Mac OS X port, he was contacted by the XBMC team, and was brought rapidly on their team. Over the next few months, he made some early releases of the port, which he called “OSXBMC”.[5] His purposes was to bring to the project a complete integration to the Mac. That integration comes from DVD playing, to energy saving features without hesitating to cut features out to benefit stability. He thought as a maturing project, XBMC had to improve its engineering practices, embrace software regression tests and provide end-user support with an improvement of bug reports.[4]

He worked under the auspices of the XBMC project until May 21, 2008. Due to different goals and vision for the project than the XBMC team did, he ended up forking the code to become Plex not too long afterwards and published it on GitHub, keeping the code roughly in sync with the Linux code.[6]

The new name was announced on July 8, 2008. While the team received a bunch of users' suggestions (Meteor Center, Media Hugger, etc.), Plex was ultimately chosen because with the "plex" suffix evokes “comprising a number of parts”.[7]

Then, Feingold began to work on a media centre component to aggregate not only local content but also to bring together web-based multimedia services. The new library system was redeveloped from scratch.[5] Work for new remote control was also on the todo list.[8]

The CenterStage UI group, a team aiming at improving the HTPC UI interface, often considered as "The interface that the AppleTV forgot", teamed with Plex to develop the idea further. CenterStage was looking for developers and Plex was looking for designers, a perfect match.[9][10]

As that hobby was costing money for the required infrastructure (for example), the project used donations and was selling mugs in order to survive.[5]

Like Boxee, Plex had applications for services such as Hulu. Even if Boxee and Plex extensions were both written in Python, Feingold advertized Plex extensions were easier to write thanks to a new in-house framework developed by James Clarke, one of the main Plex developers. At that point, Plex had 120 plug-ins (also called applications).

Plex has been listed as an officially approved Netflix app. With Hulu, however, the situation was quite different. While Hulu has never officially contacted Feingold, Hulu deployed "counter-measures" by creating changes deliberately to prevent Plex from parsing their HTML. Feigold realized that when, one day, he looked at the HTML code of the Hulu website and saw there was a tag named PLEX. Netflix and Hulu services are not officially available with Plex anymore (see #Plugins for more info).

The relationship with content companies was not completely adversarial though. Some companies have even contacted Feingold to add their content to Plex. "Most people get that having more eyeballs is better", he said. Feingold mentioned Spotify and Swedish people were friendly towards Plex. Sweden was indeed the country where there was the most Plex users.

In order to develop his software and make the project viable at some point in the future, Feingold's purpose was to bring the Plex experience to other devices, without the need for users to buy yet another computer or dedicate one as a HTPC. He also recognized a Mac Mini was a barrier to entry and the Apple TV of that generation with its 720p limitations and closed hardware decoder[4] was an underpowered and too closed device.[11]

He thought the evolution of video media consumption is to be able to watch whatever content we want, whenever we want (time shifting and download) with instant access to all pieces of media server ever created (streaming). Therefore, implementing DVR features into Plex has, according to him, no interest as requiring cable or IPTV subscriptions would be like "returning to Neolithic".[4]

A Christmas post indicated two new project contributors have been hired to Plex, Feingold specifying they are hiring, looking to grow the company in 2011.[12] Windows engineers were hired to bring Windows support.[13]

Elan Feingold is the CTO. Cayce Ullman remained CEO and co-founder[15] until 2011 when he left the company.[16] Keith Valory is the new CEO since February 2013.[17][18]

In 2014, Plex raised $10 million from the venture capital firmKleiner Perkins. In an interview at CES 2014, Scott Olechowski, Plex Chief Product Officer, added that Plex is considering to eventually add paid music downloads, or team up with a music subscription service, to give users a chance to grow their music library. These partnerships like the one with VEVO (see #Music library below) is costing real money for Plex, which justifies this fundraising from Kleiner Perkins.[19]

Plex Media Server (sometimes called PMS or PMS Software[21]) is the back-end media server component of Plex. It organizes audio (music) and visual (photos and videos) content from personal media libraries and streams it to their player counterparts, either on the same machine, the same local area network, or over the Internet. It can run on Windows, macOS, Linux, FreeBSD or a plethora of NAS devices.

Introduced in 2009, Plex Media Server was originally called Plex Media Center and was based on Kodi formerly known as XBMC. Plex Media Center's source code was initially forked from XBMC on May 21, 2008.[5][6] This fork continued to be used as a front-end media player on Linux for Plex's media server back-end until Plex fully replaced it with a proprietary version in October 2015.

Plex Media Server can be configured to index content in any directory on the machine it is run on, as well as to automatically acquire content from such sources as iTunes, iPhoto and Aperture.[22][23] Support for importation of iTunes playlists has been announced long after, on July 31, 2014, along a true play list system.[24] While an import support for Adobe Photoshop Lightroom was initially announced to be available shortly after Aperture support, as of July 2016, that feature has not been implemented yet.[22][23][25][26]

On March 14, 2010, the plugin framework and the new library system called Alexandria were announced. Both were completely rewritten as a distributed architecture with a REST HTTP/XML API opposed to the old monolithic one, less customizable. These were released with a new Plex version called Plex/Nine on August 30, 2010. The advantages of the new library is the ability to scan and sort the media even if the websites adding additional metadata and content are down. If the user had a custom filename layout organization, he can write his own parser. Parsers work exactly like Plex plugins using the new plugin framework with XPath parsing and Unicode support. The old Plex/Eight used the old XBMC scrapers which used regex encoded in XML which is considered much harder to program.[27][28][29]

On March 9, 2011, some changes were announced for the library. Metadata will not be refreshed every two weeks, because it was making users lost when they saw artworks were changing for no reasons. Metadata refresh will now be done upon user's request. During a library rescan, existing media that are not found anymore will be marked as absent and tagged in a virtual recycle bin, the user can pick the media entries he wants to be removed. Media can disappear for a while between scans without losing anything. Scanning is announced to be much faster. On a crowded library, a scan lasted more than one hour, for a few seconds with the new release.[30] Posters are downloaded in full resolution and not only as thumbnails.

The video library is one of the Plex metadata databases and is, therefore, a key feature of Plex. It allows for the automatic organization of video content by information associated with the video files (movies and recorded TV shows) themselves. The Library Mode view in Plex allows the user to browse video content by categories such as genre, title, year, actors, and directors.

The music library is another of the Plex metadata databases, is an additional key feature of Plex's. The music library feature received a major overhaul with a new release announced on April 30, 2015. That version allows for the automatic organization of a music collection by information stored in the ID3 or M4A tags,[31][32] such as title, artist, album, genre, year, and popularity. If the metadata are not stored in the files themselves, the naming and organization of the music files are important. If the user has a Plex Pass account, the file naming and organization is not as critical as the music will be matched via sonic fingerprinting.[33]

The music library feature brought instant metadata and poster downloads instead of waiting the end of the media scan. Metadata can be edited, multi-discs, multi-selection to remove a whole album content or to move or copy tracks between albums and/or artists has been added are supported. Music videos can be associated to the music library and lyrics or even interviews can be downloaded. The new library allows to rediscover the user's music with suggestions based on the most played media or the least played, but also with similar artists or genres. The library also displays when and where artists are on tour.[34]

If the user has a Plex Pass account, the whole music video catalog from VEVO can be accessed and an extra feature called #Plex Mix is available.[34]

Plex recognizes extra content to a video or music file. In that regard the extra content must have the same filename as the media it complements, but have the basename suffixed with the kind of content it represents. Depending of whether the file is linked to music or a video, the following suffixes are supported: -behindthescenes, -concert, -interview, -live, -lyrics, -video, -deleted, -featurette, -scene, -short and -trailer.[35][36]

Thanks to Agents, Plex can automatically gather metadata information and artwork for media stored in the Plex library. These metadata are fetched from the following sites using web scraping: The Movie Database (TMDB.org) for synopses and thumbnails for movies, TheTVDB for TV showmetadata and thumbnails, Fanart.tv, Freebase, CineMaterial, VEVO Music Videos for clips (only available with #Plex Pass), Last.fm and LyricFind for lyrics[38] and OpenSubtitles.org for subtitles.[39]

Plex had previously a IMDb access, but that access has been removed when the Plex App for iPhone was released. The latter has been so widely used that the IMBD servers crashed. Plex received a letter from Amazon's lawyers (Amazon is the IMDb's owner) who made it clear that that access was a commercial use and therefore Plex had to license it if they still wanted to use it.[40] Also, PlexPro accounts would have been required, as Plex has now a paid version and would, therefore, violate IMDB terms of use.[41]

Access to that database is not officially supported by Plex anymore, but community members have expressed the need to have it since Google, Freebase's owner decided to close its service.[42] Previously, there was access to Online TV Database or even MTV.[43]

Plex supports rich text (accentuated characters etc.) in subtitles and up to two subtitles channels are supported at the same time. Specifying subtitle preferences on an app will be reflected on the other. Plex supports SSA, SRT and SMI subtitle formats.[44]

While DVD playback was initially somewhat working but did require helper applications like Apple's DVD Player, it is not working any more and there is currently no way to read directly content stored on DVD or Blu-ray disks.[45][46][47]

While Plex can access media recorded via digital video recorders (DVR), it does not support recording the content itself. DVRs are only in charge of recording live TV content from cable television for cable DOCIS companies and/or IPTV for xDSL companies.[48] Depending on the services provided by the DVRs, Plex could access the content. Still depending on the offered features, DVRs can also stream content without recording it on a hard disk drive.[49]Tablo (DVR)s are reported to work fine with Plex, because two tablo users, developed a Plex Channel (see #Plugins below) to watch content recorded by Tablo DVRs and even watch the TV, as Tablo does support Live TV streaming. Thanks to that combination of Plex and Tablo, it is now possible to watch over-the-air (OTA streaming).[50][51]

With the appropriate hardware, Plex also supports hardware decoding of H.264 video.[54][55]

Like other XBMC-derived media players, Plex uses FFmpeg and other open source libraries to handle all common multimedia formats. It can decode these in software, using hardware video decoding where available and optionally passing-through AC3 or DTS audio directly to an external audio-amplifier/receiver via S/PDIF.

Plex video-playback uses a video-player "core" which was originally developed in-house by the XBMC developers as a DVD player for DVD-Video contents, including the support of DVD menus. This video-player "core" supports all the FFmpeg codecs, and in addition the MPEG-2video codec, and the audio codecs DTS and AC3.

Content may be transcoded by the server before it is streamed, in order to reduce bandwidth requirements or for compatibility with the device being streamed to. This way, transcoding allows media to be available on the widest range of clients possible over any connection, while without transcoding clients would not be able to read the format because lacking the proper codec or because of performances restrictions.

During the media analysis phase, the Plex Media Server looks at certain attributes of the media (resolution, bitrate, etc.). When a client requests a piece of media, the server looks at the client’s capabilities, compares them to the media parameters, and makes a determination as to whether or not the file can be directly played on the device. This feature is called Direct Play.

Another feature called Direct Streaming allows to change only the container without reencoding the video and music tracks if these are encoded in a codec the destination device can read.

Mobile apps have the ability to define the maximum bit rate the mobile connection is limited to, in order to force the server to reencode the piece of media, reducing filesize and avoiding lags when the piece media is being streamed.[56]

The transcoding feature is reported to not have a good downmixing of 5.1 sources to 2.1.[57]

Plex Media Server can be remote controlled via a web interface. As Plex does support NAT-PMP and Universal Plug and Play protocols, the connection should be automatically configured. While a Plex account is reported necessary to help redirecting port and improve availability, configuring the ports manually does work, but when the users accesses the remote web interface, login and password to a PLex account are required.[58]

Plex Media Server via its web app interface supports SSL. The SSL connection was previously only reachable via the dedicated port 32443, which provided secure authentication but lacked support for encrypting streams.[59][60] Now, simply prefixing https on port 32400 (e.g. https://127.0.0.1:32400/web/) is enough only if a proper certificate and key have been installed in the Network section of the server. Also, SSL is supported for both streaming and authentication, except in a few rare cases when a mobile server has been enabled on mobile applications.[61]

However, this SSL configuration is only valid for users who know how to generate a certificate self-signed or signed by a certificate authority and configure a domain name. On June 4, 2015, Plex announced all connections to Plex will be encrypted as soon the user has upgraded to at least 0.9.12.3 and has connected its web server to a Plex account (#Plex Pass not needed). Plex also announced the user interface for the user's Plex Media Server will also be available via http://plex.tv/web/app.[62]

While the system looks trivial this is technically not the case. When the user connects to http://plex.tv/web/app authenticating to its Plex account, the Plex website enumerates a list of the user's servers and then connect to each of them via an XMLHttpRequest (XHR) to http://1.2.3.4:32400/library/sections. Since the Plex website uses an SSL connection, the XHR connections would be blocked because the users might not have installed a SSL certificate on his/her own Plex Media Server (XHRs are blocked when they load an HTTP link from an HTTPS one). Since Plex could not ask users to acquire a domain name and a certificate just to watch movies over TLS, they had to provide the solution by themselves.

Since Plex Media Servers do not all have a domain name or a stable IP address (a dynamic public IP address or even a local one), the solution had to provide a dynamic DNS for each user. Each Plex user is thus provided with a DNS domain <hash>.plex.direct where the hash part is probably a hash of the user or the server name ID. Each user domain name is prefixed by an IP address. Each user can have several DNS records each representing the IP addresses the user's Plex Media Servers are reachable. Here is an example with the dig command:

where 1.2.3.4 represents a public IP address and 10.10.10.10 a private IP address.

The next step for Plex was to provide each user a certificate. Since each user can have several IPs and thus several Plex subdomains as mentioned above, a valid wildcard certificate was needed. Choosing only a wildcard certificate for *.plex.direct would imply that each user would be using the same certificate and thus the same key pair, allowing a Plex user to decode the content of another Plex user.[63] Also using only a certificate would not provide the ability to revoke a certificate if the user had his certificate compromised or if he/she wants to unsubscribe from Plex.

As this would have been too expensive for Plex to register directly to a certificate authority a certificate each time a Plex user subscribes to a Plex account, Plex had to become a registration authority (RA) (also called subordinate CA). They choose DigiCert to partner with. This kind of offer is often called a private PKI. In DigiCert terms, this is called Managed PKI. In this way of configuration, each user domain name will have a wildcard certificate as *.<hash>.plex.direct. Each user's certificate is thus not signed directly by the sub CA of DigiCert (currently DigiCert SHA2 Secure Server CA) anymore, but by Plex directly (Plex Devices High Assurance CA2) which itself is signed by DigiCert root certificates.[64]

Plex Media Server can be extended using plugins, sometimes called "apps". These can be installed via a kind of "app store", a built-in library of free third-party plugins that allow Plex to download content from websites like National Geographic, NBC, The New York Times, Twitch.tv, Vimeo and YouTube.[5][65] As of July 2016, there are 131 channels available.

This "app store" is accessible either via a dedicated Plex Media Server section called Channels (previously called Plex Online) or via Plex Home Theater, the old Plex Media Player.[43]

While Plex channels are maintained and supported by community volunteers, only those in the Channels Directory are considered as stable.[66]

Even if Plex came from Kodi, these Plex plugins now use a proprietary plugin architecture. They are written in Python and XML. Many plug-ins for Plex Media Server leverage WebKit to display videos from online sources using the same Adobe Flash and Silverlight players that the sources provide for web browsers.This basically means that the server needs to render the streaming video on an offscreen WebKit canvas before capturing it, transcoding it and streaming it to the server. This software chain causes sometimes issues depending on the server configuration, and on the version of the app in the software chain.[67]

However, since January 2014, Plex has been reported to have removed support for WebKit based plugins (like Netflix and Hulu) as they couldn't provide a cohesive experience across all platforms with their new client/server infrastructure.[68]

Plex Media Server via its web-based structure has a RESTful API returning either XML or JSON responses. This API provides a way for clients to browse and manage media libraries, as well as rich transcode functionality for video, images, and audio[69] and synchronization.[70]

While Plex was initially a Mac OS X-only application, Plex Media Server became available for Windows and Linux too.

On May 14, 2011, Plex announced support for Linux. Three Linux flavors were initially supported: Ubuntu 10.01, Slackware 13.1 used in unRAIDNAS devices, and ReadyNAS (NAS from Netgear using Intel CPUs). However it should be working for other GNU Linux distribution or versions, as the C++ code is highly portable and the only hard dependency is Avahi for Bonjour-based network discovery. The Linux version of Plex Media Server is reported to work on CPUs of any speed (except if the user wants transcoding) and the resident daemon only eats 16Mio of RAM.[71]

Support for Windows has been added with the Laika release on October 28, 2011.[13]

On October 5, 2014, Plex added support for translating the media server interface to languages others than English. The localization is hosted at Get Localization and anyone applying either as a volunteer or professional translator can begin to translate the app.

Player apps are Plex's front-end allowing the user to manage and play music, photos, videos and online content from a local or remote computer running Plex Media Server. These are available in several flavours.

This is the web ui of the Plex Media Server. It offers the ability to remote control the server but also to play all types of content the Plex Media Server has access to. It also provides audio visualizers, music and video playlists, screensavers, and slide shows.

It can be accessed via (http://127.0.0.1:32400/web) on the machine Plex Media Server has been installed. SSL is also supported (see #SSL).

The web app client has foundation based on the Cappuccino framework, but was rewritten using Bootstrap framework. Before the rewrite, it was only possible to configure the Plex Media Server with it, but support to view and organize collections have been added. The web ui became a Plex App Client viewer too. The new web app was written by Eric Matthys and Schuyler Ullman, both Plex employees.[74]

The new version was aiming at replacing the old manager for Mac OS X written using the Mac OS X Cocoa APIs and because Windows and Linux versions of Plex didn't have an install wizard while the one for Mac OS X was outdated. The web UI was released for every Plex users (not only Plex Pass members) on November 16, 2012.[75]

The Plex Media Player (sometimes called PMP),[76] announced on October 20, 2015, aims at bringing the home theater experience to a next level by featuring a truly cross-platform, with hardware acceleration and with a consistent user interface across all devices.

This player uses mpv as media playback engine, Chromium for the media browsing experience and Qt for the multiplatform glue between the media engine and the Chromium web-based interface.[77]

With this player, Plex plays the open source game. Plex have helped FOSS projects on which Plex relies on. Plex contributed to MMAL hardware decoder for the Raspberry Pi[55] and brought improvements to Qt.[78] While Plex Media Player is reported to be open source and its code available on GitHub as GPLv2,[79] not the whole software is actually open source. Only the host parts of the application (mpv, chromium, Qt and the glue between them) can be contributed. The UI cannot be modified nor corrected by the communities if there are issues. That UI is even downloaded as a binary bundle from Plex servers when Plex Media Player is being compiled.[76]

Plex Media Player is developed nearly exclusively by the German, Vincent Lang (@wm4), the primary contributor to the mpv project.[77]

Plex Media Player is as of July 2016 in early preview and requires a Plex Pass subscription to access pre-versions of the software.[80] It is compatible with Windows 7 and upwards, OS X Mavericks and upwards, embedded platforms like the Raspberry Pi 2 (the Raspberry Pi 1 is not supported due to both performance and resource limitations) and Intel NUC.[81] While Linux is not clearly cited, since Raspberry Pi and NUC uses Linux-based distributions, Linux is compatible.[82][83]

This client media player was primarily programmed in C++, and made use of the Simple DirectMedia Layer (SDL) framework with an OpenGL renderer. Some of the third-party libraries that Plex Home Theater depended on was written in C, but are used with a C++ wrapper and loaded as shared libraries when used inside Plex. Since Plex Home Theater was based on XBMC Media Center it shared its flexible GUI toolkit and robust software framework. With themes based on a standard XML base, skinning and personal customization which was very accessible. Users could create their own skin (or simply modify an existing skin) and share it with others via third-party public websites for XBMC skin trading.

On October 28, 2011, support for Windows was announced for Plex Home Theater. That release named Laika had its code rebranched with the latest stable version of XBMC, brought integration with Windows Media Center, A/V sync corrections, support for optical media, for 10-bit video (Hi10P), HTTP Live Streaming and huge changes with regard to episode management of TV series, reducing the time to access content and offering media depending on the context and on the episodes watched.[13]

The Laika release came with a new skin. Plex Home Theater was originally using a modified version of the "MediaStream" skin as its default skin, a skin that was originally designed by Team Razorfish for XBMC.[85] Sebastian Pitkanen, the author of the Retroplex skin,[86] one of the most popular third party skins, updated the Plex default theme for the Plex release codenamed Laika.[13] Pitkanen is now a Plex employee.[86][87]

Plex announced an application for the Amazon Fire TV, the same day it launched i.e. on April 2, 2014. It was first announced as a $0.99 USD application, but now the same limitations as the other apps apply.[88]

Six months after the iOS app release, on February 16, 2011, Plex announced its Android counterpart application, but without the same restrictions for free users as the iOS counterpart.[89] That application was nearly in part with the iOS version in terms of features, except the remote control feature is absent and the UI was not optimized for larger screens (i.e. tablets) yet.[90]

On February 11, 2013, a complete Android app rewrite was announced, targeting Android 3.2 and newer with its new Android Design Guidelines, and using new platform feature like Google Cloud Messaging, lock-screen music controls, global search integration. The new app integrated features like Mobile Sync, still called PlexSync at that time.[91]

On June 25, 2014, support for the Android TV platform has been announced, just on time for the launch of the Android TV platform, announced the day after at the Google I/O. The Android features specific to the TV have been integrated like a redesigned home stream and voice control support.[92]

The app received basic trailers and playlists support on July 31, 2014.[24]

The original Apple TV (2007) didn’t support any apps beyond the ones Apple provided. The second generation (2010) allowed to have a barebone third party Plex app to be installed, not with ease, and only if the device had been jailbroken first. The two people responsible for this hack were hired by Plex afterwards.

In 2013, three contributors found a way to install unofficial Apple TV channels using a DNS trick. That project was called Plex Connect.

With the fourth generation of Apple TV, third-party developers could write their own applications, removing the main limitations of previous models (see #Future above). This application was built in just 5 weeks, from the moment Apple released the new Xcode and API documentation. Apple TV applications can be developed using TVML for the UI or native code. As using native code would have required too much time to develop for the UI, Plex combined advantages of both worlds making a bridge between TVML and native code. XML is sent from the Plex Media Server, and converted to TVML using XSLT.

An iOS application has been released on August 30, 2010 and provided a way to use iOS devices to remote control a Plex Media Server and view media on the iOS device.[96]

In March 2011, a massive Ui refresh has been performed: new grid views, improved UI around channels, removing second level menu and replaced by filter list. The iPad version got rich new views and tweaked typography. Support for TV Out, AirPlay, multi-part media, image caching, subtitles and audio stream selection have been added to the app.[97] Setting a subtitle in iOS will be reflected on other Plex app players.[44] A search-as-you-type feature has been implemented. Results from the Plex Media Server appear nearly instantly. Integration of search results from YouTube and Vimeo have been integrated thanks to a partnership with Videosurf.[98] As that company has been bought by Microsoft, Videosurf's features are not available anymore.

On November 19, 2012, the Plex Pass feature Mobile Sync was implemented on iOS first.

On August 10, 2015, Plex announced a complete rewrite of the app supporting the new features of Plex Pass like Mobile Sync, Cloud Sync, Plex Home, Plex Mix and music and video extras. Despite the rumors that the app was to be completely written using Swift, it is still entirely written in Objective-C. This new version requires iOS 8.1 and upwards.[99]

The app is free but has several limitations: streaming either video or music from Plex Media Server is limited to only one minute and photos will have a watermark added.[100] In order to unlock full functionality, the user can subscribe to a Plex Pass (requiring a monthly 4.99 USD fee) or purchase the app with a one-time in-app purchase (4.99 USD fee) without having the benefits of Plex Pass though.[101]

The app received basic trailers and playlists support on July 31, 2014.[24] and an update to support text based subtitles on December 23, 2015[38]

On September 2, 2010, Plex announced a partnership with LG to integrate the software component into LG 2011 NetCast™ enabled HDTVs and Blu-ray devices.[11][15][102] Now, only NeCast models from 2013 and models running webOS are supported.[103]

Plex actually began to work on the PlayStation before developing the Plex app for Xbox One. They accelerated their work after a request on the Plex Pass forums became the number one request. Plex announced their apps for PlayStation 3 and PlayStation 4 on December 17, 2014 and were available the same day for Europe and most of Asia. USA needed to await the deployments made by Sony.[105] The app is completely free.[38]

With regard to the formats supported, the app on the PlayStation 4 supports a maximum 1080p resolution. The PlayStation 3 is limited to 720p when Plex is installed through a SCEE (Sony Europe) PlayStation store. The app supports MP4 as container, H.264 (level 4 or lower) for the video decoding, AAC (m4a) for the sound decoding, all with a maximum bitrate of 20Mbps (do not overtake 8Mbps is recommended). DTS Audio and MKV container are however not supported.[106]

On May 3, 2011, Plex announced a client app on the Roku, available simply by log into the Roku account and installing the private channel named Plex. The app has been written by the developer Jonny Wray. Only video was supported at first. Support for music and photos was part of a later release.[108]

A new version of the app supporting new Roku devices (Roku 1/2/3, Roku Stick, and Roku TV) has been unveiled on February 24, 2015. The app has been written by an old Plex contributor, now Plex employee, who initially created the Roku channel.[109]

On August 3, 2012, Plex announced support for Samsung TV and Blu-ray players. The app was developed by hd1080 and Orca, two Plex community members, and has an eye-catching UI, native support for external SRT subtitles (without transcoding), and 3D support.[110] Samsung Smart TV / and Blu-ray players (C-Series / D-Series / E(S)-Series / F-Series / H-Series) are supported.[111]

On July 20, 2016, Plex announced their product is now compatible with Sonos devices. Users have the ability to stream their entire Plex Music collection on their own Sonos devices.[112]

The app called "Plex for Sonos" is available as a beta. The users need therefore to register to the Sonos Public Beta Program first and then add the "music service" to their Sonos Controller either via the Sonos webapp or their mobile apps. Plex remote access needs to be enabled for using Plex for Sonos.[113][114]

On October 15, 2014, Plex announced a partnership with VIZIO in order to have a Plex application on these devices. The Plex app is available on Vizio TVs from 2013 E/M series with Vizio Internet Apps Plus, or 2014 E/M/P series, or future 4K ones and onwards.[116]

On March 30, 2012, Plex announced the availability of Plex for Windows Phone. The app was developed partially by Elan Feingold and another coworker.[117]

On December 4, 2012, Plex announced a client application for Windows 8 using the new Metro interface. The library looks similar to the Windows 7 phone app. It was first available as a paid 2.99 USD version, but is now free with the same limitations and the same fees to unlock the features as the iOS app.[118][119]

Initially unveiled as myPlex on October 28, 2011, the Plex account aims at 3 main purposes, in addition to providing access to Plex forums.

Facilitating the connection between a Plex Player App and a Plex Media Server without the hassle need to play with NAT, port redirection, etc. The user simply needs to sign in on his/her Plex Media Server with his/her Plex Account, and do the same on the Plex client apps (e.g. iOS, Android,...), and the connection is done. This is even working with multiple Plex Media Servers in multiple locations.

Providing a watch queue. The user can bookmark a video (local or on the web via supported websites) to watch it later. The queue is available on all clients connected to the user's Plex account. The following features are supported: saving the progression in TV series, stopping a media on one client and resuming it later on another.

Sharing personal media with friends. This feature is offered by specifying an email address or a Plex account username. Zero additional configuration is needed. Any client connected to the users's Plex account can browse and play the shared media.[121]

Plex announced on August 28, 2011 a premium version of the service, called Plex Pass, which offers the following advanced features.[122][123]

Due to increasing premium features and content, the cost of Plex Pass was initially 3.99 USD / month, but increased to 4.99 USD / month. The annual subscription and especially the lifetime subscription increased too. The lifetime subscription was reported to be unsustainable at such a low price. The new prices were due for new subscriptions from September 29, 2014.[89] The prices appear to have a 1 USD = 1 EUR ratio.

In order to give Plex some latititudes regarding business sustainability, the Plex Pass might require additional costs if the user wants to have extra new features which could be introduced in the future and the current price do not cover.[89]

Previously known as PlexSync and announced on November 19, 2012,[70] Mobile Sync is a feature offering synchronization of movies, music and photos with mobile devices either on the local network or via internet. The speed depends on the upload rate of the bandwidth connection.[122]

The feature is especially useful when travelling offline or without a broadband connection. The user can sync partially its movies, music or photos collection to his device, in a format readable by the latter (see #Transcoding). View progression of episodes are synced back to the Plex Media Server when a connection is available again.[70]

The reverse side is also supported with the feature allowing to sync videos, photos and music from a mobile device to the Plex Media Server.

The synchronization does support filters. The user can sync everything, limit based on duration on movies already watched or media that has just been added. The synchronization is quite smart with the server already transcoding files when similar content has been watched or already synced.[70]

Accesses to these cloud providers are defined, revoked and organized in the Plex account on the Plex website. The order of appearance of these accounts are important because items will be uploaded to the cloud storage providers in the order in which they are listed.[126]

The feature offers the ability to specify multiple storage providers at once, but Plex currently only supports linking to a single account from each cloud storage provider. This means the user can only connect to only one Google Drive account for example.[127]

Individual limits can be defined for each account. These limits can be storage limits like "leave 25% of free storage on the account" or be more advanced like "only sync the newest 20 movies I added to my library".[128]

This synchronization feature allows the Plex Media Server to be shut down completely when the synchronization has finished. The client's apps will be automatically aware of that and stream content from these online accounts instead when the file is available and stored there. When the media server is online again, the progression in episode views will be synced back to the server from the viewer apps.[128]

The Cloud Sync feature is not intended at streaming content directly from these external storage places without having the content locally on the Plex server first. It is not intended at uploading entire Libraries or even really large sync selections, but more specific content instead.[129]

Plex Mix is a feature allowing music mixes based on moods and lyrics. The music files are automatically fingerprinted and matched against online database to grab up to date high quality metadata like the cover art, artist biography, mood and genres tagging and album extras.[34][130]

Plex Home is a feature allowing to have advanced multi-users mode and fast switching between users. This feature is accessible from the Plex Web App. The first user of Plex is considered as the admin and can create, modify and remove other users. A maximum of 15 additional users can be created. If Plex Home is enabled, each app, device or tool communicating with the concerned Plex Media Server will need to be signed in a Plex Account and the server will have DLNA disabled. Each user can be customized, and managed with fine-grained access controls. A PIN code can be used to switch faster between accounts. Each users inherits the Plex Pass benefits from the admin. This feature is particularly convenient in a family when a member wants to watch a movie while another wants to watch another TV series episode for example.[131][132]

Access to high quality movie trailers, cast interviews, and other extras for movies in the library is a feature added on July 31, 2014. The feature also allows to select the number and the kind of trailers to read (the DVD version or the Blu-Ray disk for example).

This was the most requested feature among Plex Pass subscribers. At launch, this feature was fully supported on the Plex Web App and in Plex Home Theater, with basic support for Android and iOS applications. Full support to these platforms and others came in later releases.

This feature release marked the first time Plex Pass subscribers received licensed content. In that regard, Plex reserved the right to impose viewing limits in the future.[24]

Access to discounts on partner products and early access.[122] Plex will make available the feature still in testing to Plex Pass subscribers first. In that regard, Plex Pass subscribers have access to dedicated forums to discuss these new features and will have the opportunity to report bugs about these features.[123]

On July 2, 2015, Plex revealed the machine hosting their blog and forums had been compromised. Personal information like IP addresses, forum private messages, email addresses and hashed and salted password have been accessed. This access was gained via a 0-day vulnerability in their forums software.[134]

Following this intrusion, Plex decided to migrate their whole forums to Vanilla Forums, reducing the sysadmin maintenance and security burden self-hosting their forums represented. The new forums provided advanced features like instant search.[135]