Chrome doesn’t come close to the picture quality of that provided by madvr based players such as MPDN or MPC-HC. This is a modification that adds another play button to the web interface which launches your selected media player with the item you selected to play in Plex. It’ll also make it as viewed but has the limitation that it can’t seek or set partial views. Its tested and built for Windows and Chrome but might work elsewhere.
I’ve wanted this feature implemented for years! THANK YOU!!!
I am yet to try it but I will shortly, a couple of questions however:
Is the TamperMonkey script supposed to be installed on the PC running the Plex server or on the remote clients accessing the server? Or both?
…OR does this only work on the same PC that the server is running on? i.e. I have two computers. The first computer stores all my files and runs the Plex server and the other computer is connected to my home theatre. At the moment, if I want to watch something on the second computer I access a shared folder on the network and use MPC to open them.
Thanks!
Just on your client computer, it pulls the path to the file out of plex so ideally you add network shares to the plex server even if its a local file then it should just work. You can hack the script to replace paths if you don’t want to do that I guess!
I have most of this figured out, but stuck on “Install the agent using the installer.”
by agent, i assume the github folder called agent? Where is the installer? more so, on windows… no .exe or .msi anywhere.
running the file PlexExternalPlayer.js in command prompt just kicks back and error; “C:\PlexPlayer” is not recognized as an internal or external command. I placed the contents of the github repo @ C:\PlexPlayer and ran in command prompt as admin: c:>PlexPlayer c:\PlexPlayer\PlexExternalPlayer.js
I have the 2 extra buttons in plex, Play Externally - broken (does nothing) and “open containing folder” - broken (does nothing)
file paths are all \server\folder\movie\ in plex.
stuck.
On the Github page there is the releases tab, there is an installer on there. It’ll not do anything until you install the agent.
Also do not run the file using the command prompt, install the tampermonkey browser addon and it uses it.
@kayomani
Thanks for referring that release tab for the windows executable. maybe reference that in the instruction line of the readme.md?
Installing the agent with anti-virus enabled had a slew of problems. recommend disabling anti-virus / add plexesternalplayeragent.exe app to ignore scan list of whatever anti-virus app users may have. it breaks for me otherwise.
I have the script setup with chrome / tampermonkey and the script is enabled. I have plexexternalplayeragent installed and running as administrator just in case. I have net framework 4.5 installed fully updated. I do have the 2 extra buttons in my plex web interface.
I refreshed my plex page. I SHIFT+F5 Refreshed my plex page. I closed and reopened my browser to plex web. I loaded plex web via the IP address of the machine its installed (on local computer) and as localhost. I fully rebooted the computer, and ensured both the script and agent where running before loading plex web.
Buttons do nothing.
plex file path example:
\SERVER\TV_Shows\The Show\Season 3\The Show S03E03 Episode Tile.mp4
should work? file path issue? naming issue? other suggestions?
Thanks.
Really surprised you are having AV issues, what do you use? I’m not going to recommend people disable their as its not something people should encounter. Are you sure its not talking about the firewall (You need to let it through).
Could you bring up the dev tools in chrome (f12) then click the play button and put here what it says on the console. I am going to guess you have a firewall issue perhaps. I really need to add a UI for errors at some point xD
here’s the data you requested: looks like 2 lines of output. right after clicking external play.
Plex External: Playing \\biologic-server\Anime\Anime and Cartoon Series and Shows\Phantasy Star Online 2- The Animation\Season 1\Phantasy.Star.Online.2.The.Animation.E01.avi
Uncaught (in promise) Object {readyState: 4, responseHeaders: "", finalUrl: "http://localhost:7251/?protocol=1&item=%5C%5Cbiolo…tasy.Star.Online.2.The.Animation.E01.avi", status: 0, statusText: ""…} index.html:1
I have updated to the userscript so it gives notifications including errors. I am going to guess it’ll say it can’t connect to the agent.
Could you ensure you have the icon for the app in the task bar, check the windows firewall (http://www.c-sharpcorner.com/UploadFile/6cde20/allow-applications-through-firewall-in-windows-8/), if your AV also has a firewall you could also check its allowed through and/or also try turning it off whilst testing it.
Sure, tested with a fresh setup that includes your updated userscript.
Windows firewall has Plex External Player Agent allowed. Anti-Virus disabled.
GET http://localhost:32400/ 406 (Not Acceptable) [Connections] [Anonymous] is unavailable at http://localhost:32400/ (Status 406) [Connections] All connections to [Anonymous] failed [Connections] Retrying connection tests for [Anonymous] in 10 seconds [Servers] Found all servers = Primary Server, plex.tv [Connections] Testing all 1 connection(s) for [Anonymous] [Servers] Waiting for initial servers = [Anonymous] [Connections] Testing connection for [Anonymous] at http://localhost:32400/ Plex External: Playing \\biologic-server\Anime\Anime and Cartoon Series and Shows\Phantasy Star Online 2- The Animation\Season 1\Phantasy.Star.Online.2.The.Animation.E01.avi Uncaught (in promise) Object {readyState: 4, responseHeaders: "", finalUrl: "http://localhost:7251/?protocol=1&item=%5C%5Cbiolo…tasy.Star.Online.2.The.Animation.E01.avi", status: 0, statusText: ""…}
That’s a full chuck of code, from Chrome Browser console when i load plex/web to the episode, then click external play button. Nothing happens (broken).
any of that still helpful? seems the same as before when i clicked external play button.
Go to url on this page:
Does it do anything? Not completely sure you are using v1.4 of the script as you shouldn’t be able to get uncaught promises anymore, did you refresh the page after updating?
Do you use any sort of proxy?
Is it possible to launch agent on OSX ?
It should work using mono if it doesn’t let me know.
I will eventually be able to do a native osx app once dotnetcore is a bit more final.
the past bin url gives me just a failed to load page.
from the console in chrome, the Failed to load resource: the server responded with a status of 406 (Not Acceptable) showing is that the server can not provide the type of content specified.
i manually added the plex external player agent to my windows firewall just in case, and disabled anti-virus active protection firewall.
the other concern is all the [Connections] [Anonymous] is unavailable at http://192.168.11.25:32400/ (Status 406), or at localhost:32400 same thing.
is that the user agent trying to connect to plex and failing?
Did you design this program by assuming that user will access plex via URL localhost:32400 ?
Coz I access via [serverip]:32400/web and right now the script keep getting path which is the local path of server (C:\Movie\movie.mkv) rather than network path (\server\c\movie\movie.mkv). And the external player agent popping up that the path is not exist.
Everything works fine if I access on the server tho.
The location of where you access plex from doesn’t matter, it’ll just get the location of the file from plex then it runs it. If its c:\file.mkv that’ll be what it runs on your remote computer and of course it’ll not work.
You have two options
- Use network paths on plex so regardless of the pc you play it from it’ll work.
- You can hack the script to convert the paths when you play an item on the remote computer (I Might add this as a feature so its not a hack if its requested by several people):
Change
var openItemOnAgent = function(path, id, openFolder) {
if(openFolder){
to
var openItemOnAgent = function(path, id, openFolder) {
path = path.replace(‘c:\\’, ‘\\server\\share\\’);
if(openFolder){
@kayomani said:
The location of where you access plex from doesn’t matter, it’ll just get the location of the file from plex then it runs it. If its c:\file.mkv that’ll be what it runs on your remote computer and of course it’ll not work.You have two options
- Use network paths on plex so regardless of the pc you play it from it’ll work.
- You can hack the script to convert the paths when you play an item on the remote computer (I Might add this as a feature so its not a hack if its requested by several people):
Change
var openItemOnAgent = function(path, id, openFolder) {
if(openFolder){to
var openItemOnAgent = function(path, id, openFolder) {
path = path.replace(‘c:\\’, ‘\\server\\share\\’);
if(openFolder){
Thx for your suggestion. I use the first one and it works like charm but I have to match all my movies libraries again tho XD
I just wondering as I use network path, do my PMS need to access those file through router? or it is smart enough to realized that the file actually store locally?
This is just what I wanted. Thanks! Works great
FYI guys if you’re on windows you don’t need to install the extra software to map the shares, you can always just map a network drive and use the new drive letter replacement
@naja_return said:
I just wondering as I use network path, do my PMS need to access those file through router? or it is smart enough to realized that the file actually store locally?
If your PMS and files are located on the same computer and you use a network path, then no traffic will traverse your router. It’ll all happen locally. You can test this by disabling your network adapter and then playing a video.
Your external player works fabulously, however I noticed that it disappears when using the PLEX WEB APP, one of the reasons I’m using the web app is because in the Music Library it will show multiple discs (Disc 1, Disc 2, etc…) whereas when I just use the Plex Media Server it will show your program but the , I have posted views of this situation with the music library where it just puts all the tracks on the album but doesn’t handle discs, and I’m also showing the Video library (Music Videos) where you can see the problem. Any thoughts or an update to your great plugin would be appreciated.
Thanks