-
Notifications
You must be signed in to change notification settings - Fork 187
Launch app on tv #75
Comments
Not currently supported, but I am accepting patches if you are able to reverse engineer the protocol. |
So after a day of hacking up some controls for our tvs (we have a wall of them) {"method":"ms.remote.control","params":{"Cmd":"Move","Position":{"x":-1000,"y":1000,"Time":"1518675746190"},"TypeOfRemote":"ProcessMouseDevice"}} Send in rapid succession after getting a json blob on the websocket saying that mouse mode is enabled (don't have the actual message handy, sorry) {"method":"ms.channel.emit","params":{"event": "ed.apps.launch", "to":"host", "data":{"appId": "org.tizen.browser", "action_type": "NATIVE_LAUNCH"}}} Launch an app, nfi how to change parameters or give it a url, we just set our home page to various dashboards (actually I wrote a tool that redirects the tv to the dashboard based on ip because typing on these tvs suck) There's .a DEEP_LINK action type, but that seems to be for webapps, which has slightly different arguments. {"method":"ms.channel.emit","params":{"event": "ed.installedApp.get", "to":"host"}} List installed apps. the last two are probably only supported on tvs that have |
Awesome work, do you http post this to web service, do you know which port? |
Just sent up the same websocket the button presses are sent |
Quick question, I tried this last night replacing the key with json you gave, however it just sends an array of commands rather than a block. Any chance you can share your tool or just bash cmd used? Many thanks |
My code is written in Go, but here's a sample in javascript that should start the browser. NB, the tv will prompt for permission so you'll need to grant that and run the code twice ws = new WebSocket('ws://10.10.1.21:8001/api/v2/channels/samsung.remote.control');
ws.onopen = function() {ws.send('{"method":"ms.channel.emit","params":{"event": "ed.apps.launch", "to":"host", "data":{"appId": "org.tizen.browser", "action_type": "NATIVE_LAUNCH"}}}')};
ws.onmessage = function(e) {console.log(e)} |
Much appreciated! |
and launching a url...
|
If you need to send text, base64 encode your string
You must connect via wss on port 8002 if you want to send passwords, otherwise you have to post to a https url edit: Here's some code https://gist.github.com/freman/8d98742de09d476c4d3d9e5d55f9db63 |
It is possible to obtain the channel list ? |
@freman This is awesome! Quick question, any chance you figured out how to determine which app is currently open? |
Thanks for this awesome find. I've tried executing the javascript you posted but sadly it's not doing anything. I'm getting a response though but the browser is not opening on my tv. Is the app-id for the browser generic on all tv models? Also how would i go about retrieving a list of installed apps, i want to open netflix for example. |
I'm having some trouble launching Netflix. When I list all apps a big JSON list is returned among which: But when I send the following JSON over the websocket:
I get an error: |
@maartenpeels For netflix and pretty much everything i've tried that wasn't the browser, you should use |
@marius1968 sorry not that I've looked for. @kristenmills not that I've found, i'd also like to figure out how to see the current open tab in the browser, if you always assume the browser is empty it'll start a new tab (overloading our graphing service), if you always assume it'll work eventually it'll start up and open the 'featured' screen not the 'home' screen despite telling the damn thing to always go to the 'home' screen several times. @nickyromeijn @maartenpeels it appears @kristenmills is correct, we only use it to open a web app and see our charts... somewhat unreliably but still easier than doing it by hand every day. |
@maartenpeels, @nickyromeijn, @kristenmills So, to identify if a particular application is installed you can use the call : To launch the desired application you can use : curl -X POST -i 'http://yourIP:8001/ws/apps/Netflix' with response http://yourIP:8001/ws/apps/Netflix/run @freman |
@marius1968 because I couldn't even get the app to work, mostly decompiling their app. Once I did manage to get the app working, tcpdump |
@freman you have no idea the brilliance of this. I have been researching this for over two months right now. Even got into some thread that the guys are trying to reverse engineering the encryption DLL as that was the, thinking as to why no one knows how to communicate with the TV. I have been testing some the codes and this works really well. Got the Ws app taking to the TV accepted it as a authorised app, can navigate call apps, open browser etc. Question: once accepting the connection on the TV, and you disconnect for example. When you reconnect my TV is far so didn't see the next time I connected if it asked again for allow? Once you allow the app do I have to. Do this again or will the same ws://ip:8001....app=basecode64 always work? |
Another Q anyone figure out where "/opt/share/webappservice/apps_icon/FirstScreen/11101200001/250x250.png" or any of the icons actually reside? Would be awesome in an app to show these. |
Anyone has able to get if some non-standard app is running? I can get running status with http://X:8080/ws/apps/Netflix but I can't get if Deezer (3201608010191) or Spotify (3201606009684) is running. Maybe there is a way using ws? |
@xalexslx |
@marius1968 - Plex is listed in the DIAL registry as Plex - But i cant get it to load on my TV using the WS method above. YouTube works as does Netflix... Just not Plex unfortunately. |
@marius1968 @pegatron89 Same as you. Tried both (Plex, Spotify, Deezer, Twitch) and it didn't worked, just Netflix and YouTube. If there is a way to get app status via ws it will be good because we can just pass the AppId. |
@xalexslx a quick google and the App ID for plex is: 111199000681 https://forums.plex.tv/t/home-automation-start-plex-whats-your-appid/38276 Do you know how to pass the appID? I tried 192.168.0.62:8001/ws/apps/111199000681 on the off chance but this did not work. |
Hello! I tried to start Amazon with a curl Post. Netflix and youtube work great but Amazon doesnt. I got the Applicationname "Amazon Video" . It seems thtat curl cannot handle Applicationnames with a whitespace in it. I have to use the ApplicationID, but with ApplicationID i cant launch Amazon Video. Any suggestions? Best regards |
@DerGute There are more within the registry (see website below) I am at work at the moment so cant confirm if these work. http://www.dial-multiscreen.org/dial-registry/namespace-database |
I have tried several ids from DIAL Registry with installed apps on my Samsung TV. None of them worked except for YouTube and Netflix. It seems that Samsung doesn't follow the rules? Also, I got all app ids using the following command from the websocket
And I can launch them with
But I cant get current status of any running app except for YouTube and Netflix. |
Hi, I downloaded the whole DIAL registry and ran against my Samsung TV using Postman runner. Unfortunately only Netflix, YouTube and Pandora was found using the DIAL ids. Here are the list of my TV currently installed apps:
|
Here is, raw, a bunch of (3rd party) app_tizen_id's (to be completed if I find anymore). If some are not explicit enough, don't ask me which app they are: I don't know!
|
@vitalets Thanks for these commands. When I send the
When using the GET/POST/DELETE messages from the SmartView API (see your comment) the TV acts as expected. 👍 However, the PUT command to show the installation page, responses with Is there something that I do wrong? Or do you have any idea how to get to the installation page for an app that is not installed on the TV? |
Does anyone know Apple TV or Tidal app_id? |
We have several Apple TV ids on tizen 5:
|
Thanks for your reply! |
If you go here: https://graph-eu01-euwest1.api.smartthings.com/device/list And log in, click on your device and then open the app you want the id for. Look at tvChannelName: Thats the id for the app that is active |
Hey, My post here may help. https://www.reddit.com/r/homeassistant/comments/fxddeh/controlling_a_samsung_tv/ |
@freman Can you help me :) About this: I test with my TV and it's not working. I try to test connect to web socket successfully first with : https://websocketking.com/ with url : 'ws://192.168.1.14:8001/api/v2/channels/samsung.remote.control -> Could not connect Do I miss anything to make this work ? P/s : http://192.168.1.14:8001/api/v2/ -> return json successfully |
Is the PUT command to open the store supposed to work on all Tizen TVs? I have 2 where it pops up an error on the TV and I have 1 where it works just fine. |
Found this on pastebin and can attest the Disneyplus code works, might be some on there to add to the list |
Found more here |
lol, I made that ages ago. |
I request POST Data to http://192.168.1.110:8001/api/v2/applications/kIciSQlYEM.plex |
You need the IDE on a Mac, put the TV in developer mode and then download/see the app list. Andriod TV/Sony are far better and I have now moved away from Samsung after having to return 4 in one month due to buggy firmware. Never again. |
Also, Postman is your friend :) |
I think the only way to get app list from 2020+ models is trough Developer Mode the get Application List is no longer supported. Scroll up to see the comment mentioning it on how to do it. There is also a list of AppID's out already you can find it here. |
Does that mean that API for running applications is also removed from 2020+ models? I've tried to run Netflix using appId < 2020 {"method": "ms.channel.emit","params": {"event": "ed.apps.launch","to": "host","data": {"appId": "11101200001","action_type": "DEEP_LINK"}}} and appId for 2020+ {"method": "ms.channel.emit","params": {"event": "ed.apps.launch","to": "host","data": {"appId": "3201907018807","action_type": "DEEP_LINK"}}} But unfortunutally it;s not working for me. |
Just to help others, this is from a {
"Amazon Alexa": "3202004020626/AQKO41xyKP.AmazonAlexa",
"Apple Music": "3201908019041/org.tizen.apple.applemusic",
"Apple TV": "3201807016597/com.samsung.tv.ariavideo",
"Disney+": "3201901017640/MCmYXNxgcu.DisneyPlus",
"eManual": "20212100001/oKZtnuTBW8.emanual",
"Gallery": "3201710015037/com.samsung.tv.gallery",
"Google Assistant": "3202004020674/AkhP5nCr24.GoogleAssistant",
"Google Duo": "3202008021439/IewQEY143t.GoogleDuoWeb",
"Internet": "3202010022079/org.tizen.browser",
"Kidoodle.TV": "3201910019457/LTqDGxS6NK.KidoodleTV",
"Netflix": "3201907018807/org.tizen.netflixapp",
"Plex": "3201512006963/kIciSQlYEM.plex",
"Prime Video": "3201910019365/org.tizen.primevideo",
"Samsung Health": "3201909019211/com.samsung.tv.samsunghealth",
"Spotify": "3201606009684/rJeHak5zRg.Spotify",
"Tubi": "3201504001965/3KA0pm7a7V.TubiTV",
"YouTube": "111299001912/9Ur5IzDKqV.TizenYouTube"
} Tested and they all work for me. Got their IDs from the OP instructions of using Tizen Studio here https://www.reddit.com/r/homeassistant/comments/fxddeh/controlling_a_samsung_tv/ |
Glad my guide is still helping haha! |
RTL+ 3201908018988 |
hbo go become hbo max.. the code is not the same anymore.. by any chance, anyone can get the code for HBO Max? |
Hello my friend, try using |
Hey there, does this slack still exist? Can you share a new invite link? |
Hi - Thank you for all app lists provided. I am trying to find the numerical/alphumeric app ID for the BT Sport app - has anyone got this? |
Here is a comprehensive list of app ID's: https://github.com/tavicu/homebridge-samsung-tizen/wiki/Applications |
The New streaming's (SkyShowTime) app name is: |
For those who want Shahid from MBC group App details
|
Apologies, if this is not worth creating a new issue for... its more of a question.
The Samsung Smart View application - Link - has the ability to launch apps on the TV (Netflix, Plex etc.) - I was wondering if it was possible to replicate these calls?
The text was updated successfully, but these errors were encountered: