Caster - An Application Launcher (inspired by AppTV)

Hey Guys,

 

Sooo...I had planned to fiddle around with AppTV for a few days (the goal was to create a Steam launcher)... ... ...but...then I wanted a bit more functionality, so (a few months later) I created Caster.  Caster does not launch the program(s) itself, but instead, creates other channels from which you can launch an external program.  I tried to do as much testing as I could on my end, but if you find any issues, please submit the Caster log (located at:  Plex Media Server/Logs/PMS Plugin Logs/com.niridia.caster) along with a description of the issue.  I also tried to create a Wiki page...but I wasn't getting the "edit" tab; any help on the matter is much appreciated.

Caster has only been tested in a Windows environment, on a system containing both the server and media center.  Theoretically, it should work in other OSs; if you have a configuration in which the PMS is not on the same machine as PMC, I believe it will launch applications on the PMS (they will not launch on the machine running PMC).  If you have PMS running on a separate machine, please let me know if that's how it behaves.

 

 

Caster v1.2

  • Initial release.

Caster v1.2.1

  • Fixed an issue where attempting to create a caster, caused an error.  The issue was caused by the file selections being cleared each time the main menu was loaded.

 

What follows isn't a necessary read; just for those who are interested (or care).  Caster, at a basic level, spawns additional channels that allow you to launch external applications (with their own icons and artwork).  The author must supply the icon, background artwork, and a text file containing a description of the application for which the channel is being created.  It then produces a full bundle archive/folder for the specified caster (or channel).  The reference code for the preferences, info, and init files, is specified inside the main Caster init file.  I was going to store them within their own files...but, I got lazy, and found it easier to keep them all in one place.  The code blobs contain keys that are replaced with real values based on the options selected and/or specified by the author.  It will then create/copy all the necessary files to the Plex plug-in folder.  Not the most complex of software, but it gets the job done.  Currently, only applications residing on the same machine as PMS, can be launched.  With the limited time I've been programming with Python, and skimming through the Plex development docs...I don't think it's possible (I'm only 1% sure of that).  Which kind of makes sense (from a security standpoint) - you don't want a rogue channel running around launching apps on your PMC machine whenever it wants.

 

Some notes for the plug-in development team...faction...legion...whatever:

  • Navigation Reset - maybe it's by design (or I missed how to do that in the documentation), but I'd like the ability for my channel to clear the navigation history with a simple call if I jump back to the channel's home screen, from anywhere within the channel.  I attempted to achieve this concept with the current code...but it got a little messy.
  • Resources in Nested Folders - again, maybe it's by design (or...I missed it in the documentation), but, if I tried to create a sub-folder structure in the image resources folder (i.e. a folder each for icons, thumbs, and backgrounds), and I tried to point it to the image within the specified folder, it'd return an error.
  • I get quite a few warnings about "generating a callback path for a function with no route"; is there something I should do to prevent it from complaining?

Let me know what you think (or what needs improvement), and try not to have too much fun!   :lol:

Hey Again,

Thought I'd update this thread with a Netflix caster I created.  If - like me - you've been having the occasional issue with Plex's native Netflix app, what follows is an example on creating a channel (via Caster), that boots Windows Media Center directly into its Netflix app.  I've only tested this on Windows 7 and you must have the Netflix app in WMC installed prior to attempting this (NOTE:  it may take WMC several minutes to show the Netflix shortcut after you've performed the initial setup).  This method only works for systems in which both PMC and PMS are installed.  This also assumes you have the Caster plugin installed already.  You may also find it easier to create the caster from within the Plex media manager.

The assets I created for the icon, artwork, and description have been attached to this post.

  1. To make sure your WMC Netflix app is properly installed (and to quiet the security dialogs), tap the Start key, type "run" (without the quotes), and tap the Enter key, to open the Run dialog.  Enter the following command:  
    "C:\Program Files (x86)\Internet Explorer\iexplore.exe" windowsmediacenterapp:{e6f46126-f8a9-4a97-9159-b70b07890112}\{982ea9d3-915c-4713-a3c8-99a4688b7c59}?EntryPointParameters=
    

    wmc_netflix_run.png

    </li>
    <li>On the first dialog that pops up; make sure "Always ask before opening this type of address" is UNCHECKED, then click&nbsp;<strong>Allow</strong>:
    
    
    <p style="text-align:center;"><img src="http://s20.postimg.org/i6gdjh63h/wmc_netflix_address_warning.png" alt="wmc_netflix_address_warning.png"></p>
    
    
    </li>
    <li>In the&nbsp;<em>Internet Explorer Security</em> dialog, make sure "Do not show me the warning for this program again" is CHECKED, then click&nbsp;<strong>Allow</strong>:
    
    <p style="text-align:center;">&nbsp;</p>
    
    <p style="text-align:center;"><img src="http://s20.postimg.org/ds7w7mvj1/wmc_netflix_web_content_warning.png" alt="wmc_netflix_web_content_warning.png"></p>
    
    </li>
    <li>In the&nbsp;<em>Media Center Launcher</em> dialog, make sure "Don't ask again for this provider" is CHECKED, then click&nbsp;<strong>Yes, allow provider to launch Windows Media Center</strong>:
    
    <p style="text-align:center;">&nbsp;</p>
    
    <p style="text-align:center;"><img src="http://s20.postimg.org/z9j5ezmsd/wmc_netflix_launcher_warning.png" alt="wmc_netflix_launcher_warning.png"></p>
    
    </li>
    <li>WMC should launch directly into its Netflix app. &nbsp;Repeat step one to verify that you receive no warning dialogs when opening directly into WMC's Netflix app.</li>
    <li>Start up PMC, and open the&nbsp;<em>Caster</em>&nbsp;channel, then apply the following settings:
    <pre class="_prettyXprint _lang-">
    

    Application Name: WMC Netflix


    Command Line Parameters: windowsmediacenterapp:{e6f46126-f8a9-4a97-9159-b70b07890112}{982ea9d3-915c-4713-a3c8-99a4688b7c59}?EntryPointParameters=


    Home Screen Section:  Video

    wmc_netflix_settings.png

    </li>
    <li>Apply the icon, artwork, and description files, by navigating to wherever you stored them, then select&nbsp;<strong>Create Caster</strong>:
    
    
    <p style="text-align:center;"><img src="http://s20.postimg.org/6nq2ylo9p/wmc_netflix_create.png" alt="wmc_netflix_create.png"></p>
    
    </li>
    <li>You may need to restart PMS; you should see the new channel within the "Video" channel menu:
    
    
    <p style="text-align:center;"><img src="http://s20.postimg.org/8i2xgcba5/wmc_netflix_channel.png" alt="wmc_netflix_channel.png"></p>
    
    </li>
    <li>Enter into the WMC Netflix channel, and select&nbsp;<strong>Cast WMC Netflix...</strong>:
    
    
    <p style="text-align:center;"><img src="http://s20.postimg.org/3sczrqk9p/wmc_netflix_cast_application.png" alt="wmc_netflix_cast_application.png"></p>
    
    </li>
    <li>Windows Media Center should launch directly into its Netflix app. &nbsp;Only a keyboard/mouse and media center remote work in WMC. &nbsp;I recommend completely closing WMC, when you want to go back to PMC. &nbsp;You <em>can</em> go back via the link on the WMC start screen; however, this doesn't close WMC (which will cause it to run in windowed mode, if you relaunch WMC's Netflix from Plex again).</li>
    

wmc_netflix_running.png

 

=====================================================================================================================

 

Edited 05/30/13:  Updated the line detailing the entries to make for the launcher's settings (separated them; they were running together).

Hey, I loved the idea of this application launcher, but does it still work?

I have it installed, but whenever I try to creater a caster nothing happens on PMC, if I try to use on PMS it says "This channel is currently unavailable"

Hey, I loved the idea of this application launcher, but does it still work?

I have it installed, but whenever I try to creater a caster nothing happens on PMC, if I try to use on PMS it says "This channel is currently unavailable"

Sorry for the inconvenience, and thanks for the report...I should probably have gone back and tested this (since there have been quite a few updates to PMS). I won't be able to work on it until tonight.

Also, is the folder for the caster you created, in Plex's plugin folder? Was it still unavailable after you restarted PMS?

Hey no problem.

I download the folder on git, and placed the .bundle folder at my PMS plugins folder.

Even after restarting both the media center and the server, it would still not work.

As for the descriptions and artworks, i have them on a separate folder at drive C:

If it means anything, the application  I was trying to setup was Steam.

1 Like

Hey no problem.

I download the folder on git, and placed the .bundle folder at my PMS plugins folder.

Even after restarting both the media center and the server, it would still not work.

As for the descriptions and artworks, i have them on a separate folder at drive C:

If it means anything, the application  I was trying to setup was Steam.

Sorry for the late reply; I've been busy on some other projects this weekend.

I did some initial checking, and I think I may have tracked it down. If you could, I'd like you to try the following:

  • Attempt to create the caster, using the web interface (you'll still get the error).
  • Then, attempt to create the same caster in PMC.
  • Go to the plugins folder, and look for your caster's folder (it will start with "caster_").

Let me know how things turn out, and - if you don't mind - please attach Caster's log output (make sure it doesn't contain any personal info).

Did all that, but I couldn't find a "caster_" at the plugins folder.

Since the log is huge, I placed in pastebin.

http://pastebin.com/emCbYzDW

Did anybody get this to work on a Mac?

Only thing I get is the Castor Icon and then the next screen is just background in the regular release of the client. Home theater doesn't even let me get to the next screen. Nothing happens after clicking on the icon in Channels.

Did all that, but I couldn't find a "caster_" at the plugins folder.

Since the log is huge, I placed in pastebin.

http://pastebin.com/emCbYzDW

Ok...so...another one of my silly mistakes. There was a variable I wasn't setting correctly.

I'll push the update tonight (and update this thread). Thanks for your patience! :)

Did anybody get this to work on a Mac?

Only thing I get is the Castor Icon and then the next screen is just background in the regular release of the client. Home theater doesn't even let me get to the next screen. Nothing happens after clicking on the icon in Channels.

Hi dadrepuS,

Please post your log here, or - if it's too long - search the log for any 'ERROR' or 'CRITICAL' keywords, and post the error blobs.

I don't own any Macs, so I'm unable to test for errors firsthand. If you don't mind being a proxy, I'll work on getting it running properly for you (and any other Mac users).

Server log where it shows Caster:

Sep 11, 2013 16:04:27 [0xb0699000] DEBUG - Request: GET /applications/caster [127.0.0.1:63292] (2 live)
Sep 11, 2013 16:04:27 [0xb0699000] DEBUG - Plug-in com.niridia.caster has been used 11 times.
Sep 11, 2013 16:04:27 [0xb0699000] DEBUG - Starting file watcher for com.niridia.caster
Sep 11, 2013 16:04:27 [0xb0699000] DEBUG - Spawned plug-in com.niridia.caster with PID 67649
Sep 11, 2013 16:04:27 [0xb0699000] DEBUG - [com.niridia.caster] Sent command: GET /:/prefixes
 
Sep 11, 2013 16:04:27 [0xb0c2f000] DEBUG - Request: GET /system/messaging/clear_events/com.niridia.caster [127.0.0.1:63293] (3 live)
Sep 11, 2013 16:04:27 [0xb0c2f000] DEBUG - [com.plexapp.system] Sending command over HTTP (GET): /system/messaging/clear_events/com.niridia.caster
Sep 11, 2013 16:04:27 [0xb0c2f000] DEBUG - HTTP requesting to: http://127.0.0.1:63200/system/messaging/clear_events/com.niridia.caster
Sep 11, 2013 16:04:27 [0xb0c2f000] DEBUG - [com.plexapp.system] HTTP reply status 200, with 0 bytes of content.
Sep 11, 2013 16:04:27 [0xb0c2f000] DEBUG - Request: GET / [127.0.0.1:63295] (3 live)
Sep 11, 2013 16:04:27 [0xb0c2f000] DEBUG - It took 0.000106 sec to serialize a list with 11 elements.
Sep 11, 2013 16:04:28 [0xb0c2f000] DEBUG - Request: GET /:/plugins/com.plexapp.system/resourceHashes [127.0.0.1:63296] (3 live)
Sep 11, 2013 16:04:28 [0xb0c2f000] DEBUG - [com.plexapp.system] Sending command over HTTP (GET): /:/plugins/com.plexapp.system/resourceHashes
Sep 11, 2013 16:04:28 [0xb0c2f000] DEBUG - HTTP requesting to: http://127.0.0.1:63200/:/plugins/com.plexapp.system/resourceHashes
Sep 11, 2013 16:04:28 [0xb0c2f000] DEBUG - [com.plexapp.system] HTTP reply status 200, with 22930 bytes of content.
Sep 11, 2013 16:04:28 [0xb0bad000] DEBUG - Request: GET /:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_ [127.0.0.1:63298] (3 live)
Sep 11, 2013 16:04:28 [0xb0bad000] DEBUG - [com.plexapp.system] Sending command over HTTP (GET): /:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_
Sep 11, 2013 16:04:28 [0xb0bad000] DEBUG - HTTP requesting to: http://127.0.0.1:63200/:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_
Sep 11, 2013 16:04:28 [0xb0cb1000] DEBUG - Request: GET / [127.0.0.1:63300] (4 live)
Sep 11, 2013 16:04:28 [0xb0cb1000] DEBUG - It took 0.000104 sec to serialize a list with 11 elements.
Sep 11, 2013 16:04:28 [0xb0bad000] DEBUG - [com.plexapp.system] HTTP reply status 200, with 97224 bytes of content.
Sep 11, 2013 16:04:28 [0xb0699000] DEBUG - Reading 411 bytes in the body, code is 200
Sep 11, 2013 16:04:28 [0xb0699000] DEBUG - [com.niridia.caster] Plug-in running on port 63301.
Sep 11, 2013 16:04:28 [0xb0699000] DEBUG -  * Plug-in handles prefix: /applications/caster
Sep 11, 2013 16:04:28 [0xb0699000] DEBUG - Read configuration for [com.niridia.caster], had 1 prefixes
Sep 11, 2013 16:04:28 [0xb0699000] DEBUG - [com.niridia.caster] Sending command over HTTP (GET): /applications/caster
Sep 11, 2013 16:04:28 [0xb0699000] DEBUG - (Capabilities) Adding WebKit.
Sep 11, 2013 16:04:28 [0xb0699000] DEBUG - (Capabilties) Passing down capabilities of 'protocols=http-video,shoutcast,webkit;videoDecoders=h264{profile:high&resolution:1080&level:51};audioDecoders=mp3,aac' to plug-in.
Sep 11, 2013 16:04:28 [0xb0699000] DEBUG - HTTP requesting to: http://127.0.0.1:63301/applications/caster
Sep 11, 2013 16:04:28 [0xb0cb1000] DEBUG - Request: GET /music [127.0.0.1:63303] (4 live)
Sep 11, 2013 16:04:28 [0xb0cb1000] DEBUG - It took 0.000123 sec to serialize a list with 6 elements.
Sep 11, 2013 16:04:28 [0xb0699000] DEBUG - [com.niridia.caster] HTTP reply status 500, with 966 bytes of content.
Sep 11, 2013 16:04:28 [0xb0c2f000] DEBUG - Request: GET /video [127.0.0.1:63304] (4 live)
 
 
 
second try:
Sep 11, 2013 20:23:12 [0xb0f3b000] DEBUG - Reading 411 bytes in the body, code is 200
Sep 11, 2013 20:23:12 [0xb0f3b000] DEBUG - [com.niridia.caster] Plug-in running on port 55986.
Sep 11, 2013 20:23:12 [0xb0f3b000] DEBUG -  * Plug-in handles prefix: /applications/caster
Sep 11, 2013 20:23:12 [0xb0f3b000] DEBUG - Read configuration for [com.niridia.caster], had 1 prefixes
Sep 11, 2013 20:23:12 [0xb0f3b000] DEBUG - [com.niridia.caster] Sending command over HTTP (GET): /applications/caster
Sep 11, 2013 20:23:12 [0xb0f3b000] DEBUG - (Capabilities) Adding WebKit.
Sep 11, 2013 20:23:12 [0xb0f3b000] DEBUG - (Capabilties) Passing down capabilities of 'protocols=http-video,shoutcast,webkit;videoDecoders=h264{profile:high&resolution:1080&level:51};audioDecoders=mp3,aac' to plug-in.
Sep 11, 2013 20:23:12 [0xb0f3b000] DEBUG - HTTP requesting to: http://127.0.0.1:55986/applications/caster
Sep 11, 2013 20:23:12 [0xb0e37000] DEBUG - Request: GET /music [127.0.0.1:55987] (7 live)
Sep 11, 2013 20:23:12 [0xb0e37000] DEBUG - It took 0.000129 sec to serialize a list with 6 elements.
Sep 11, 2013 20:23:12 [0xb0f3b000] DEBUG - [com.niridia.caster] HTTP reply status 500, with 966 bytes of content.
Sep 11, 2013 20:23:12 [0xb0db5000] DEBUG - Request: GET /video [127.0.0.1:55989] (7 live)
Sep 11, 2013 20:23:12 [0xb0db5000] DEBUG - It took 0.000601 sec to serialize a list with 34 elements.
Sep 11, 2013 20:23:12 [0xb0617000] DEBUG - Request: GET /photos [127.0.0.1:55991] (7 live)
Sep 11, 2013 20:23:12 [0xb0617000] DEBUG - It took 0.000097 sec to serialize a list with 4 elements.
Sep 11, 2013 20:23:12 [0xb0103000] DEBUG - Request: GET /applications [127.0.0.1:55992] (7 live)
Sep 11, 2013 20:23:12 [0xb0103000] DEBUG - It took 0.000100 sec to serialize a list with 4 elements.
Sep 11, 2013 20:23:12 [0xb0eb9000] DEBUG - Request: GET /library/sections [127.0.0.1:55993] (7 live)
Sep 11, 2013 20:23:12 [0xb0eb9000] DEBUG - It took 0.002029 sec to serialize a list with 6 elements.
Sep 11, 2013 20:23:18 [0xb0e37000] DEBUG - Request: GET / [127.0.0.1:56001] (7 live)
Sep 11, 2013 20:23:18 [0xb0e37000] DEBUG - It took 0.000104 sec to serialize a list with 11 elements.
Sep 11, 2013 20:23:18 [0xb0f3b000] DEBUG - Request: GET / [127.0.0.1:56002] (7 live)
Sep 11, 2013 20:23:18 [0xb0f3b000] DEBUG - It took 0.000104 sec to serialize a list with 11 elements.
Sep 11, 2013 20:23:28 [0xb0103000] DEBUG - Request: GET / [127.0.0.1:56005] (2 live)
Sep 11, 2013 20:23:28 [0xb0103000] DEBUG - It took 0.000101 sec to serialize a list with 11 elements.
Sep 11, 2013 20:23:33 [0xb0617000] DEBUG - Request: GET /security [68.48.72.34:58395] (2 live)
Sep 11, 2013 20:23:33 [0xb0617000] DEBUG - It took 0.000018 sec to serialize a list with 0 elements.
Sep 11, 2013 20:23:38 [0xb0103000] DEBUG - Request: GET / [127.0.0.1:56008] (2 live)
Sep 11, 2013 20:23:38 [0xb0103000] DEBUG - It took 0.000100 sec to serialize a list with 11 elements.
Sep 11, 2013 20:23:48 [0xb0617000] DEBUG - Request: GET / [127.0.0.1:56009] (2 live)
Sep 11, 2013 20:23:48 [0xb0617000] DEBUG - It took 0.000107 sec to serialize a list with 11 elements.
Sep 11, 2013 20:23:48 [0xb0103000] DEBUG - Request: GET / [127.0.0.1:56010] (2 live)
Sep 11, 2013 20:23:48 [0xb0103000] DEBUG - It took 0.000100 sec to serialize a list with 11 elements.
Sep 11, 2013 20:23:58 [0xb0103000] DEBUG - Request: GET / [127.0.0.1:56011] (2 live)
Sep 11, 2013 20:23:58 [0xb0103000] DEBUG - It took 0.000100 sec to serialize a list with 11 elements.
Sep 11, 2013 20:24:03 [0xb0617000] DEBUG - Request: GET /security [68.48.72.34:58458] (2 live)
Sep 11, 2013 20:24:03 [0xb0617000] DEBUG - It took 0.000016 sec to serialize a list with 0 elements.
Sep 11, 2013 20:24:06 [0xb0103000] DEBUG - Request: GET /servers [127.0.0.1:56014] (2 live)
Sep 11, 2013 20:24:06 [0xb0103000] DEBUG - It took 0.000026 sec to serialize a list with 1 elements.
Sep 11, 2013 20:24:06 [0xb0617000] DEBUG - Request: GET /library/sections [192.168.1.3:56015] (2 live)
Sep 11, 2013 20:24:06 [0xb0617000] DEBUG - It took 0.001957 sec to serialize a list with 6 elements.
Sep 11, 2013 20:24:06 [0xb0103000] DEBUG - Request: GET /channels/all [192.168.1.3:56016] (2 live)
Sep 11, 2013 20:24:06 [0xb0103000] DEBUG - It took 0.000964 sec to serialize a list with 48 elements.
Sep 11, 2013 20:24:08 [0xb0617000] DEBUG - Request: GET / [127.0.0.1:56019] (2 live)
Sep 11, 2013 20:24:08 [0xb0617000] DEBUG - It took 0.000101 sec to serialize a list with 11 elements.
Sep 11, 2013 20:24:18 [0xb0103000] DEBUG - Request: GET / [127.0.0.1:56024] (2 live)
Sep 11, 2013 20:24:18 [0xb0103000] DEBUG - It took 0.000100 sec to serialize a list with 11 elements.
Sep 11, 2013 20:24:18 [0xb0617000] DEBUG - Request: GET / [127.0.0.1:56025] (2 live)
Sep 11, 2013 20:24:18 [0xb0617000] DEBUG - It took 0.000114 sec to serialize a list with 11 elements.
Sep 11, 2013 20:24:28 [0xb0103000] DEBUG - Request: GET / [127.0.0.1:56026] (2 live)
Sep 11, 2013 20:24:28 [0xb0103000] DEBUG - It took 0.000105 sec to serialize a list with 11 elements.
Sep 11, 2013 20:24:34 [0xb0617000] DEBUG - Request: GET /security [68.48.72.34:58470] (2 live)
Sep 11, 2013 20:24:34 [0xb0617000] DEBUG - It took 0.000016 sec to serialize a list with 0 elements.
Sep 11, 2013 20:24:38 [0xb0103000] DEBUG - Request: GET / [127.0.0.1:56029] (2 live)
Sep 11, 2013 20:24:38 [0xb0103000] DEBUG - It took 0.000103 sec to serialize a list with 11 elements.
Sep 11, 2013 20:24:48 [0xb0617000] DEBUG - Request: GET / [127.0.0.1:56030] (2 live)
Sep 11, 2013 20:24:48 [0xb0617000] DEBUG - It took 0.000112 sec to serialize a list with 11 elements.
Sep 11, 2013 20:24:48 [0xb0103000] DEBUG - Request: GET / [127.0.0.1:56031] (2 live)
Sep 11, 2013 20:24:48 [0xb0103000] DEBUG - It took 0.000098 sec to serialize a list with 11 elements.
Sep 11, 2013 20:24:56 [0xacae72c0] DEBUG - Shutting down with signal 0
Sep 11, 2013 20:24:56 [0xacae72c0] DEBUG - Ordered to stop server.
Sep 11, 2013 20:24:56 [0xb0207000] DEBUG - Stopping server...
 

Here is an eror log in the Plex.log for the sam time reference: 

20:23:12 T:2897113792 M: 0%   ERROR: GetDirectory - Error getting http://127.0.0.1:32400/applications/caster/
20:23:12 T:2897113792 M: 0%   ERROR: CGUIMediaWindow::GetDirectory(http://127.0.0.1:32400/applications/caster/) failed

I missed some, sorry: plea.log:20:22:53 T:2955448320 M: 0%  NOTICE: Scanning host 127.0.0.1 is complete.

20:22:53 T:2955448320 M: 0%  NOTICE: Plex Source Scanner finished for host 127.0.0.1 (0 left)
20:22:57 T:2954383360 M: 0%  NOTICE: PlexDirectory::GetDirectory(http://127.0.0.1:32400/channels/recentlyViewed?filter=photo)
20:22:58 T:2957045760 M: 0%  NOTICE: PlexDirectory::GetDirectory(http://127.0.0.1:32400)
20:22:59 T:2955448320 M: 0%  NOTICE: PlexDirectory::GetDirectory(http://127.0.0.1:32400/channels/recentlyViewed?filter=video)
20:22:59 T:2958716928 M: 0% WARNING: FillBuffer: curl failed with code 22
20:22:59 T:2958716928 M: 0%   ERROR: CFileCurl::CReadState::Open, didn't get any data from stream.
20:23:06 T:2954383360 M: 0%  NOTICE: PlexDirectory::GetDirectory(http://127.0.0.1:32400/channels/recentlyViewed?filter=application)
20:23:08 T:2957045760 M: 0%  NOTICE: PlexDirectory::GetDirectory(http://127.0.0.1:32400)
20:23:10 T:2897113792 M: 0% WARNING: Window Translator: Can't find window plugins
20:23:10 T:2897113792 M: 0%  NOTICE: PlexDirectory::GetDirectory(http://127.0.0.1:32400/applications/caster)
20:23:12 T:2961981440 M: 0%  NOTICE: Plex Source Scanner starting...(127.0.0.1) (uuid: 67a92894685e8a3e6ffbde9c6a9f5d58eaed5ec7)
20:23:12 T:2961981440 M: 0%  NOTICE: Scanning remote server: 127.0.0.1 (remote: 0)
20:23:12 T:2961981440 M: 0%  NOTICE: PlexDirectory::GetDirectory(http://127.0.0.1:32400/music)
20:23:12 T:2955448320 M: 0% WARNING: FillBuffer: curl failed with code 22
20:23:12 T:2955448320 M: 0%   ERROR: CFileCurl::CReadState::Open, didn't get any data from stream.
20:23:12 T:2897113792 M: 0%   ERROR: GetDirectory - Error getting http://127.0.0.1:32400/applications/caster/
20:23:12 T:2897113792 M: 0%   ERROR: CGUIMediaWindow::GetDirectory(http://127.0.0.1:32400/applications/caster/) failed
20:23:12 T:2961981440 M: 0%  NOTICE: PlexDirectory::GetDirectory(http://127.0.0.1:32400/video)
20:23:12 T:2961981440 M: 0% WARNING: FillBuffer: curl failed with code 22
20:23:12 T:2961981440 M: 0%   ERROR: CFileCurl::CReadState::Open, didn't get any data from stream.
20:23:12 T:2961981440 M: 0%  NOTICE: PlexDirectory::GetDirectory(http://127.0.0.1:32400/photos)
20:23:12 T:2961981440 M: 0%  NOTICE: PlexDirectory::GetDirectory(http://127.0.0.1:32400/applications)
20:23:12 T:2961981440 M: 0%  NOTICE: PlexDirectory::GetDirectory(http://127.0.0.1:32400/library/sections)

Here is the Caster log:

2013-09-11 20:23:11,378 (-53518d40) :  INFO (core:336) - Starting framework core - Version: 2.3.11, Build: 9dc7356 (Thu Aug 29 21:52:02 UTC 2013)
2013-09-11 20:23:11,380 (-53518d40) :  DEBUG (core:348) - Using the standard policy
2013-09-11 20:23:11,380 (-53518d40) :  DEBUG (core:437) - Starting runtime component.
2013-09-11 20:23:11,382 (-53518d40) :  DEBUG (core:437) - Starting caching component.
2013-09-11 20:23:11,382 (-53518d40) :  DEBUG (core:437) - Starting data component.
2013-09-11 20:23:11,383 (-53518d40) :  DEBUG (core:437) - Starting networking component.
2013-09-11 20:23:11,391 (-53518d40) :  DEBUG (networking:318) - Loaded HTTP cookies
2013-09-11 20:23:11,426 (-53518d40) :  DEBUG (networking:504) - Setting the default network timeout to 20.0
2013-09-11 20:23:11,467 (-53518d40) :  DEBUG (core:437) - Starting localization component.
2013-09-11 20:23:11,467 (-53518d40) :  INFO (localization:408) - Setting the default locale to en-us
2013-09-11 20:23:11,468 (-53518d40) :  DEBUG (localization:426) - Loaded en strings
2013-09-11 20:23:11,468 (-53518d40) :  DEBUG (core:437) - Starting messaging component.
2013-09-11 20:23:11,468 (-53518d40) :  DEBUG (core:437) - Starting debugging component.
2013-09-11 20:23:11,469 (-53518d40) :  DEBUG (core:437) - Starting services component.
2013-09-11 20:23:11,469 (-4f9e9000) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/system/messaging/clear_events/com.niridia.caster'
2013-09-11 20:23:11,469 (-53518d40) :  DEBUG (core:437) - Starting myplex component.
2013-09-11 20:23:11,471 (-53518d40) :  DEBUG (core:437) - Starting notifications component.
2013-09-11 20:23:11,682 (-53518d40) :  DEBUG (accessor:68) - Creating a new model access point for provider com.niridia.caster in namespace 'metadata'
2013-09-11 20:23:11,687 (-53518d40) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/resourceHashes'
2013-09-11 20:23:11,714 (-4f9e9000) :  DEBUG (services:265) - Plug-in is not daemonized - loading services from system
2013-09-11 20:23:11,714 (-53518d40) :  DEBUG (runtime:1107) - Created a thread named 'load_all_services'
2013-09-11 20:23:11,716 (-4f9e9000) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_'
2013-09-11 20:23:11,716 (-53518d40) :  DEBUG (runtime:1107) - Created a thread named 'get_server_info'
2013-09-11 20:23:11,717 (-4f8e5000) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400'
2013-09-11 20:23:11,717 (-53518d40) :  DEBUG (core:149) - Finished starting framework core
2013-09-11 20:23:11,718 (-53518d40) :  DEBUG (core:547) - Loading plug-in code
2013-09-11 20:23:11,927 (-4f8e5000) :  DEBUG (core:525) - Machine identifier is 67a92894685e8a3e6ffbde9c6a9f5d58eaed5ec7
2013-09-11 20:23:11,927 (-4f8e5000) :  DEBUG (core:526) - Server version is 0.9.8.5.165-c301c50
2013-09-11 20:23:12,116 (-53518d40) :  DEBUG (core:553) - Finished loading plug-in code
2013-09-11 20:23:12,144 (-53518d40) :  DEBUG (runtime:640) - Adding a prefix handler for 'Caster' ('/applications/caster')
2013-09-11 20:23:12,147 (-53518d40) :  INFO (core:598) - Started plug-in
2013-09-11 20:23:12,148 (-53518d40) :  DEBUG (socketinterface:144) - Starting socket server
2013-09-11 20:23:12,150 (-53518d40) :  DEBUG (runtime:1107) - Created a thread named 'start'
2013-09-11 20:23:12,151 (-53518d40) :  INFO (socketinterface:168) - Socket server started on port 55986
2013-09-11 20:23:12,151 (-53518d40) :  INFO (pipeinterface:25) - Entering run loop
2013-09-11 20:23:12,152 (-53518d40) :  DEBUG (runtime:717) - Handling request GET /:/prefixes
2013-09-11 20:23:12,155 (-53518d40) :  DEBUG (runtime:814) - Found route matching /:/prefixes
2013-09-11 20:23:12,170 (-4f9e9000) :  DEBUG (services:362) - Loaded services
2013-09-11 20:23:12,177 (-4f967000) :  DEBUG (services:438) - No shared code to load
2013-09-11 20:23:12,179 (-53518d40) :  DEBUG (runtime:914) - Response: [200] MediaContainer, 411 bytes
2013-09-11 20:23:12,184 (-4f9e9000) :  DEBUG (runtime:717) - Handling request GET /applications/caster
2013-09-11 20:23:12,186 (-4f9e9000) :  DEBUG (runtime:814) - Found route matching /applications/caster
2013-09-11 20:23:12,187 (-4f9e9000) :  DEBUG (__init__:204) - Initializing the settings dictionary.
2013-09-11 20:23:12,188 (-4f9e9000) :  DEBUG (__init__:360) - Resetting the values in Caster's settings dictionary.
2013-09-11 20:23:12,190 (-4f9e9000) :  CRITICAL (runtime:880) - Exception (most recent call last):
  File "/Users/dad/Library/Application Support/Plex Media Server/Plug-ins/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/runtime.py", line 840, in handle_request
    result = f(**d)
  File "/Users/dad/Library/Application Support/Plex Media Server/Plug-ins/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/handlers/base.py", line 119, in call
    result = self.func(*args, **kwargs)
  File "/Users/dad/Library/Application Support/Plex Media Server/Plug-ins/Caster.bundle/Contents/Code/__init__.py", line 210, in MainMenu
    summary = str(L('prefs_menu_desc')).format(appName = Prefs[APP_NAME_KEY], appSection = Prefs[APP_SECT_KEY], appParams = Prefs[APP_PARAMS_KEY])))
AttributeError: 'str' object has no attribute 'format'
 
2013-09-11 20:23:12,193 (-4f9e9000) :  DEBUG (runtime:914) - Response: [500] 966 bytes

Did anybody get this to work on a Mac?

Only thing I get is the Castor Icon and then the next screen is just background in the regular release of the client. Home theater doesn't even let me get to the next screen. Nothing happens after clicking on the icon in Channels.

Hmm...it seems it doesn't have access to the string's "format" method.  What version of Plex Media Server are you running?

Hey, I loved the idea of this application launcher, but does it still work?

I have it installed, but whenever I try to creater a caster nothing happens on PMC, if I try to use on PMS it says "This channel is currently unavailable"

The issue has been fixed; let me know if it's still not working on your end.

Hmm...it seems it doesn't have access to the string's "format" method.  What version of Plex Media Server are you running?

media server .9.8.5 and both Home theater .9.10.0 and Plex .9.5.4 Home theater does not open the Castor page at all but I do get a blank page when using plex.app. I'm assuming all I had to do for installation was drag the plugin into the plugin folder and restart the plex server (other than make my images and icon files.

Could t be my version of Python needs updated? 

When trying to access thru PMS I get "Media server responded with an error .  :(

The issue has been fixed; let me know if it's still not working on your end.

Sorry, still got the same result, channel unavailable with the PMS,  and PMC does nothing. 

I will give another shot later, right now I'm a little busy.

Hi, I've recently just found this cool thread. I installed the app and I have a few issues.

Firstly I'll describe my setup, I run PMS on a server machine and I have multiple PC's running PHT.

Installing Caster was pretty simple, I placed the .bundle into the PMS server plugins folder and it showed up straight away.

The first issue I ran into on the PHT machine, I selected Caster, then tried to selet Caster Options but nothing would happen, no new windows/options opened up. I tried the rest of the options like Select Appl.. etc and they all work. The only way I could get into Caster Options was to go through the PMS Web and I could get it to work.

I created a Netflix channel just like you have which it all worked but when I tried to launch it from the remote PHT machines, it would launch Netflix on the PMS machine.

Is there any way around that, I've been looking for an option to launch external programs and caster is perfect besides launching everything on the PMS instead of the PHT's.

Awesome app.