The ECP documentation gives the following for launching an app from the channel store. However, it does not explain how to get the “contentID” for an app that is not already installed on the Roku. How do I find the contentID for an app that is not already installed by the user? (Intent, clickable banner that says “Hey, install this channel”, the user clicks and is taken to the specific app in the channel store for installation.).
The following command will launch the channel store app (11) on the box with a contentID # equal to 14_e (the MLB app). You can get the plugin ID for your app using the /query/apps # example above. It returns the installed apps on a Roku box.
This technique would be useful in creating clickable ads in a free “Lite” version of a paid # app. When a user clicks on the ad, the channel store page to purchase the full version
Function BannerInstall() As String
ip = “127.0.0.1”
xfer = CreateObject(“roURLTransfer”)
ECPUrl= “http://127.0.0.1:8060/launch/11?contentID=1504”
xfer.SetURL(ECPUrl)
result = xfer.PostFromString(“”)
End Function
On the “Roku2 Firmware 4.1 2669” The channel store loads and displays the channel (1504) only if the channel is already installed on the device. If the channel is not installed on the device it just loads the channel store.
On the “Roku1 Firmware 3.1 1003”, “Roku1 Firmware 3.0 2227”, and “Roku1 Firmware 3.1 104” the above code crashes with :Type Mismatch. (runtime error &h18) in …kg:/source/banner_control.brs(8)"
I didn’t think 127.0.0.1 was supported… I wonder if that could be related to your type mismatch. Might work on 4.x but not 3.x. I use the roDeviceInfo to get the IP address of the box for posting the ECP command.
There’s a bug in the Roku2 channel store that causes only channels that appear in My Channels, Featured or one of the New/Most/Top categories to be able to launch to the Springboard. It’s fixed in the next version of the Channel Store. ETA TBD.
“SolveLLC” wrote:
Here is the code I’m attempting to use.
Function BannerInstall() As String
ip = “127.0.0.1”
xfer = CreateObject(“roURLTransfer”)
ECPUrl= “http://127.0.0.1:8060/launch/11?contentID=1504”
xfer.SetURL(ECPUrl)
result = xfer.PostFromString(“”)
End Function
On the “Roku2 Firmware 4.1 2669” The channel store loads and displays the channel (1504) only if the channel is already installed on the device. If the channel is not installed on the device it just loads the channel store.
I’m trying to do the same thing. I would like to have a banner within our channel that provides a call to action to listen to our station using the TuneIn Radio Channel, and launched the Channel Screen from the Channel Store once selected (it’s ok if it just loads the Channel Store only if the user doesn’t already have TuneIn Radio installed.)
I know I have to get the content ID of the TuneIn channel, but will the example code above work for this?
Also, not sure if TuneIn has a way to send launch parameters so we can directly launch the station from our channel…but that would be cool also.
If you look at the code example I posted and read the ECP documentation its pretty simple to modify. However, keep in mind that until this bug that Patrick mentioned is worked out on the Roku2 (no idea what is going on with the Roku1) it’s not going to work correctly at all.
“SolveLLC” wrote:
Here is the code I’m attempting to use.
Function BannerInstall() As String
ip = “127.0.0.1”
xfer = CreateObject(“roURLTransfer”)
ECPUrl= “http://127.0.0.1:8060/launch/11?contentID=1504”
xfer.SetURL(ECPUrl)
result = xfer.PostFromString(“”)
End Function
On the “Roku2 Firmware 4.1 2669” The channel store loads and displays the channel (1504) only if the channel is already installed on the device. If the channel is not installed on the device it just loads the channel store.
I’m trying to do the same thing. I would like to have a banner within our channel that provides a call to action to listen to our station using the TuneIn Radio Channel, and launched the Channel Screen from the Channel Store once selected (it’s ok if it just loads the Channel Store only if the user doesn’t already have TuneIn Radio installed.)
I know I have to get the content ID of the TuneIn channel, but will the example code above work for this?
Also, not sure if TuneIn has a way to send launch parameters so we can directly launch the station from our channel…but that would be cool also.
Anyone feel like helping us out?
I don;t think TuneIn yet supports the deep linking that would be required to launch the channel and start with a specific piece of content.
I’m trying to do the same thing. I would like to have a banner within our channel that provides a call to action to listen to our station using the TuneIn Radio Channel, and launched the Channel Screen from the Channel Store once selected (it’s ok if it just loads the Channel Store only if the user doesn’t already have TuneIn Radio installed.)
I know I have to get the content ID of the TuneIn channel, but will the example code above work for this?
Also, not sure if TuneIn has a way to send launch parameters so we can directly launch the station from our channel…but that would be cool also.
Anyone feel like helping us out?
I don;t think TuneIn yet supports the deep linking that would be required to launch the channel and start with a specific piece of content.
Assuming it’s a standard mp3 stream, the SHOUTcast channel has launch parameters that could be used to play the station directly.
“SolveLLC” wrote:
Here is the code I’m attempting to use.
Function BannerInstall() As String
ip = “127.0.0.1”
xfer = CreateObject(“roURLTransfer”)
ECPUrl= “http://127.0.0.1:8060/launch/11?contentID=1504”
xfer.SetURL(ECPUrl)
result = xfer.PostFromString(“”)
End Function
I’m trying to use simIlar code. I’m pulling the true IP from deviceinfo. I tried /launch/12 (netflix) and it does nothing. I tried /launch/11?contentID=12 and is just flashes the splash screen for the store. I tried launching one of my private channels, and nothing… Any ideas?
Sub RunUserInterface()
screenFacade = CreateObject("roPosterScreen")
screenFacade.showMessage("")
screenFacade.show()
port = CreateObject("roMessagePort")
screenFacade.SetMessagePort(port)
di = CreateObject("roDeviceInfo")
ipaddrs = di.GetIPAddrs()
if ipaddrs.eth0 <> invalid then ipaddr = ipaddrs.eth0
if ipaddrs.eth1 <> invalid then ipaddr = ipaddrs.eth1
print "ipaddr: ";ipaddr
sleep(1000)
url = "http://"+ipaddr+":8060/launch/11?contentID=12"
xfer = CreateObject("roUrlTransfer")
xfer.SetUrl(url)
xfer.PostFromString("")
while true
msg = wait(0,port)
end while
End Su