blog-razrabotchika / homebridge-samsung-tizen-applications

Database of homebridge tizen-apps ids. All in one place!
22 stars 1 forks source link

Samsung App Code and SmartThings tv Channel Name #6

Open DaveGut opened 1 year ago

DaveGut commented 1 year ago

In my groovyintegration, I found that the SmartThings integration often (usually) contains the capability TV channel value tvChannelName. I can now update the local app code/name list as new apps are used using the TV control. Exception: names of org.tizen..... are legacy names using the original formats (as opposed to gzcc4LRFBF.Peacock).

An update to the list (with duplicates) is contained below. Another factor is for post 2015 apps, the legacy code contained the year in characters 2 - 5 (i.e., 32019 was year 2019).

Updated code list (not exhaustive for the new codes - you can get these using smartThings. 3201704012147: "10 play", 3201803015934: "7plus", 3201607010031: "9Now", 3201812017479: "ABC iview", 111299002148: "All 4", AQKO41xyKP.AmazonAlexa: "Amazon Alexa", 3202004020626: "Amazon Alexa", 3201710014874: "Amazon Music", 3201611011005: "AntenaPlay.ro", 3201908019041: "Apple Music", 3201807016597: "Apple TV", 3202011022316: "ARTE", 3201910019420: "B.tv", 3201601007670: "BBC iPlayer", 3201602007865: "BBC News", 3202003020365: "BBC Sounds", 3202007021336: "Benshi", 3202010022098: "BINGE", 3201909019175: "BritBox", 3201803015869: "Canaal Digitaal", 3201606009910: "CANAL+", 3201506003488: "Crave", 3201506003486: "CTV", 3201806016390: "DAZN", 3201608010191: "Deezer", 3201907018786: "DIRECTV GO", 3201803015944: "Discovery+", MCmYXNxgcu.DisneyPlus: "Disney+", 3201901017640: "Disney+", 3201608010385: "EduPedia", "vYmY3ACVaa.emby": "Emby", 3201703012079: "Eurosport Player", 3202004020674: "Explore Google Assistant", 11091000000: "Facebook Watch", 3201906018693: "Focus Sat", 3201910019449: "Foxtel", 3202103023232: "france.tv", 3201710015037: "Gallery", 3201908019022: "globoplay", 3202008021439: "Google Duo", 3201806016381: "hayu", 3201706012478: "HBO GO", cj37Ni3qXM.HBONow: "HBO Max", 3201601007230: "HBO Max", LBUAQX1exg.Hulu: "Hulu", 3201601007625: "Hulu", 3201907018784: "Internet", "org.tizen.browser": "Internet", 121299000089: "ITV Hub", 3201910019354: "Kayo Sports", 3201910019457: "Kidoodle.TV FREE, KidSafe Videos", 3201901017768: "Kijk", 3201703012065: "Love Nature 4K", 3201612011418: "McAfee Security", 3201603008210: "MLB", 3201611011210: "Molotov", 121299000612: "My5", 11101200001: "Netflix", 3201907018807: "Netflix", 3202012022421: "NL Ziet", 3202011022131: "NOW PlayTV", 3201603008746: "NOW TV", 3201706014250: "NPO", 3201703012029: "OCS", 3202103023185: "OQEE by Free", 3201710014866: "Orange TV Go", 3201506003175: "Pathe Thuis", gzcc4LRFBF.Peacock: "Peacock TV" 3201810017091: "Playzer", 3201512006963: "Plex", 3201512006785: "Prime Video", 3201910019365: "Prime Video", 3201909019271: "PrivacyChoices", 3201711015226: "Radio UK", 3202012022468: "Radio WOW", 111399002034: "RaiPlay", 3201511006428: "Rakuten TV", 3201704012212: "RMC Sport", 3201510005981: "SBS On Demand", 3202009021877: "Security Center", 111399002220: "SiriusXM", ZmmGjO6VKO.slingtv: "Sling TV", 3201710015016: "SmartThings", 3201910019378: "SmartThings", 3201606009684: "Spotify", 3201606009798: "Stan", 3201702011851: "Steam Link", 3201604009182: "Telecine", 3202008021462: "Telefoot", 11101000407: "Telstra TV Box Office", 111399000741: "The Weather Network", 3201805016367: "TIDAL", 3202008021577: "TikTok", 3KA0pm7a7V.TubiTV: "Tubi Free Movies & TV", 3201504001965: "Tubi Free Movies & TV", 121299000101: "TuneIn", 3201806016432: "UKTV Play", 3201710015067: "Universal Guide", 3201810017074: "Videoland", 111299000769: "VOYO.RO", kk8MbItQ0H.VUDU" "VUDU", 111012010001: "VUDU", 111299001912: "YouTube", 3201611010983: "YouTube Kids", 3201707014489: "YouTube TV", PvWgqxV3Xa.YouTubeTV: "YouTube TV"

espilva commented 1 year ago

Hi, thanks for your list!

You said that "Updated code list (not exhaustive for the new codes - you can get these using smartThing", could you please describe how? I'm missing a couple of local apps for Spain, Movistar+ and Filmin.

Thanks!!

DaveGut commented 1 year ago

Sorry, I was mistaken. Sadly, our friends at Samsung provide no clear access to the list. You can use the applaunch capability in SmartThings to load the app by name. Definition of app launch:

[ id:custom.launchapp, version:1, status:proposed, name:launchApp, ephemeral:false, attributes:[:], commands:[ launchApp:[name:launchApp, arguments:[ [name:appId, optional:true, schema:[type:string]], [name:appName, optional:true, schema:[type:string]]]]]]

espilva commented 1 year ago

Thanks again, @DaveGut!

I'm afraid I'm looking for a REST interface, not sure if the applaunch by name capability is exposed through REST.

DaveGut commented 1 year ago

Actually, i use https calls to the TV device in determining if an app is installed and then running the app. The code is in the zip file below undern name "davegut.samsungTvApps.

Code tests known apps against the TV set. If the app is installed, it returns a JSON file with the app name and appId. (I know of no way to obtain a list of apps from the TV.)

github.com/DaveGut/HubitatActive/blob/master/SamsungTvRemote/SamsungTVRemote_4_1.zip

DaveGut commented 1 year ago

Additionally, the SmartThing interface is exposed using HTTP calls. That data is in the file below - where I interface to the SmartThings API. This driver (with the library above) provides local control of remote functions plus local app request/control. In addition, it gets attributes from SmartThings as well as providing non-remote control (like setVolume to an explicit value).

https://github.com/DaveGut/HubitatActive/blob/master/SamsungTvRemote/SamsungTVRemote_4_1.zip

espilva commented 1 year ago

Neither do I, though there's an old post at Samsung's development forum with a piece of Javascript code which should get the list of apps:

https://forum.developer.samsung.com/t/app-ids-for-samsung-smart-tv/21687/2

Don't know how to run it, not a Javascript guy. Python would be a different matter.

DaveGut commented 1 year ago

That code uses the a list of possible apps and checks them one at a time. Same as I do in my code.

espilva commented 1 year ago

Now trying to make work this piece of code, that in theory should get the list:

    def app_list(self):
        _LOGGING.debug('Get app list')
        self._ws_send({
            'method': 'ms.channel.emit',
            'params': {
                'event': 'ed.installedApp.get',
                'to': 'host'
            }
        })

        response = self._process_api_response(self.connection.recv())
        if response.get('data') and response.get('data').get('data'):
            return response.get('data').get('data')
        else:
            return response

It's from the Samsungtvws library.

espilva commented 1 year ago

And this is from the Samsung's web API reference:

https://developer.samsung.com/smarttv/develop/api-references/tizen-web-device-api-references/application-api.html#ApplicationManager::getAppsInfo

espilva commented 1 year ago

Finally!! Another quite comprehensive list of app ids plus how to extract them from the TV:

https://tavicu.github.io/homebridge-samsung-tizen/extra/applications.html#list-with-ids

espilva commented 1 year ago

Finally!! Another quite comprehensive list of app ids plus how to extract them from the TV:

https://tavicu.github.io/homebridge-samsung-tizen/extra/applications.html#list-with-ids

@DaveGut