The test cases and testing methods for Content Launcher and Account Login are documented in the following documents:
We provide a CLI tool that enables developers to execute Content Launcher actions and verify Account Login status through simple commands.
Demo Video
Start by watching the demo video, then proceed to the document..
Setup
Step 1: Download the tool
Download kcp-cli-v2.zip and extract.
Step 2: Copy the file kcp-cli-v2 to your Vega device and make it executable
termi ~ % vda push kcp-cli-v2 /tmp
termi ~ % vda shell
callie:/$ cd /tmp
callie:/$ chmod +x kcp-cli-v2
callie:/$ ./kcp-cli-v2 --help
Important: These steps must be repeated after each device restart.
CLI commands & examples
For sample code to test both Content Launcher and Account Login, refer to this section of the launch requests example document.
Replace ‘com.kepler.contentlaunchersampleapp’ with your app’s package id (without .main) in the following examples.
Download the ZIP file below, extract its contents, and open the HTML file on your local machine to generate CLI commands for your app.
kcpclicommandsgenerator.html.zip (4.3 KB)
Account Login verification
Login to your app , then run the following command in device shell to verify if the login status is true in the Fire TV. Use your app’s package id after -p replacing ‘com.kepler.contentlaunchersampleapp’
./kcp-cli-v2 account-login read -p 'com.kepler.contentlaunchersampleapp'
You will see following output with status true.
Account login status: true
Logout from the app, run the command and verify if the status is false.
Alexa Voice commands verification
Following is the command format to invoke the Content Launcher handler.
./kcp-cli-v2 content-launcher launch -p <package_id> --content-search '<CONTENT_SEARCH>' --auto-play
-p: Your app’s package id (without .main)--auto-play: Sets autoplay to true.--content-search: json schema for content launch parameters. One example schema for CONTENT_SEARCH value is as below::
{"parameter_list":[{"param_type":"[TYPE_VALUE]","value":"[CONTENT_NAME]","external_id_list":[{"name":"[PROVIDER_NAME]","value":"[PROVIDER_ID]"},{"name":"amzn_id","value":"[ID VALUE]"},{"name":"ENTITY_ID","value":"[ENTITY_ID]"}]},{"param_type":15,"value":"[EPISODE_NUMBER]","external_id_list":[]},{"param_type":14,"value":"[SEASON_NUMBER]","external_id_list":[]}]}
Following are some example commands for specific Alexa utterances:
Note: To test your app , change -p parameter to your app’s package id and change “amzn_id” value to ID from your catalog. Refer this document to understand catalog format.
Utterance: "Alexa, Watch [Movie Name] "
Example: “Alexa, Watch Seabound”
./kcp-cli-v2 content-launcher launch -p 'com.kepler.contentlaunchersampleapp' --content-search '{"parameter_list":[{"param_type":13,"value":"Seabound","external_id_list":[{"name":"streamz_us","value":"1700000849"},{"name":"amzn_id","value":"1700000849"},{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"}]}]}' --auto-play
Utterance: “Alexa, Watch [Season number] [Episode number] in [Show Name]”
Example: Alexa, Watch Season 1, Episode 3, in Seabound"
./kcp-cli-v2 content-launcher launch -p 'com.kepler.contentlaunchersampleapp' --content-search '{"parameter_list": [{"param_type": 13,"value": "Seabound","external_id_list": [{"name": "streamz_us","value": "1700000849"},{"name": "amzn_id","value": "1700000849"},{"name": "ENTITY_ID","value": "sample-alxea-entity-xyz"}]},{"param_type": 15,"value": "3","external_id_list": []},{"param_type": 14,"value": "1","external_id_list": []}]}' --auto-play
Utterance: “Alexa, Watch [Episode Number] in [Show Name]”
Example: “Alexa, Watch Episode 3 in Seabound”
./kcp-cli-v2 content-launcher launch -p 'com.kepler.contentlaunchersampleapp' --content-search '{"parameter_list":[{"param_type":13,"value":"Seabound","external_id_list":[{"name":"streamz_us","value":"1700000849"},{"name":"amzn_id","value":"1700000849"},{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"}]},{"param_type":15,"value":"3","external_id_list":[]}]}' --auto-play
Utterance: “Alexa, Watch [Season Number] in [Show Name]”
Example: “Alexa, Watch Season 1 in Seabound”
./kcp-cli-v2 content-launcher launch -p 'com.kepler.contentlaunchersampleapp' --content-search '{"parameter_list":[{"param_type":13,"value":"Seabound","external_id_list":[{"name":"streamz_us","value":"1700000849"},{"name":"amzn_id","value":"1700000849"},{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"}]},{"param_type":14,"value":"3","external_id_list":[]}]}' --auto-play
Utterance: “Alexa, Search [Movie Name / Show Name]”
Example: “Alexa, Search Seabound”
./kcp-cli-v2 content-launcher launch -p 'com.kepler.contentlaunchersampleapp' --content-search '{"parameter_list":[{"param_type":13,"value":"Seabound","external_id_list":[{"name":"streamz_us","value":"1700000849"},{"name":"amzn_id","value":"1700000849"},{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"}]}]}'
Utterance: “Alexa, find [Movie Name]”
Example: “Alexa, find Seabound”
./kcp-cli-v2 content-launcher launch -p 'com.kepler.contentlaunchersampleapp' --content-search '{"parameter_list":[{"param_type":13,"value":"Seabound","external_id_list":[{"name":"streamz_us","value":"1700000849"},{"name":"amzn_id","value":"1700000849"},{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"}]}]}'
Utterance: “Alexa, find [actor]”
Example: “Alexa, Find Sean Connery”
./kcp-cli-v2 content-launcher launch -p 'com.kepler.contentlaunchersampleapp' --content-search '{"parameter_list":[{"param_type":0,"value":"Sean Connery","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"}]},{"param_type":0,"value":"Sean Connery","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"}]},{"param_type":0,"value":"Sean Connery","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"}]},{"param_type":0,"value":"Sean Connery","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"}]},{"param_type":0,"value":"Sean Connery","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"}]},{"param_type":13,"value":"Sean Connery","external_id_list":[]}]}'
Utterance: “Alexa, find [genre]”
Example: “Alexa, Find Comedy Movies”
./kcp-cli-v2 content-launcher launch -p 'com.kepler.contentlaunchersampleapp' --content-search '{"parameter_list":[{"param_type":6,"value":"comedy","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"},{"name":"tms","value":"sample-alxea-entity-xyz"}]},{"param_type":6,"value":"Comedy","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"},{"name":"tms","value":"sample-alxea-entity-xyz"}]},{"param_type":6,"value":"Comedy","external_id_list":[{"name":"ENTITY_ID","value":"4"},{"name":"tms","value":"4"}]},{"param_type":6,"value":"dark comedy","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"},{"name":"tms","value":"sample-alxea-entity-xyz"}]},{"param_type":6,"value":"romantic comedy","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"},{"name":"tms","value":"sample-alxea-entity-xyz"}]},{"param_type":13,"value":"comedy","external_id_list":[]}]}'
Utterance: “Alexa, Play [genre]”
Example: “Alexa, Play Comedy Movies”
./kcp-cli-v2 content-launcher launch -p 'com.kepler.contentlaunchersampleapp' --content-search '{"parameter_list":[{"param_type":6,"value":"comedy","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"},{"name":"tms","value":"sample-alxea-entity-xyz"}]},{"param_type":6,"value":"Comedy","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"},{"name":"tms","value":"sample-alxea-entity-xyz"}]},{"param_type":6,"value":"Comedy","external_id_list":[{"name":"ENTITY_ID","value":"4"},{"name":"tms","value":"4"}]},{"param_type":6,"value":"dark comedy","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"},{"name":"tms","value":"sample-alxea-entity-xyz"}]},{"param_type":6,"value":"romantic comedy","external_id_list":[{"name":"ENTITY_ID","value":"sample-alxea-entity-xyz"},{"name":"tms","value":"sample-alxea-entity-xyz"}]},{"param_type":13,"value":"comedy","external_id_list":[]}]}' --auto-play
For detailed parameter specifications and additional examples, refer to the documentation links above.
Content Launcher and Account Login integrations are available to only select partners as of now.