</thead>
<tbody>
- <tr>
- <td>app</td>
- <td>Game UUID</td>
- <td>uuid</td>
- <td>uuid</td>
- <td>uuid</td>
- <td>-</td>
- <td>App.uuid</td>
- <td>780688a9-95ee-429a-8755-69a8d0c88fe0</td>
- <td></td>
- </tr>
<tr>
<td>app</td>
<td>Game title</td>
<tr>
<td>app</td>
<td>Package name</td>
- <td>package</td>
+ <td>packageName</td>
<td>package</td>
<td></td>
<td>apk.package</td>
<tr>
<td>app</td>
<td>Game website</td>
- <td>website</td>
+ <td>website (optional)</td>
<td></td>
<td>website</td>
<td>-</td>
<td></td>
</tr>
+ <tr>
+ <td>?</td>
+ <td>Metadata about the file</td>
+ <td>-</td>
+ <td>-</td>
+ <td></td>
+ <td>metaData</td>
+ <td>-</td>
+ <td>["key:rating.average", "key:developer.name", "key:suggestedAge", "45.29 MiB"]</td>
+ <td>Always those 4 values and in the same order (at least for apps)</td>
+ </tr>
+
<tr>
<td>rating</td>
<td>Number of likes?</td>
- <td>rating.likeCount</td>
+ <td>rating.likeCount (optional)</td>
<td></td>
<td>likeCount</td>
<td>-</td>
<tr>
<td>rating</td>
<td>Average rating</td>
- <td>rating.average</td>
+ <td>rating.average (optional)</td>
<td>rating.average</td>
<td>ratingAverage</td>
<td>rating.average</td>
<tr>
<td>rating</td>
<td>Number of ratings</td>
- <td>rating.count</td>
+ <td>rating.count (optional)</td>
<td>rating.count</td>
<td>ratingCount</td>
<td>rating.count</td>
<td>promotedProduct.description</td>
<td>promotedProduct.description</td>
<td>Product.description</td>
- <td>Remove the 9 satellites limitation. Infinite satellites!</td>
+ <td>
+ Remove the 9 satellites limitation. Infinite satellites!<br/>
+ null (759x)
+ </td>
<td></td>
</tr>
<tr>
<td>?</td>
<td>promotedProduct.type</td>
<td>?</td>
- <td>"entitlement"</td>
+ <td>"entitlement" (502x), null (758x)</td>
<td></td>
</tr>
<td>apk</td>
<td>UUID of latest apk version</td>
<td>releases.*.uuid</td>
- <td>latestVersion.uuid</td>
- <td>latestVersion</td>
+ <td>
+ uuid<br/>
+ latestVersion.uuid
+ </td>
+ <td>
+ uuid<br/>
+ latestVersion
+ </td>
<td>version.uuid</td>
- <td>-</td>
+ <td>App.uuid</td>
<td>780688a9-95ee-429a-8755-69a8d0c88fe0</td>
- <td></td>
+ <td>The OUYA API does not have app UUIDs, only release/apk uuids. </td>
+ </tr>
+ <tr>
+ <td>apk</td>
+ <td>Internal version</td>
+ <td>releases.*.versionCode</td>
+ <td>-</td>
+ <td>-</td>
+ <td>apk.versionCode</td>
+ <td>Apk.versionCode</td>
+ <td>null (1162x), 120401, 11, 1001004</td>
+ <td>Run "aapt dump badging file.apk", field "versionCode"</td>
</tr>
<tr>
<td>apk</td>
<td>FIXME</td>
- <td>releases.*.publicSize</td>
+ <td>releases.*.publicSize (optional)</td>
<td></td>
<td>publicSize</td>
<td>apk.publicSize</td>
<tr>
<td>apk</td>
<td>FIXME</td>
- <td>releases.*.nativeSize</td>
+ <td>releases.*.nativeSize (optional)</td>
<td></td>
<td>nativeSize</td>
<td>apk.nativeSize</td>
<td>md5sum</td>
<td>apk.md5sum</td>
<td>Apk.md5sum</td>
- <td>a5b0f82d54df5f551a64295e43771a10</td>
+ <td>a5b0f82d54df5f551a64295e43771a10, null (432x)</td>
<td></td>
</tr>
<tr>
</td>
<td>
Also in download.json<br/>
- Details field: only a file name, no path/domain
+ Details field: only a file name, no path/domain. Always set.
</td>
</tr>
<tr>
<td>media.large</td>
<td></td>
<td>mainImageFullUrl</td>
- <td>heroImage.url</td>
+ <td>-</td>
<td>App.titleImage</td>
<td>https://d3e4aumcqn8cw3.cloudfront.net/api/file/MASaiOBlTEO7GKYXsIns</td>
<td></td>
</tr>
+ <tr>
+ <td>media</td>
+ <td>FIXME</td>
+ <td>-</td>
+ <td>-</td>
+ <td>-</td>
+ <td>heroImage.url</td>
+ <td>?</td>
+ <td>
+ https://s3.amazonaws.com/ouya-screenshots/3d819f4e-2195-433c-81ea-c766a6f3144f/ouya-image20170118-3-i56ad1<br/>
+ null
+ </td>
+ <td>
+ Most games, had "null" here, only 14 had one set.
+ When this was set, mobileAppIcon was also set.
+ </td>
+ </tr>
<tr>
<td>media</td>
<td>Video</td>
- <td>media.video</td>
+ <td>media.video (optional)</td>
<td></td>
<td>videoUrl</td>
- <td>mediaTiles.*.url (when mediaTiles.*.type=video)</td>
+ <td></td>
<td>Media</td>
<td>https://vimeo.com/141878938</td>
<td></td>
<tr>
<td>media</td>
<td>Game screenshots</td>
- <td>media.screenshots</td>
+ <td>media.screenshots (optional)</td>
<td></td>
<td>filepickerScreenshots</td>
- <td>mediaTiles.*.urls.full, mediaTiles.*.urls.thumb, mediaTiles.*.fp_url (when mediaTiles.*.type=image)</td>
+ <td>-</td>
<td>Media</td>
<td>[urls]</td>
<td></td>
</tr>
+ <tr>
+ <td>media</td>
+ <td>Detail video</td>
+ <td>media.details.*.url</td>
+ <td></td>
+ <td></td>
+ <td>mediaTiles.*.url (type=video)</td>
+ <td>?</td>
+ <td>
+ <pre>[
+ {
+ "type": "video",
+ "url": "https://vimeo.com/141878938"
+ }
+]</pre>
+ </td>
+ <td rowspan="4">
+ Allows free ordering of images and videos on the details page.<br/>
+ "fp" is probably "FilePicker".<br/>
+ fp_url is not used in OUYA's launcher.
+ The launcher loads the thumbnail at first, immediately after the full image.
+ If no mediaTile is available, the app's mainImageFullUrl
+ is used. When offline, the apk image is used.<br/>
+ <br/>
+ Game data information:
+ If details is not given or an emtpy array,
+ "mediaTile" array should automatically be created by combining
+ "media.large", "media.video" and "media.screenshots" into the
+ mediaTiles format.
+ </td>
+ </tr>
+ <tr>
+ <td>media</td>
+ <td>Detail image thumbnail</td>
+ <td>media.details.*.thumb</td>
+ <td></td>
+ <td></td>
+ <td>mediaTiles.*.urls.thumb (type=image)</td>
+ <td>?</td>
+ <td>
+ Thumbnails were all size 852x479
+ <pre>[
+ {
+ "type: "image",
+ "urls": [
+ "full": "http://...",
+ "thumb": "http://...",
+ ],
+ "fp_url": "http://...."
+ },
+]</pre>
+ </td>
+ </tr>
+ <tr>
+ <td>media</td>
+ <td>Detail image full resolution</td>
+ <td>media.details.*.url</td>
+ <td></td>
+ <td></td>
+ <td>mediaTiles.*.urls.full (type=image)</td>
+ <td>?</td>
+ <td>
+ Many detail images had a resolution of 1280x720.
+ <pre>[
+ {
+ "type: "image",
+ "urls": [
+ "full": "http://...",
+ "thumb": "http://...",
+ ],
+ "fp_url": "http://...."
+ }
+]</pre>
+ </td>
+ </tr>
+ <tr>
+ <td>media</td>
+ <td>Detail image file picker URL</td>
+ <td>-</td>
+ <td></td>
+ <td></td>
+ <td>mediaTiles.*.fp_url</td>
+ <td>?</td>
+ <td>
+ <pre>[
+ {
+ "type: "image",
+ "urls": [
+ "full": "http://...",
+ "thumb": "http://...",
+ ],
+ "fp_url": "http://...."
+ }
+]</pre>
+ </td>
+ </tr>
<tr>
<td>media</td>
<td>FIXME</td>
null<br/>
https://s3.amazonaws.com/ouya-screenshots/3ae8fc67-f7f5-4f97-a48c-8ea2d31460fd/ouya-image20170911-3-v6tjz1
</td>
- <td></td>
+ <td>
+ 1246x null, rest had its own URL.
+ Set when heroImage was filled.
+ </td>
</tr>
<tr>
<tr>
<td>developer</td>
<td>Developer support mail</td>
- <td>developer.supportEmail</td>
+ <td>developer.supportEmail (optional)</td>
<td></td>
<td>supportEmailAddress</td>
<td>-</td>
<tr>
<td>developer</td>
<td>Support phone number</td>
- <td>developer.supportPhone</td>
+ <td>developer.supportPhone (optional)</td>
<td></td>
<td>supportPhone</td>
<td>-</td>
<tr>
<td>developer</td>
<td>Developer is a founder</td>
- <td>developer.founder</td>
+ <td>developer.founder (optional)</td>
<td></td>
<td>founder</td>
<td>developer.founder</td>
<td>false</td>
<td></td>
</tr>
+ <tr>
+ <td>developer</td>
+ <td>Developer UUID</td>
+ <td>developer.uuid (optional)</td>
+ <td>-</td>
+ <td>-</td>
+ <td>developer.url (part of)</td>
+ <td>Developer.uuid</td>
+ <td>ouya://launcher/details?developer=5b015434-8a78-4274-aa5d-0cb2e330e50e</td>
+ <td></td>
+ </tr>
</tbody>
</table>