Plex has many very cool features but it also has a long list of problems. Some of these problems include Marketing Based Issues, Policy Issues, Architecture Issues, Client Side Issues, Server Side Issue and lack of focus on what present customer need/want.
I must say I think I was happier with Plex overall a year ago (+ or -) then I am at present. Yes we have many new features, but the percentage of things working correct is less than it was a year ago. At a high level:
SYNCING:
We have new SYNC functionality for devices and cloud storage. This item covers multiple issues. How it works vs how it was ORIGINALLY marketed are two very different things. It is clearly poorly architected and designed. The "functionality" in the current release version isn't even up to what I would consider "prototype" material from any dev team I would run. It's more of a "proof of concept".
At a high level, why would anyone design a system that has to do all transcoding before starting any uploading? This is bad on so many levels I just can't believe it was done this way. It doesn't take advantage of your bandwidth as this is probably the biggest limiting factor. Why would you not want to transcode the first file and get it uploading before moving on to the additional files. At present if you select 50 files to upload to the cloud you have to transcode all 50 first (and have the needed storage space) then upload all 50. It should have multiple "queues" where one queue is doing transcoding and another queue is doing the uploads for files ready. At present if anything goes wrong you must START OVER which is absolutely crazy!
Another example of really flawed logic is syncing X number of shows. So lets assume you want the last 10 shows available for a particular series. You add a new show. You would expect it to remove the oldest show and add ONLY the new show. Nope, it removes all 10 shows and then retrancodes all 10 of the newest shows then uploads them again. So it completely wastes 90% of the CPU time doing encodes and 90% of the bandwidth doing something that was already there.
When you watch something on a device the watch flag is never set on the server to show the user it was watched. So it never SYNCed back to the server. Hence SYNC doesn't really "sync".
The list goes on, but it's just one of those "what were they thinking" when they designed this type things. Anything to do with syncing needs to go back to the drawing board and get done correctly. It also needs to be able to support a users full library. If I want to sync 10K videos then so be it. If it handles one file at a time and can "skip" problem files and continue then this should be fairly trivial.
HOME and FILTERING:
Filtering is "half" done. Right now it only support positive filtering and no negative filtering. This is crazy. As an Example if I want to FILTER OUT 10 movies from my 4K list of movies I CAN NOT just tag the 10 movies and then add this to a negative filter (don't show). Instead I have to do something to the other 3990+ movies and then INCLUDE that tag. From a code standpoint this would be VERY EASY to do. Just compile the list of videos matching the positive filter then eliminate those movies matching the negative filter. Yes it would need 2 or 3 new fields added to the "filter" list but it's well worth it. At the same time the wording should be changed to show "tags allowed" and "tags not allowed". Negative filters ALWAYS "trump" positive filters.
Home is great if your setup fits Plex's overall design but a couple of things are goofy. For example a person can only be a member of ONE home system. Why? Many people will/could use the feature of being part of multiple homes. I have 2 kids, one living at home and one at a University. I have a Plex system and also have one setup at their mothers house (divorced). The kids alternate houses. So both of them have to choose which system to be part of home. This means they can't sync (when it works), can't easily track what is watched correctly (different if on-lan vs off-lan), etc. My daughter wants a Plex system at college now so she would want to be part of 3 homes. This might be "beyond" the goals of Plex but why? If it was designed correctly this would not be a problem. Instead of home users being associated with the "master plex" database they should just be normal users. Then on the server side you tie/tag the normal user to a HOME user. Done, simple and super scalable. <-- objective of "home" users should just be simple account switching and to get "plex-pass" features.
The login for Home users is not uniform. On every device it should be a main menu option to change users. Sort of like the Web interface (ie Netflix style), but it doesn't work this way across all clients. For example on an xBox it's tied to your live account. I don't want to have to change xBox users for someone in my house to change plex users. I want my dad or son to be able to switch users inside Plex and never touch the xbox live account. If they log me out of live then I can't receive SKYPE calls or any other functionality setup for my xbox live account. They then can't watch live TV through the xbox either because I didn't set tv for other accounts. Even if I did set this up for each account I'd then have to manual keep the favorite channels setup/synced for each account. This makes my life much harder when it's not needed.
If I want to use the web brower or PHT on windows and I want to switch users I'm not forced to log out of windows, then log back in as another user to use Plex. Could you imagine this? Why should any client work this way?
So for devices like PS4 and xBox keep the UNIFORM login approach and AS AN EXTRA OPTION if you want, allow it to be tied to a live account. Let the user switch away from the normal universal login in the config.
Not specifically home related but sharing related. I run two servers with different libs. When ever I add new users and add the shares from both servers, users get two different invites (1 for each server). This should not be needed. It's confusing to end users and only 10% except the 2nd invite without support from me. What happens if I'm running 6 servers? Why can't the user just except an "invite" from "me" and then any servers I add are automatically added to their account. It should work the same as if I added new libs to my main server (or only server).
PLEX-PASS LOGIN ISSUES
Many new client releases now require the check to see if the logged in user has a plex account. Android, xBox(s), PS4, etc. This is BAD and is causing lots and lots of issues. When xBox or Plex is doing any type of maintenance or having a problem or there is any type of internet issue this client is dead in the water. This is ridiculous when/if both the client and the server are on the same LAN. I should be able to pull my internet connection and everything in my house should continue to work (for a period of time).
Plex needs to cache this information in an encrypted format on each server the client connects to or at the very least any server where the client is in the same subnet. This information could be cached for 2 weeks or up to the expiration date of the plex-pass account (monthly users). The client then checks for a local server as the first connection attempt and pulls the credentials from the local server. The local server updates this information daily as the server is normally connected to the internet. But if there are any issues the client is good for a period of time like 2 weeks. This would get rid of problems associated with xbox live/ps4 DDOS attacks, Plex maintenance windows, Amazon or Internet issues. If the user is a "shared" user without their own server the client should remember the servers it connected to previously and be able to get credentials from those servers.
MARKETING and PRODUCT RELEASES
There should be more of a standard as to what clients are available with a plex-pass account vs those you can't get with a plex-account. Some of this doesn't make sense. Why is android included but not iOS, windows? I chalk this up to be more of a marketing issue and there should be a standard which will cause less confusion for users in general.
There should be a MINIMUM set of features that every client must meet before being considered a RELEASED client. It's fine to release plex-pass early previews but keep them labeled as such and not as a released client. Examples: Client must support TV Shows, Home Movies, Movies, Pictures, Music and must support all the normal filtering and searching. Client must include main windows user switching. Client must support SYNCing if appropriate (not on game boxes). These are just examples of course. But it's frustrating to users when they see PS4 and xBox RELEASES when they only support a very minimal subset of core feature that are expected to be part of any Plex client.
POLICY CHANGES
We are all aware that Plex does not give out a development road map. This is sad because the real looser is Plex itself. The dev/design team does not get any feedback from the people using their systems in the real world. Take for example the SYNCing. Does anyone NOT THINK this would have been designed/delivered differently if the users of Plex could have contributed in the feature planning stages? Same with HOME or FILTERING.
I realize Plex has reasons for not wanted to release a road map to the general public but that doesn't mean that some users couldn't be selected to participate. Imagine if 10 to 20 (even 5 to 10) plex users were selected and signed NDAs, given a private forum and were able to participate with developers/designers. Many of the "little" things would get caught in the design phase before a line of code was ever written making a better overall product for everyone and saving coding/design time because it was done correct the first time.
On a more general topic of road map. Maybe a change in policy that would work for both Plex and users is that NEW features are kept in the dark as they are now (expect for the NDA users) BUT existing features/bug road maps are shared. This doesn't mean timelines are given but there could be more transparency with what is worked on with existing features and bugs. Going back to the earlier example, what is being done to "fix" syncing on both devices and the cloud. To many people, this feature set is "junk" and doesn't work. This leaves a BAD IMPRESSION on users. But maybe if we knew certain things were being currently worked on OR in the pipeline it would "sit" better with customers. Same with the very long standing issue of plex security. This is not a feature and there should be much more transparency as to what is being done to fix it. Being told it's being worked on is getting old. This is more than 1 year old and all Plex systems are at risk.
SERVER MANAGEMENT or LACK OFF
There are many, many things that are lacking in server management. How can it be that a "server" has no control over the amount of streams a client can have at one time or the amount of bandwidth or the types of transcoding that are allowed? How can it be that the operator can not control who is and who isn't allowed to download files? How can it be that channels are not usable by any other user than the OP? The list goes on and on...
I almost wish it was mandatory for each Plex employee to have to setup Media Portal, Media Browser 3 and Subsonic to see how these types of back-end issues are addressed. Hell just use Subsonic as the base to play with. Not the greatest interface but they got most of this stuff correct from a management standpoint.
SUMMARY
There are many terrific features in Plex and I don't want this post to distract from this fact. However, I just feel that Plex could be so much better if some of this issues were addressed.
Am I over-reaching? Asking for too much?
What do you guys think?
Carlo