as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
AWS
Documentation
Support
Contact Us
My Cases
Develop
Test
Publish
Monetize
Engage users
Device Specifications
Resources

Example Receipe Configuration for JSON Roku Feed

This example shows a recipe configuration for a feed that conforms to the required MRSS elements in a Roku feed.

Feed (xmlfeed2_CategoriesRecipe.json)

https://amzndevresources.com/fire-app-builder/feeds/feed2.xml

Category recipe:

{
  "cooker": "DynamicParser",
  "format": "xml",
  "model": "com.amazon.android.model.content.ContentContainer",
  "translator": "ContentContainerTranslator",
  "modelType": "array",
  "query": "//*[name()='media:category']/text()",
  "queryResultType": "[]$",
  "matchList": [
    "/StringKey@mTitle"
  ],
  "keyDataType": "/StringKey@keyDataPath"
}

Contents recipe (xmlfeed2_ContentsRecipe.json):

{
  "cooker": "DynamicParser",
  "format": "xml",
  "model": "com.amazon.android.model.content.Content",
  "translator": "ContentTranslator",
  "modelType": "array",
  "query": "//item[*[name()='media:category']='$$par0$$']",
  "matchList": [
    "media:title/#text@mTitle",
    "guid/#text@mId",
    "media:description/#text@mDescription",
    "media:content/#attributes/url@mUrl",
    "media:thumbnail/#attributes/url@mCardImageUrl",
    "media:thumbnail/#attributes/url@mBackgroundImageUrl"
  ]
}

BasicFileBasedUrlGeneratorConfig.json:

{
  "url_file": "urlFile_xmlfeed2.json"
}

urlFile_xmlfeed2.json

{
  "urls": [
    "https://amzndevresources.com/fire-app-builder/feeds/feed2.xml"
  ]
}

Navigator.java

...
public static final String NAVIGATOR_FILE = "Navigator_xmlfeed2.json";
...

Navigator_xmlfeed2.json

{
  "config": {
    "showRelatedContent": true,
    "useCategoryAsDefaultRelatedContent": true,
    "searchAlgo": "basic",
    "enableCEA608": false,
    "enableRecentRow": true,
    "maxNumberOfRecentItems": 5
  },
  "branding": {
    "globalTheme": "AppTheme",
    "lightFont" : "Roboto Light",
    "boldFont" : "Roboto Bold",
    "regularFont" : "Roboto Regular"
  },
  "globalRecipes": [
    {
      "categories": {
        "dataLoader": "recipes/xmlfeed2_DataLoaderRecipe1.json",
        "dynamicParser": "recipes/xmlfeed2_CategoriesRecipe.json"
      },
      "contents": {
        "dataLoader": "recipes/xmlfeed2_DataLoaderRecipe1.json",
        "dynamicParser": "recipes/xmlfeed2_ContentsRecipe.json"
      }
    }
  ],
  "graph": {
    "com.amazon.android.tv.tenfoot.ui.activities.SplashActivity": {
      "verifyScreenAccess": false,
      "verifyNetworkConnection": true,
      "onAction": "CONTENT_SPLASH_SCREEN"
    },
    "com.amazon.android.tv.tenfoot.ui.activities.ContentBrowseActivity": {
      "verifyScreenAccess": false,
      "verifyNetworkConnection": true,
      "onAction": "CONTENT_HOME_SCREEN"
    },
    "com.amazon.android.tv.tenfoot.ui.activities.VerticalContentGridActivity": {
      "verifyScreenAccess": false,
      "verifyNetworkConnection": true,
      "onAction": "CONTENT_SUBMENU_SCREEN"
    },
    "com.amazon.android.tv.tenfoot.ui.activities.ContentDetailsActivity": {
      "verifyScreenAccess": false,
      "verifyNetworkConnection": true,
      "onAction": "CONTENT_DETAILS_SCREEN"
    },
    "com.amazon.android.tv.tenfoot.ui.activities.ContentSearchActivity": {
      "verifyScreenAccess": false,
      "verifyNetworkConnection": true,
      "onAction": "CONTENT_SEARCH_SCREEN"
    },
    "com.amazon.android.uamp.ui.PlaybackActivity": {
      "verifyScreenAccess": false,
      "verifyNetworkConnection": true,
      "onAction": "CONTENT_RENDERER_SCREEN"
    }
  }
}

xmlfeed2_DataLoaderRecipe2.json

{
  "task": "load_data",
  "url_generator": {
    "url_index": "0"
  }
}

Last updated: Aug 03, 2018