|
Phoenix This forum is for discussing the user-created Phoenix custom interface for SageTV. |
|
Thread Tools | Search this Thread | Display Modes |
#1
|
|||
|
|||
Direct Video Menu Item
Is there a way to add a menu item to play a specific video title?
I'm about to put the finishing touches on my home cinema and will be purchasing a custom video lead-in. What I'd really like to do is easily create playlists where the first video in the playlist is my lead in the and second video in the playlist is my video file of blu-ray disc structure rip. However, it seems that you cannot had blue-ray disc structures to playlists, only single video files can be added to playlists. So....I'm thinking I'll just have a menu button to play my custom video lead-in. Then when it is finished playing, I'll just find the movie my friends and family are going to watch with me. Not ideal, but it will have to do until (if ever) playlists support blu-ray disc structures or until I convert all my blu-ray disc structures over to single container files (e.g. mkv's). Thanks for the help.
__________________
Server: AMD Phenom II X6 3.20 GHz ♠ 16 GB RAM (15.7 usable) Capture: HDHomeRun PRIME ♠ Ceton InfiniTV 4 PCIe (Clear-QAM only) Tuning: OpenDCT v0.5.20-RC2 Software: Windows 7 Ultimate 64-bit ♠ SageTV v9.0.12.504 ♠ Java 1.8.0_111 Clients: 4 x STX-HD300 ♠ 3 x STX-HD200 ♠ MacOS Placeshifter |
#2
|
||||
|
||||
Maybe not through sage, but you can likely launch a media title from the web interface. Would probably be able to set a shortcut to it and launch it from a smart phone, whatever.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#3
|
||||
|
||||
Quote:
|
#4
|
|||
|
|||
I tried to discover the direct link via Sage Webserver, but it appears that the link to play in a given extender is actually a mixture of form submission and javascript method calls.
Does anyone have an idea of how I can deep link to force a MediaID to play on a given extender? I appreciate the help. I'd also be interested in going the direct menu link to a single video file to play it immediately. Can anyone help me there too? Thanks again.
__________________
Server: AMD Phenom II X6 3.20 GHz ♠ 16 GB RAM (15.7 usable) Capture: HDHomeRun PRIME ♠ Ceton InfiniTV 4 PCIe (Clear-QAM only) Tuning: OpenDCT v0.5.20-RC2 Software: Windows 7 Ultimate 64-bit ♠ SageTV v9.0.12.504 ♠ Java 1.8.0_111 Clients: 4 x STX-HD300 ♠ 3 x STX-HD200 ♠ MacOS Placeshifter |
#5
|
||||
|
||||
It would likely have to be done via the Play() api call through the sagex http api's. The format required I'm not really sure of (as far as setting UI context and such). I haven't really used those calls before, but just am aware of their existence.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#6
|
|||
|
|||
Thanks Fuzzy. I"m taking a look at these now.
What I'm not seeing is how to make playback start on a particular extender. I'll keep looking.
__________________
Server: AMD Phenom II X6 3.20 GHz ♠ 16 GB RAM (15.7 usable) Capture: HDHomeRun PRIME ♠ Ceton InfiniTV 4 PCIe (Clear-QAM only) Tuning: OpenDCT v0.5.20-RC2 Software: Windows 7 Ultimate 64-bit ♠ SageTV v9.0.12.504 ♠ Java 1.8.0_111 Clients: 4 x STX-HD300 ♠ 3 x STX-HD200 ♠ MacOS Placeshifter |
#7
|
||||
|
||||
That's a part of the UI Context attribute of the URL. Not sure on the syntax though - would have defer to stuckless for help on that one.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#8
|
||||
|
||||
Did some messing around. Looks like for extenders, the UI_CONTEXT is the the mac address (without colons).
I did this progression to create a playlist and start it on an extender (well, placeshifter in this case, same procedure though). Code:
http://sagetv:8080/sagex/api?c=RemovePlaylist&1=playlist:TestPlaylist http://sagetv:8080/sagex/api?c=AddPlaylist&1=TestPlaylist http://sagetv:8080/sagex/api?c=AddToPlaylist&1=playlist:TestPlaylist&2=mediafile:11253581 http://sagetv:8080/sagex/api?c=AddToPlaylist&1=playlist:TestPlaylist&2=mediafile:9503128 http://sagetv:8080/sagex/api?c=StartPlaylist&1=playlist:TestPlaylist&context=003067d032e1
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room Last edited by Fuzzy; 05-07-2012 at 07:45 PM. |
#9
|
|||
|
|||
Thanks Fuzzy. That was a big help.
I've been able to figure out, with your help, how to issue the command via the sagex api and a deep link (reversed engineered from the Sage Webserver form submission process). However, now I'm stuck with what I believe is a Phoenix bug. When I use either one of these methods to start a video file, it only starts in the Phoenix preview window. It also brings up the mini/quick menu. I was expecting the commands to start the media file or playlist playing full screen. Any thoughts? Thanks.
__________________
Server: AMD Phenom II X6 3.20 GHz ♠ 16 GB RAM (15.7 usable) Capture: HDHomeRun PRIME ♠ Ceton InfiniTV 4 PCIe (Clear-QAM only) Tuning: OpenDCT v0.5.20-RC2 Software: Windows 7 Ultimate 64-bit ♠ SageTV v9.0.12.504 ♠ Java 1.8.0_111 Clients: 4 x STX-HD300 ♠ 3 x STX-HD200 ♠ MacOS Placeshifter |
#10
|
||||
|
||||
No, that's normal... starting playback and switching to the playback OSD would be two different functions (even in the default STV). I'm not exactly sure what method would be best to bring up the OSD, but you can likely use the LoadMenuWidget call to bring up the OSD widget (whatever it is for Phoenix) as the last set in the process.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#11
|
|||
|
|||
Interesting. So going on that, I ran the following:
Code:
http://sagepc:8009/sagex/api?c=GetCurrentMenuWidget&context=0023a50000d6&encoder=xml Code:
<error> <message> <![CDATA[ Cannot Serialize Reply ]]> </message> <class> <![CDATA[ tv.sage.b.c ]]> </class> <data> <![CDATA[ default:ZOMHW-2366927|Menu:Phoenix OSD Video ]]> </data> <exception> <![CDATA[ Cannot Serialize [Field: Result, Type: tv.sage.b.c ToString: default:ZOMHW-2366927|Menu:Phoenix OSD Video] ]]> </exception> </error> For example, when I run: Code:
http://sagepc:8009/sagex/api?c=LaunchMenuWidget&1=Menu:Phoenix%20OSD%20Video&context=0023a50000d6 Code:
<error sagex-version="7.1.9.1"> <message> <![CDATA[ For input string: "Phoenix OSD Video" ]]> </message> <exception> <![CDATA[ java.lang.NumberFormatException: For input string: "Phoenix OSD Video" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at sagex.remote.xmlrpc.RequestHelper.makeTypedArg(RequestHelper ]]> <![CDATA[ .java:70) at sagex.remote.xmlrpc.RequestHelper.createParameters(RequestHelper.java:38) at sagex.remote.xmlrpc.RequestHelper.createRequest(RequestHelper.java:18) at sagex.remote.factory.request.WidgetAPIFactory.createRequest(WidgetAPIFactory.java:83) at sagex.remote.factory.request.SageRPCRequestFactory.createRequest(SageRPCRequestFactory.java:1283) at sagex.remote.api.ApiHandler.callSageAPI(ApiHandler.java:204) at sagex.remote.api.ApiHandler.handleRequest(ApiHandler.java:150) at sagex.remote.SagexServlet.doPost(SagexServlet.java:60) at sagex.remote.SagexServlet.doGet(SagexServlet.java:38) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.handler.rewrite.RewriteHandler.handle(RewriteHandler.java:230) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) ]]> </exception> </error> |
#12
|
||||
|
||||
The LaunchMenuWidget needs the UID of the widget, not the text. So in your case, try LaunchMenuWidget("ZOMHW-2366927")
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#13
|
|||
|
|||
Yeah...that's what I thought:
When I send: Code:
http://sagepc:8009/sagex/api?c=LaunchMenuWidget&1=ZOMHW-2366927&context=0023a50000d6 Code:
<Result/>
__________________
Server: AMD Phenom II X6 3.20 GHz ♠ 16 GB RAM (15.7 usable) Capture: HDHomeRun PRIME ♠ Ceton InfiniTV 4 PCIe (Clear-QAM only) Tuning: OpenDCT v0.5.20-RC2 Software: Windows 7 Ultimate 64-bit ♠ SageTV v9.0.12.504 ♠ Java 1.8.0_111 Clients: 4 x STX-HD300 ♠ 3 x STX-HD200 ♠ MacOS Placeshifter |
#14
|
||||
|
||||
Yeah, it looks like passing the widget type isn't working in the sagex api (probably requires a widget: prefix, which isn't coded). You can, however, wrap it in an EvaluateExpression command like so:
Code:
http://sagepc:8009/sagex/api?c=EvaluateExpression&1=LaunchMenuWidget("ZOMHW-2366927")&context=0023a50000d6
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#15
|
||||
|
||||
Quote:
Code:
http://sagepc:8009/sagex/api?c=EvaluateExpression&1=LaunchMenuWidget(%22ZOMHW-2366927%22)&context=0023a50000d6 Code:
c=EvaluateExpression&1=phoenix_umb_Play(%22TestPlayList%22) I am a little confused because earlier you asked about doing this using "menus" but this looks like you are using an external program to do this.
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
#16
|
|||
|
|||
Quote:
I'm trying to do it two different ways. I am creating a web app to control my lighting via my phones and iPad. I'm ALSO trying to add direct links in some media files on the main menu of Phoenix. It's all in the name of getting to a particular video file and playlists as quickly and automated as possible. I'll give your suggestions a try and see how I make out. Thanks.
__________________
Server: AMD Phenom II X6 3.20 GHz ♠ 16 GB RAM (15.7 usable) Capture: HDHomeRun PRIME ♠ Ceton InfiniTV 4 PCIe (Clear-QAM only) Tuning: OpenDCT v0.5.20-RC2 Software: Windows 7 Ultimate 64-bit ♠ SageTV v9.0.12.504 ♠ Java 1.8.0_111 Clients: 4 x STX-HD300 ♠ 3 x STX-HD200 ♠ MacOS Placeshifter |
#17
|
|||
|
|||
Quote:
I gave this a try, but it didn't affect my UI at all. The playlist didn't start on my extender. Actually, I added a context paramenter to the end of it so that it knew which extender to begin the playback on. Is this right? Code:
http://sagepc:8009/sagex/api?c=EvaluateExpression&1=phoenix_umb_Play(%22CinemaDTSthxDD%22)&context=0023a50000d6
__________________
Server: AMD Phenom II X6 3.20 GHz ♠ 16 GB RAM (15.7 usable) Capture: HDHomeRun PRIME ♠ Ceton InfiniTV 4 PCIe (Clear-QAM only) Tuning: OpenDCT v0.5.20-RC2 Software: Windows 7 Ultimate 64-bit ♠ SageTV v9.0.12.504 ♠ Java 1.8.0_111 Clients: 4 x STX-HD300 ♠ 3 x STX-HD200 ♠ MacOS Placeshifter |
#18
|
|||
|
|||
Looks like the phoenix_umb_Play api call can take two parameters. So I tried:
Code:
http://sagepc:8009/sagex/api?c=EvaluateExpression&1=phoenix_umb_Play(%22CinemaDTSthxDD%22,%22001e52c7d870%22) I also tried the following: Code:
http://sagepc:8009/sagex/api?c=StartPlaylist&1=playlist:CinemaDTSthxDD&context=001e52c7d870 http://sagepc:8009/sagex/api?c=EvaluateExpression&1=LaunchMenuWidget("ZOMHW-2366927")&context=001e52c7d870 Thanks.
__________________
Server: AMD Phenom II X6 3.20 GHz ♠ 16 GB RAM (15.7 usable) Capture: HDHomeRun PRIME ♠ Ceton InfiniTV 4 PCIe (Clear-QAM only) Tuning: OpenDCT v0.5.20-RC2 Software: Windows 7 Ultimate 64-bit ♠ SageTV v9.0.12.504 ♠ Java 1.8.0_111 Clients: 4 x STX-HD300 ♠ 3 x STX-HD200 ♠ MacOS Placeshifter |
#19
|
||||
|
||||
Quote:
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
#20
|
||||
|
||||
btw the Play() method above probably didn't work because we didn't code in support for playing Playlists
I assume that CinemaDTSthxDD is the playlist name, but I doubt the code supports looking up the playlist name.
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to add MC Menu item to go directly to SageTV Setup Menu? | BKeadle | SageMC Custom Interface | 1 | 11-05-2011 07:08 PM |
Adding custom main menu item -Video Folder or Category | wado1971 | SageTV v7 Customizations | 0 | 08-10-2010 02:58 PM |
Add menu item for My Podcasts? | cowboyway | SageMC Custom Interface | 5 | 08-12-2009 07:07 AM |
exit menu item on main menu | 49studebaker | SageMC Custom Interface | 1 | 11-14-2008 03:27 AM |
Add menu item with studio | jlabrue | SageTV Beta Test Software | 4 | 06-30-2007 08:44 AM |