Caster - An Application Launcher (inspired by AppTV)

You're welcome! I'm running on a Mac, so waiting a bit longer for cool software is normal. I'll be patient, no worries.

Are you making any progress? Really want this APP!

absolutely awesome! 

but unfortunately this isn't working on linux.

the channel shows up and the settings button is working. but the "Create Application" leads to an error: "Could not find the plug-in folder; please check your installation: /var/lib/plexmediaPlug-ins\" - and the other buttons leads to an error-page "The Channel is not available". :(

So, I had a bit of time to make some changes that - hopefully - address the initial issue.

On the Github page, make sure the "working" branch is selected, before downloading the updated Caster channel.  You should no longer receive the error regarding the (obvious) non-existence of the "C:/" directory.

You'll probably still have issues running it, so please PM me your log files, and I'll attempt to knock out the bugs as quickly as I can.

Launch my steam games from Plex you say? I sincerely hope you can find a good solution to do it. It would be amazing. Love caster although I haven't tested it yet with latest server/client. Maybe it's time to get up off my a**

Edit: or wait do you mean a steam machine with Plex integration? Cause that sounds equally if not more amazing

Sounds promising. Although the majority of users would probably benefit a whole lot if you could start the app on the machine you requested it on, since most (I think) users do keep their servers seperate from their HTPC's/workstations :)

But very excited to see what comes out of this Plex/Steam mixup of yours.

That's almost the way I used caster. I ran a server on my HTPC with only caster channel installed which allowed me to remotely launch my HTPC applications from the mobile clients. Not exactly what you were talking about but it was pretty neat.

Unfortunately, I haven't found a simple way to launch an application on a client, from the server.  I think it's doable...but may require additional functionality on PHT's part (kind of like how you can send media to a client).

If both PMS and PHT reside on the same machine, you can launch Steam games directly.  You would need to enter the following command line parameters when creating a Steam caster:

-applaunch 

Replacing with an ID from the list located here.

In regards to the Steam/Plex box I've been working on; I've been making and selling handmade acrylic mini-itx cases (and systems) for a few years now, and thought it'd be neat to create a console+ configuration (with both PMS and PHT residing on the same machine).  In addition to this Plex app, I've been working on a hub interface, and refining the prototypes and mini-itx cases.  If you're curious of how they look, you can find images on my website here (the matte black one is the most current design).

So, I had a bit of time to make some changes that - hopefully - address the initial issue.

On the Github page, make sure the "working" branch is selected, before downloading the updated Caster channel.  You should no longer receive the error regarding the (obvious) non-existence of the "C:/" directory.

You'll probably still have issues running it, so please PM me your log files, and I'll attempt to knock out the bugs as quickly as I can.

thanks!

the "file-manager" is working now. but now the error comes when i choose an application in the "file-manager".

thanks!

the "file-manager" is working now. but now the error comes when i choose an application in the "file-manager".

I assume you mean that the application is not showing up in the "file-manager"?  Or, is it actually throwing an error?

Either way, I need to change my checks to handle executables in Linux.

yes, the error page "The Channel is not available" shows up.

thanks for your support in linux!

yes, the error page "The Channel is not available" shows up.

thanks for your support in linux!

Ok, I've pushed some changes that should address the issue.  Re-download, and let me know the results.

okay... i'm sorry to say, but now i have permission problems with the newest version. i cannot see any folders in /usr/bin/ , where the applications like steam are located on ubuntu.

to double check this, i reinstalled the version from yesterday - and there i can see the folder-structure.

okay... i'm sorry to say, but now i have permission problems with the newest version. i cannot see any folders in /usr/bin/ , where the applications like steam are located on ubuntu.

to double check this, i reinstalled the version from yesterday - and there i can see the folder-structure.

Please PM me your log file (running the current version).

Hi MrHistamine

Came across your good work an hour ago - it was exactly what I needed.

I tried to create a plugin that I can launch an app called ChromeCatch (which turns my Mac to a Chromecast) directly from my Plex.

In summery, I believe I got further than the others but still haven't got it worked.

I can create a plugin using your bundle with some modifications to your code in Caster.bundle/Code/__init__.py

basically I saw a few paths in your code that's exclusively for MS Windows OS so I made some changes (will list below)

then I can create a plugin, but it won't run.

In order to keep this post short, I will put my thoughts on debugging in another post.

Code Modification

Here's the code I modified for your __init__.py

WIN_PLUGIN_FOLDER = '/Library/Application Support/Plex Media Server/Plug-ins'
VALID_EXECUTABLES = ['.app', '.bat']    # List of valid executables
ROOT_DIRECTORY = "/" 

System Summery

OS: Mac OS X 10.9.1

Plex Media Server: 0.9.8.18.290-11b7fdd

PHT: 1.0.9.180-bde1e61d

Caster: 1.2.1

Logs

My Plex Home Theater.log says

22:41:16 T:4931493888   ERROR: CPlexDirectory::GetDirectory failed to fetch data from plexserver://123e7b11eb4b40fabba874e9fff07db2e2072f3b/applications/Caster_Chromecatch/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_: 404

My Plex Media Server.log says

Jan 21, 2014 22:41:12 [0x104f04000] DEBUG - Request: GET /applications/Caster_Chromecatch?X-Plex-Container-Size=50&X-Plex-Container-Start=0&X-Plex-Token=sU4MZTm1pKFeShCzHoxC [127.0.0.1:61737] (3 live)

Jan 21, 2014 22:41:12 [0x104f04000] DEBUG - Plug-in com.niridia.Caster_Chromecatch has been used 32 times.
Jan 21, 2014 22:41:12 [0x104f04000] DEBUG - Starting file watcher for com.niridia.Caster_Chromecatch
Jan 21, 2014 22:41:12 [0x104f04000] DEBUG - Spawned plug-in com.niridia.Caster_Chromecatch with PID 60137
Jan 21, 2014 22:41:12 [0x104f04000] DEBUG - [com.niridia.Caster_Chromecatch] Sent command: GET /:/prefixes
Jan 21, 2014 22:41:13 [0x1078d9000] DEBUG - Request: GET /system/messaging/clear_events/com.niridia.Caster_Chromecatch [127.0.0.1:61738] (4 live)
Jan 21, 2014 22:41:13 [0x1078d9000] DEBUG - [com.plexapp.system] Sending command over HTTP (GET): /system/messaging/clear_events/com.niridia.Caster_Chromecatch
Jan 21, 2014 22:41:13 [0x1078d9000] DEBUG - HTTP requesting to: http://127.0.0.1:58681/system/messaging/clear_events/com.niridia.Caster_Chromecatch
Jan 21, 2014 22:41:13 [0x104f04000] DEBUG - [com.niridia.Caster_Chromecatch] Plug-in running on port 61745.
Jan 21, 2014 22:41:13 [0x104f04000] DEBUG -  * Plug-in handles prefix: /applications/Caster_Chromecatch
Jan 21, 2014 22:41:13 [0x104f04000] DEBUG - Read configuration for [com.niridia.Caster_Chromecatch], had 1 prefixes
Jan 21, 2014 22:41:13 [0x104f04000] DEBUG - [com.niridia.Caster_Chromecatch] Sending command over HTTP (GET): /applications/Caster_Chromecatch
Jan 21, 2014 22:41:13 [0x104f04000] DEBUG - HTTP requesting to: http://127.0.0.1:61745/applications/Caster_Chromecatch
Jan 21, 2014 22:41:14 [0x104f04000] DEBUG - [com.niridia.Caster_Chromecatch] HTTP reply status 200, with 1068 bytes of content.
Jan 21, 2014 22:41:16 [0x107a84000] DEBUG - Request: GET /applications/Caster_Chromecatch/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_&X-Plex-Token=sU4MZTm1pKFeShCzHoxC [127.0.0.1:61749] (5 live)
Jan 21, 2014 22:41:16 [0x107a84000] DEBUG - Plug-in com.niridia.Caster_Chromecatch has been used 33 times.
Jan 21, 2014 22:41:16 [0x107a84000] DEBUG - [com.niridia.Caster_Chromecatch] Sending command over HTTP (GET): /applications/Caster_Chromecatch/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_
Jan 21, 2014 22:41:16 [0x107a84000] DEBUG - [com.niridia.Caster_Chromecatch] HTTP reply status 404, with 0 bytes of content.

I have no experience in writing plugins for Plex - these are just my observations.

Plex server directory path

Maybe the path isn't right in your __init__.py ?

PLEX_SERVER_DIR = "\\Plex Media Server" 

Function GET application Syntax

Jan 21, 2014 22:41:16 [0x107a84000] DEBUG - Request: GET /applications/Caster_Chromecatch/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_&X-Plex-Token=sU4MZTm1pKFeShCzHoxC

The /:/ definitely looks odd to me... It's some syntax error lying somewhere that creates such invalid http url...

Hope it helps.

okay... i'm sorry to say, but now i have permission problems with the newest version. i cannot see any folders in /usr/bin/ , where the applications like steam are located on ubuntu.

to double check this, i reinstalled the version from yesterday - and there i can see the folder-structure.

Had a busy weekend.  Please re-download, and let me know if it's still having issues.

Hi MrHistamine

Came across your good work an hour ago - it was exactly what I needed.

I tried to create a plugin that I can launch an app called ChromeCatch (which turns my Mac to a Chromecast) directly from my Plex.

In summery, I believe I got further than the others but still haven't got it worked.

I can create a plugin using your bundle with some modifications to your code in Caster.bundle/Code/__init__.py

basically I saw a few paths in your code that's exclusively for MS Windows OS so I made some changes (will list below)

then I can create a plugin, but it won't run.

In order to keep this post short, I will put my thoughts on debugging in another post.

Code Modification

Here's the code I modified for your __init__.py

WIN_PLUGIN_FOLDER = '/Library/Application Support/Plex Media Server/Plug-ins'
VALID_EXECUTABLES = ['.app', '.bat']    # List of valid executables
ROOT_DIRECTORY = "/" 

System Summery

OS: Mac OS X 10.9.1

Plex Media Server: 0.9.8.18.290-11b7fdd

PHT: 1.0.9.180-bde1e61d

Caster: 1.2.1

Logs

My Plex Home Theater.log says

My Plex Media Server.log says

I have no experience in writing plugins for Plex - these are just my observations.

Plex server directory path

Maybe the path isn't right in your __init__.py ?

PLEX_SERVER_DIR = "\\Plex Media Server" 

Function GET application Syntax

Jan 21, 2014 22:41:16 [0x107a84000] DEBUG - Request: GET /applications/Caster_Chromecatch/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_&X-Plex-Token=sU4MZTm1pKFeShCzHoxC

The /:/ definitely looks odd to me... It's some syntax error lying somewhere that creates such invalid http url...

Hope it helps.

Hi csvke,

Please switch to the "working" branch on the GitHub page, and try that version (tentatively 1.3.2).  That should be able to handle other file systems (in addition to Windows).  If you still run into errors, please PM me your log, and I'll make the necessary adjustments.  Thanks for the feedback!

Hi csvke,

Please switch to the "working" branch on the GitHub page, and try that version (tentatively 1.3.2).  That should be able to handle other file systems (in addition to Windows).  If you still run into errors, please PM me your log, and I'll make the necessary adjustments.  Thanks for the feedback!

 Still no luck.

I saw you did some work on Linux OS but OS X didn't fall into your code, I still need to change the line 

WIN_PLUGIN_FOLDER = '/Library/Application Support/Plex Media Server/Plug-ins'

in order to let Caster to dump the plugin to the right place.

But when I try to run that Caster-create plugin, I hit into a wall again.

Will PM you the log that was dumped by my plugin created using Caster.

BTW when using the latest PHT to run your plugin, it still won't create the Caster-create plugin (It says THE LIST IS EMPTY), I have to fall back to Plex 0.9.x to run your plugin.

 Still no luck.

I saw you did some work on Linux OS but OS X didn't fall into your code, I still need to change the line 

WIN_PLUGIN_FOLDER = '/Library/Application Support/Plex Media Server/Plug-ins'

in order to let Caster to dump the plugin to the right place.

But when I try to run that Caster-create plugin, I hit into a wall again.

Will PM you the log that was dumped by my plugin created using Caster.

BTW when using the latest PHT to run your plugin, it still won't create the Caster-create plugin (It says THE LIST IS EMPTY), I have to fall back to Plex 0.9.x to run your plugin.

Well, I see we have progress. Here are my results. Used the working version installed in OSX=Home theater, correct folder. I get no reaction when trying to click on Caster from the Channel page (it goes nowhere when clicking on the Caster icon) but if I access Caster from the home page via right click on my apple remote and then finding Caster on the list, it will open up asters configuration page. I can select my application location., Icon, artwork, description but will not create a Caster. It also says "this List is empty". But I see light at the end of the tunnel. Once Caster make a channel will it be found in the channel section under a new name? Where will I look for it? It says you can reach it under Applications but many skins don't have an application designation any more. They are lumping all into Channels. Will I need a specific skin that still used the Application parameters?

Hi guys,

I made some progress in Mac OS X environment that I have created a plugin. But there's this error when running the plugin.

2014-02-11 16:25:01,903 (111a01000) :  CRITICAL (sandbox:306) - Exception when calling function 'CastApp' (most recent call last):
  File "/Users/xxxxxxxxxx/Library/Application Support/Plex Media Server/Plug-ins/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/code/sandbox.py", line 297, in call_named_function
    result = f(*args, **kwargs)
  File "/Users/xxxxxxxxxx/Library/Application Support/Plex Media Server/Plug-ins/Caster_Chromecatch.bundle/Contents/Code/__init__.py", line 61, in CastApp
    subprocess.Popen([str(Prefs['app_loc_key']), ClearNoneString(Prefs['app_cl_params_key'])])
  File "/Users/plex/jenkins/pms-deps-universal/BUILD_TAG/darwin-x86_64/output/pms-depends-darwin-x86_64-release-a38dc94/lib/python2.7/subprocess.py", line 711, in __init__
  File "/Users/plex/jenkins/pms-deps-universal/BUILD_TAG/darwin-x86_64/output/pms-depends-darwin-x86_64-release-a38dc94/lib/python2.7/subprocess.py", line 1308, in _execute_child
OSError: [Errno 13] Permission denied

Tried this plugin, and another similar one (AppTv) that I found on good old google. Problem is, while I can setup and get both to show up on Plex, neither work fully. I can get as far as the Plugin launching the program on my host computer, but then I see a good old "Channel is currently unavailable" in plex. I've tried setting this up on 2 different computers on my LAN, and neither works. 

Both machines are running windows 8.1, with the latest version of Plex Media Server running on the same machine as I am trying to launch the app on. 

I got your plugin from your repository, after making sure the "working" was selected. Copied the bundle to the plugin folder. 

Here's a sample of my log: 

2014-02-12 16:19:38,739 (d10) :  INFO (core:336) - Starting framework core - Version: 2.3.16, Build: 2167b3f (Mon Jan 27 21:33:51 UTC 2014)
2014-02-12 16:19:38,743 (d10) :  DEBUG (core:348) - Using the standard policy
2014-02-12 16:19:38,744 (d10) :  DEBUG (core:437) - Starting runtime component.
2014-02-12 16:19:38,750 (d10) :  DEBUG (core:437) - Starting caching component.
2014-02-12 16:19:38,750 (d10) :  DEBUG (core:437) - Starting data component.
2014-02-12 16:19:38,752 (d10) :  DEBUG (core:437) - Starting networking component.
2014-02-12 16:19:38,755 (d10) :  DEBUG (networking:318) - Loaded HTTP cookies
2014-02-12 16:19:38,769 (d10) :  DEBUG (networking:504) - Setting the default network timeout to 20.0
2014-02-12 16:19:38,770 (d10) :  DEBUG (core:437) - Starting localization component.
2014-02-12 16:19:38,770 (d10) :  INFO (localization:408) - Setting the default locale to en-us
2014-02-12 16:19:38,772 (d10) :  DEBUG (core:437) - Starting messaging component.
2014-02-12 16:19:38,773 (d10) :  DEBUG (core:437) - Starting debugging component.
2014-02-12 16:19:38,773 (d10) :  DEBUG (core:437) - Starting services component.
2014-02-12 16:19:38,773 (320) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/system/messaging/clear_events/com.niridia.caster_pantes'
2014-02-12 16:19:38,775 (d10) :  DEBUG (core:437) - Starting myplex component.
2014-02-12 16:19:38,776 (d10) :  DEBUG (core:437) - Starting notifications component.
2014-02-12 16:19:38,973 (d10) :  DEBUG (accessor:68) - Creating a new model access point for provider com.niridia.caster_pantes in namespace 'metadata'
2014-02-12 16:19:38,982 (d10) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/resourceHashes'
2014-02-12 16:19:39,025 (d10) :  DEBUG (runtime:1108) - Created a thread named 'load_all_services'
2014-02-12 16:19:39,026 (8e0) :  DEBUG (services:265) - Plug-in is not daemonized - loading services from system
2014-02-12 16:19:39,029 (d10) :  DEBUG (runtime:1108) - Created a thread named 'get_server_info'
2014-02-12 16:19:39,030 (d10) :  DEBUG (core:149) - Finished starting framework core
2014-02-12 16:19:39,032 (d10) :  DEBUG (core:547) - Loading plug-in code
2014-02-12 16:19:39,052 (d10) :  DEBUG (core:553) - Finished loading plug-in code
2014-02-12 16:19:39,055 (8e0) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_'
2014-02-12 16:19:39,055 (ebc) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400'
2014-02-12 16:19:39,082 (d10) :  DEBUG (runtime:640) - Adding a prefix handler for 'Pantes' ('/video/caster_pantes')
2014-02-12 16:19:39,091 (ebc) :  DEBUG (core:525) - Machine identifier is af6a88b129bbb5a9c9ef984defbf15fa33ca37a6
2014-02-12 16:19:39,095 (d10) :  INFO (core:598) - Started plug-in
2014-02-12 16:19:39,101 (ebc) :  DEBUG (core:526) - Server version is 0.9.8.18.290-11b7fdd
2014-02-12 16:19:39,104 (d10) :  DEBUG (socketinterface:160) - Starting socket server
2014-02-12 16:19:39,107 (d10) :  DEBUG (runtime:1108) - Created a thread named 'start'
2014-02-12 16:19:39,108 (d10) :  INFO (socketinterface:184) - Socket server started on port 50047
2014-02-12 16:19:39,108 (d10) :  INFO (pipeinterface:25) - Entering run loop
2014-02-12 16:19:39,108 (d10) :  DEBUG (runtime:717) - Handling request GET /:/prefixes
2014-02-12 16:19:39,121 (d10) :  DEBUG (runtime:814) - Found route matching /:/prefixes
2014-02-12 16:19:39,312 (8e0) :  DEBUG (services:362) - Loaded services
2014-02-12 16:19:39,319 (d10) :  DEBUG (runtime:915) - Response: [200] MediaContainer, 439 bytes
2014-02-12 16:19:39,325 (97c) :  DEBUG (services:438) - No shared code to load
2014-02-12 16:19:39,365 (90c) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes
2014-02-12 16:19:39,368 (90c) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes
2014-02-12 16:19:39,371 (90c) :  WARNING (runtime:1056) - Generating a callback path for a function with no route:
2014-02-12 16:19:39,371 (90c) :  DEBUG (base:123) - Checking if com.niridia.caster_pantes is broken
2014-02-12 16:19:39,374 (90c) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjUKY29tLm5pcmlkaWEuY2FzdGVyX3BhbnRlc3MxMAppZGVudGlmaWVycjAK'
2014-02-12 16:19:39,388 (90c) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:19:39,390 (90c) :  DEBUG (runtime:915) - Response: [200] MediaContainer, 1209 bytes
2014-02-12 16:19:40,969 (158) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_
2014-02-12 16:19:41,025 (158) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2014-02-12 16:19:41,056 (158) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes/:/function/CastApp
2014-02-12 16:19:41,058 (158) :  DEBUG (runtime:143) - Calling function 'CastApp'
2014-02-12 16:19:41,059 (158) :  DEBUG (preferences:256) - Loaded preferences from DefaultPrefs.json
2014-02-12 16:19:41,065 (158) :  DEBUG (preferences:178) - Loaded the user preferences for com.niridia.caster_pantes
2014-02-12 16:19:41,072 (158) :  INFO (logkit:16) - Running Application:  "C:/Program Files/Internet Explorer/iexplore.exe", with the following arguments ""
2014-02-12 16:19:41,079 (158) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:19:41,079 (158) :  DEBUG (runtime:915) - Response: [404] NoneType, 0 bytes
2014-02-12 16:42:11,339 (684) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes
2014-02-12 16:42:11,344 (684) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2014-02-12 16:42:11,371 (684) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes
2014-02-12 16:42:11,374 (684) :  WARNING (runtime:1056) - Generating a callback path for a function with no route:
2014-02-12 16:42:11,375 (684) :  DEBUG (base:123) - Checking if com.niridia.caster_pantes is broken
2014-02-12 16:42:11,388 (684) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjUKY29tLm5pcmlkaWEuY2FzdGVyX3BhbnRlc3MxMAppZGVudGlmaWVycjAK'
2014-02-12 16:42:11,414 (684) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:42:11,417 (684) :  DEBUG (runtime:915) - Response: [200] MediaContainer, 1209 bytes
2014-02-12 16:42:12,759 (12d4) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_
2014-02-12 16:42:12,760 (12d4) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2014-02-12 16:42:12,765 (12d4) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes/:/function/CastApp
2014-02-12 16:42:12,767 (12d4) :  DEBUG (runtime:143) - Calling function 'CastApp'
2014-02-12 16:42:12,769 (12d4) :  INFO (logkit:16) - Running Application:  "C:/Program Files/Internet Explorer/iexplore.exe", with the following arguments ""
2014-02-12 16:42:12,813 (12d4) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:42:12,838 (12d4) :  DEBUG (runtime:915) - Response: [404] NoneType, 0 bytes
2014-02-12 16:43:36,842 (17f4) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes
2014-02-12 16:43:36,845 (17f4) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes
2014-02-12 16:43:36,846 (17f4) :  WARNING (runtime:1056) - Generating a callback path for a function with no route:
2014-02-12 16:43:36,848 (17f4) :  DEBUG (base:123) - Checking if com.niridia.caster_pantes is broken
2014-02-12 16:43:36,851 (17f4) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjUKY29tLm5pcmlkaWEuY2FzdGVyX3BhbnRlc3MxMAppZGVudGlmaWVycjAK'
2014-02-12 16:43:36,868 (17f4) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:43:36,869 (17f4) :  DEBUG (runtime:915) - Response: [200] MediaContainer, 1209 bytes
2014-02-12 16:43:38,461 (1264) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes
2014-02-12 16:43:38,467 (1264) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes
2014-02-12 16:43:38,476 (1264) :  WARNING (runtime:1056) - Generating a callback path for a function with no route:
2014-02-12 16:43:38,477 (1264) :  DEBUG (base:123) - Checking if com.niridia.caster_pantes is broken
2014-02-12 16:43:38,479 (1264) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjUKY29tLm5pcmlkaWEuY2FzdGVyX3BhbnRlc3MxMAppZGVudGlmaWVycjAK'
2014-02-12 16:43:38,555 (1264) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:43:38,558 (1264) :  DEBUG (runtime:915) - Response: [200] MediaContainer, 1209 bytes
2014-02-12 16:43:38,592 (614) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_
2014-02-12 16:43:38,595 (614) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes/:/function/CastApp
2014-02-12 16:43:38,596 (614) :  DEBUG (runtime:143) - Calling function 'CastApp'
2014-02-12 16:43:38,599 (614) :  INFO (logkit:16) - Running Application:  "C:/Program Files/Internet Explorer/iexplore.exe", with the following arguments ""
2014-02-12 16:43:38,605 (614) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:43:38,607 (614) :  DEBUG (runtime:915) - Response: [404] NoneType, 0 bytes
2014-02-12 16:48:42,227 (1764) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_
2014-02-12 16:48:42,229 (95c) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes
2014-02-12 16:48:42,232 (1764) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2014-02-12 16:48:42,233 (95c) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2014-02-12 16:48:42,240 (1764) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes/:/function/CastApp
2014-02-12 16:48:42,243 (95c) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes
2014-02-12 16:48:42,243 (1764) :  DEBUG (runtime:143) - Calling function 'CastApp'
2014-02-12 16:48:42,246 (95c) :  WARNING (runtime:1056) - Generating a callback path for a function with no route:
2014-02-12 16:48:42,263 (95c) :  DEBUG (base:123) - Checking if com.niridia.caster_pantes is broken
2014-02-12 16:48:42,265 (1764) :  INFO (logkit:16) - Running Application:  "C:/Program Files/Internet Explorer/iexplore.exe", with the following arguments ""
2014-02-12 16:48:42,267 (95c) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjUKY29tLm5pcmlkaWEuY2FzdGVyX3BhbnRlc3MxMAppZGVudGlmaWVycjAK'
2014-02-12 16:48:42,278 (1764) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:48:42,311 (1764) :  DEBUG (runtime:915) - Response: [404] NoneType, 0 bytes
2014-02-12 16:48:42,332 (95c) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:48:42,364 (95c) :  DEBUG (runtime:915) - Response: [200] MediaContainer, 1209 bytes
2014-02-12 16:59:39,736 (cc0) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes
2014-02-12 16:59:39,747 (cc0) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2014-02-12 16:59:39,750 (cc0) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes
2014-02-12 16:59:39,750 (cc0) :  WARNING (runtime:1056) - Generating a callback path for a function with no route:
2014-02-12 16:59:39,752 (cc0) :  DEBUG (base:123) - Checking if com.niridia.caster_pantes is broken
2014-02-12 16:59:39,753 (cc0) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjUKY29tLm5pcmlkaWEuY2FzdGVyX3BhbnRlc3MxMAppZGVudGlmaWVycjAK'
2014-02-12 16:59:39,785 (cc0) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:59:39,796 (cc0) :  DEBUG (runtime:915) - Response: [200] MediaContainer, 1209 bytes
2014-02-12 16:59:40,963 (15fc) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_
2014-02-12 16:59:40,967 (15fc) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2014-02-12 16:59:40,977 (15fc) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes/:/function/CastApp
2014-02-12 16:59:41,005 (15fc) :  DEBUG (runtime:143) - Calling function 'CastApp'
2014-02-12 16:59:41,017 (15fc) :  INFO (logkit:16) - Running Application:  "C:/Program Files/Internet Explorer/iexplore.exe", with the following arguments ""
2014-02-12 16:59:41,023 (15fc) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:59:41,049 (15fc) :  DEBUG (runtime:915) - Response: [404] NoneType, 0 bytes
2014-02-12 16:59:46,987 (5b8) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes
2014-02-12 16:59:47,009 (5b8) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2014-02-12 16:59:47,013 (1450) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_
2014-02-12 16:59:47,029 (5b8) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes
2014-02-12 16:59:47,043 (1450) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2014-02-12 16:59:47,052 (5b8) :  WARNING (runtime:1056) - Generating a callback path for a function with no route:
2014-02-12 16:59:47,063 (1450) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes/:/function/CastApp
2014-02-12 16:59:47,065 (5b8) :  DEBUG (base:123) - Checking if com.niridia.caster_pantes is broken
2014-02-12 16:59:47,066 (1450) :  DEBUG (runtime:143) - Calling function 'CastApp'
2014-02-12 16:59:47,069 (5b8) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjUKY29tLm5pcmlkaWEuY2FzdGVyX3BhbnRlc3MxMAppZGVudGlmaWVycjAK'
2014-02-12 16:59:47,072 (1450) :  INFO (logkit:16) - Running Application:  "C:/Program Files/Internet Explorer/iexplore.exe", with the following arguments ""
2014-02-12 16:59:47,079 (1450) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:59:47,079 (1450) :  DEBUG (runtime:915) - Response: [404] NoneType, 0 bytes
2014-02-12 16:59:47,154 (5b8) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 16:59:47,164 (5b8) :  DEBUG (runtime:915) - Response: [200] MediaContainer, 1209 bytes
2014-02-12 17:27:50,526 (153c) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes/:/function/CastApp?function_args=Y2VyZWFsMQoxCmRpY3QKMApyMAo_
2014-02-12 17:27:50,528 (153c) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2014-02-12 17:27:50,529 (153c) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes/:/function/CastApp
2014-02-12 17:27:50,532 (153c) :  DEBUG (runtime:143) - Calling function 'CastApp'
2014-02-12 17:27:50,535 (153c) :  INFO (logkit:16) - Running Application:  "C:/Program Files/Internet Explorer/iexplore.exe", with the following arguments ""
2014-02-12 17:27:50,539 (153c) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 17:27:50,588 (1a3c) :  DEBUG (runtime:717) - Handling request GET /video/caster_pantes
2014-02-12 17:27:50,594 (153c) :  DEBUG (runtime:915) - Response: [404] NoneType, 0 bytes
2014-02-12 17:27:50,601 (1a3c) :  DEBUG (runtime:49) - Received packed state data (80 bytes)
2014-02-12 17:27:50,605 (1a3c) :  DEBUG (runtime:814) - Found route matching /video/caster_pantes
2014-02-12 17:27:50,615 (1a3c) :  WARNING (runtime:1056) - Generating a callback path for a function with no route:
2014-02-12 17:27:50,618 (1a3c) :  DEBUG (base:123) - Checking if com.niridia.caster_pantes is broken
2014-02-12 17:27:50,621 (1a3c) :  DEBUG (networking:172) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjUKY29tLm5pcmlkaWEuY2FzdGVyX3BhbnRlc3MxMAppZGVudGlmaWVycjAK'
2014-02-12 17:27:50,661 (1a3c) :  DEBUG (runtime:106) - Sending packed state data (106 bytes)
2014-02-12 17:27:50,667 (1a3c) :  DEBUG (runtime:915) - Response: [200] MediaContainer, 1209 bytes

Bump for a sollution?

Bump for a sollution?

To better understand your issue; when are you getting the "Channel is Currently Unavailable" error?

Well, I see we have progress. Here are my results. Used the working version installed in OSX=Home theater, correct folder. I get no reaction when trying to click on Caster from the Channel page (it goes nowhere when clicking on the Caster icon) but if I access Caster from the home page via right click on my apple remote and then finding Caster on the list, it will open up asters configuration page. I can select my application location., Icon, artwork, description but will not create a Caster. It also says "this List is empty". But I see light at the end of the tunnel. Once Caster make a channel will it be found in the channel section under a new name? Where will I look for it? It says you can reach it under Applications but many skins don't have an application designation any more. They are lumping all into Channels. Will I need a specific skin that still used the Application parameters?

Sorry for the super-late reply, dadrepuS.  If you haven't already figured it out, you can change where it places the channel, by changing the "Home Screen Section" attribute under Caster's preferences.

Hi guys,

I made some progress in Mac OS X environment that I have created a plugin. But there's this error when running the plugin.

2014-02-11 16:25:01,903 (111a01000) :  CRITICAL (sandbox:306) - Exception when calling function 'CastApp' (most recent call last):
  File "/Users/xxxxxxxxxx/Library/Application Support/Plex Media Server/Plug-ins/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/code/sandbox.py", line 297, in call_named_function
    result = f(*args, **kwargs)
  File "/Users/xxxxxxxxxx/Library/Application Support/Plex Media Server/Plug-ins/Caster_Chromecatch.bundle/Contents/Code/__init__.py", line 61, in CastApp
    subprocess.Popen([str(Prefs['app_loc_key']), ClearNoneString(Prefs['app_cl_params_key'])])
  File "/Users/plex/jenkins/pms-deps-universal/BUILD_TAG/darwin-x86_64/output/pms-depends-darwin-x86_64-release-a38dc94/lib/python2.7/subprocess.py", line 711, in __init__
  File "/Users/plex/jenkins/pms-deps-universal/BUILD_TAG/darwin-x86_64/output/pms-depends-darwin-x86_64-release-a38dc94/lib/python2.7/subprocess.py", line 1308, in _execute_child
OSError: [Errno 13] Permission denied

Can you please PM me the "___init___.py" DefaultPrefs.json file associated with the plugin you created through Caster?  I might not be formatting the path properly.  Thanks!

I'm trying to use this so that I can launch Steam Big Picture mode from within PHT. I have hit a snag though.. my C: drive is an SSD, and Steam and all the games are on D:

Can't figure out how to point it at the D: drive?

Cheers!