#17. Example Manifests
#17.1 Open Addon: plain, public, no auth
{
"addonium": "1.0",
"id": "club.example.openradio",
"name": "Open Radio",
"version": "1.0.0",
"description": "A public collection of Creative Commons tracks.",
"type": "open",
"auth": null,
"baseUrl": "https://openradio.example.com",
"distribution": ["manifest"],
"resources": ["search", "stream"],
"types": ["track"],
"storesData": false
}
#17.2 Locked Addon: tokenized URL, no client restriction
{
"addonium": "1.0",
"id": "com.example.premiumsource",
"name": "Premium Source",
"version": "3.2.0",
"type": "locked",
"auth": {
"method": "url-token",
"tokenGrant": "self-serve",
"grantUrl": "https://example.com/account/addon-token"
},
"baseUrl": "https://api.example.com/t/{token}",
"distribution": ["manifest"],
"resources": ["search", "stream", "library"],
"storesData": true
}
#17.3 Locked Addon: compiled module + strict client allowlist
{
"addonium": "1.0",
"id": "com.example.walledgarden",
"name": "Walled Garden Source",
"version": "0.9.1",
"type": "locked",
"auth": { "method": "module-key" },
"distribution": ["module"],
"resources": ["search", "stream"],
"clients": {
"enforced": true,
"allow": ["com.myplayer.official"],
"identify": "header",
"header": "X-Addonium-Client",
"onDeny": { "status": 403, "message": "Only the official client may use this addon." }
},
"storesData": false
}