when you have a StreamBox located somewhere in the world it is usually short in storage capacity. From 500GB to 2TB is the usual storage size. It would be good to have a mechanism to show remote server media and pick one or more media/folders to be tranfered to the destination server. At the same time a deletion policy for media on the destination server should be implemented to make space for new uploads.
The server owner should be able to let choose media to request to user which share the destination server library and have permission to show the remote source/library (with limitation)
I am takling about local Plex libraries whose content is remotely stored. The user should be able to select this situation on library creation. The main server should map all media owned by the user on a remotely mapped drive/(cloud/ftp?). The mapped content should be considered "on request". The user should be able to browse the library content thumbnails with a simbol on its each remote media which means "to be downloaded". Then the user could click on it (one or more items) and the server will start a backgound tranfer to a local folder (configured at library creation) and warn the user once completed. Then the media thumbnail will be like any other media on local libraries.
A simple policy for discarding media once space assigned locally to the remote library is exausted should be implementd.
I think it is quite simple as concept. Hope I have been able to explain it correctly.
This seems more like a way to share media.. IE files are stored on a clod based file share and users can download the items they want to watch.. I can think of one example where this may be useful.. My brother in law has access to my server and he could tell his local server ot HTPC to cache a copy of a movie that he may want to watch later that night. The PS3 does this with some of its purchased content.
the part that i don't understand is the remote deletion policy. This is more of a scenario where the OP is using a remote serer for file retrieve, like of usenet, storing those files in cloud storage then slowly moving them to his local storage. I know some providers do allow this, but since each provider is different it would be hard to implement.
the other component is where is the media library stored and how is it updated? either the cloud storage would have to run a light version of Plex, which the local server would tie into its data service, or the local server would have to periodically scan the remote storage for changes. If your talking about multiple users / local servers the first option would make the most sense.
All in all IMO this is more of an external tool then something that could be built into Plex, except for the one scenario i mentioned.
the usage scenario is the following: you have a remote server where you have upload bandwidth for 10+ friends but very low storage space. You have storage space in your in house server but there you have bandwidth only for 1 friend. This is the tipical streambox scenario. Usually streamboxes start from 100GB of space where in house you have many TB.
Implementing this mechanism your streambox server will get from your private library the requested movies which otherwhise could be not streamed due to lack of bandwidth.
Distribution line:
PRIVATE SERVER (TB of media) -> STREAMBOX SERVER (GB of Media) -> Friends/Relatives
(Low bandwidth) (High bandwidth)
Please note: I am not asking for a way to let end user download media. Streambox server is your server located on an high capacity data pipe.
I get what you're asking for now. I personally don't see this happening EVER for Plex as a built in function however. This would cause havoc on the scanner and meta-data.
You could however set this up outside of Plex with some scripting/limited programming yourself. A web interface with your media listed. Users chooses move/show and the system starts to download/ftp the file from your home system to the Plex system "download directory". After it's downloaded fully you move it to movies or tvshows (which ever) and force a library update.
File becomes available for viewing. Once you kick off the the library update you could also email/text the person to let them know the media will be available in a couple of minutes.
You could also explore using the Cloud Sync functions of Plex and/or open an Amazon Cloud Drive for $59 a year and upload your media to it. Run a Windows version of Plex in the cloud and install NetDrive pointed to the ACD which will mount ACD as a drive letter which Plex can use.
IMHO, they are probably the best options short of either:
1) getting more bandwidth to your house and running the Plex server there (might not be doable)
2) get more storage space at your hosting provider
your is a good solution, it requires some off-plex programming and I don't have the skill. The same I suppose it is for a lot of other user. Probably you are a programmer which have this kind of expertise ;-)
I have changed a little my mind about the original proposal "let 2 plex server comunicate". Actually it is: let the Streambox Plex server access a remote directory on a mapped drive/cloud service/ftp and let it download the files locally when needed. No inter server communication, it would be too complicated !
About metadata: metadata are stored in the local database, isn't it ? When Plex show a library I suppose it accesses this database and another file database, I suppose.
Well, if it is the correct scenario you have to add:
1) A global flag "files stored remotely" on library configurations
2) The remote path of the files as you currently have the local path
3) The remote and local path for each file on the media database
When Plex display a library content it accesses both file and metadata info. Each file which has no local path should be grayed in someway to inform it is not in place and should be downloaded. If the local file path has been filled it mean the file has been downloaded (Ok, the file could still not be there for other reaseon but a rescan will then be needed).
A last word: everything seems simpler when you are not the programmer of an application but they are not so terrible and complicated as sometime they seem (I hope :-)
Regards,
Giuseppe Chillemi
PS: I am from Italy, 2Mbit max upload stream here if you have not a good fiber connection :-(
If both plex server and storage is running linux you could use NFS to map the storage to the plex server.
I don’t know exactly but I dont think it would take so much extra bandwith, just when scanning libraries or when watching something that is on the storage Server.
Edit: never mind, missed that one server didn’t have enough speed for direct play
The biggest problem I see with any of these "solutions" is the scanner process. Plex has to be able to "read" the files in order to build up the information about each piece of media. As an example pull up the "INFO.XML" file for any media file and look at what is being tracked by Plex. Plex also creates a "hash" checksum of the file which is stored in the database and this requires the file be read.
So besides having a fast pipe between the servers (and wouldn't need this features then) it would almost take a complete overhaul of how Plex internally works and I don't see that happening!
So I'd still fall back to thinking the best overall solution that would presently work, would be the external mechanism that can FTP/transfer files in a queue based on user input outside of Plex.
Out of curiosity, have you checked out the features of Cloud sync? In a nutshell your home computer would/could upload streamlined versions of your media to a cloud provider. You then share the "cloud library" with friends. External users still point to your local Plex server where you keep control but play back media from the cloud instead of your local plex server.
I think reading over this the request could be implemented in the following fashion and be useful for multiple people in similar scenarios. If we leave the server to server communication out of this we can then use the built in function of Plex home theater to browse remote libraries. This solves the issue of meta data, who does the scanning and where the data lives.
The issue is then bandwidth. As i mentioned i know the PS3 will cache a full movie so you can see it in full HD even though you have limited bandwidth. The feature i would suggest is that Plex Home theater could do the same for shared content. Plex could encrypt the data so that it can be saved locally or played out side the home theater client but give a user the option to download, or sync a local copy to their box. If im correct plex already will allow this function on mobile devices.
I know the issue is then accessing multiple servers / libraries via the home theather client, but there is already a suggestion on the board to have shared content and local content shown side by side.
BTW if PHT already does this sorry for the duplication. I only use plex server and the android client.
There is a HUGE problem here with bandwidth that you seem to have missed.
If your problem is that your local server doesn't have enough upload speed to maintain more than 1 user & your remote server has infinite download speed, unfortunately it is capped to 2Mbps as it has to download FROM your local server. a 1.5GB film will take roughly 2 hours to download. A 1080p film at 10GB will take you about 11 hours. thats an awfully long time!
So your users have to choose what to watch between 2 and 11 hours prior to watching. Except thats only if only 1 file is being uploaded at a time, lets say Jack and Jill both want to watch a different movie tonight. 20GB of data to upload will take 22 hours. We're at 2 users and already waiting a whole day before we can watch a single file!
Users can watch the SAME file without issue, but then its just an ordinary plex server with minimal space, and therefore minimal files, which is obviously an entirely different conversation.
You can't get around a bandwidth problem like this, because your bottleneck is still your local upload speed.
Sorry, its a very exciting idea, unfortunately the math doesn't work out.
time in this scenario is not the problem. If you adopt a select "select your next film now and view tomorrow" approach everyone will know there will be a max 24h time to download 1 movies.
I don't want to create and huge "on demand" system. I have 7/9 concurrent viewers, that's my family.
An upload policy scheme like "max 1 movies in 24h" could avoid an user select 1000 movies and hang the whole system.
In this scenario, downloading the movie from a remote low bandwidht drive/ftp will absolutely work.
I gave a look at plex sync. I like this option. It is able to archive what I have requested with a little modification:
If you have a VPS or a streambox there is no need to use the clouds. You are the cloud ! A simple sync-ability to a remote FTP or mapped directory would implement what I am asking for ! Then the users client could access this as the source of the file.
A little explanation:
NOW:
PLEX SERVER SHARED LIBRARY -> SYNC -> CLOUD PROVIDER
Users playback from the cloud
Becomes
PLEX SERVER SHARED LIBRARY -> SYNC -> MY FTP or MY REMOTE DIR
Users playback from MY FTP
Ok, I like this solution even more than the original one !
You say 7 - 9 concorrent users. So i assume in the average day at least 5 of them want to watch a movie?
Unfortunately to download 5 movies (for 5 different users) will take over 50 hours. thats just 5 people each wanting to watch 1 movie.
But this means that in every 24 hour period you add on over 24 hours of download time, meaning the time remaining will always increase.
Day 1: 50 hours remaining before selected movies are available
day 2: 76 hours remaining before selected movies are available
day 30: 780 hours remaining
day n: 50n - 24n
the only way for this to be useable is if only 2 movies are downloaded per day. Or about 11GB of content per day Not per user but amonst all 10 users. Which removes the ‘on demand’ idea. Since if 3 people want to watch a different movie who decides what to watch? you CANNOT upload more than 11GB per day from your home server this is an absolute cap and only changeable by increasing your upload speed.
A better idea would be you just rsyc your ‘most recent’ files to your remote server. this way your family has access to the most recent stuff like ‘last 30 days’. You can do this using a simple cronjob with rsync and the -mtime command in find. And then they only see what is already available on your remote plex server.
Meanwhile you can access your full plex server as normal