-
Notifications
You must be signed in to change notification settings - Fork 29
JSON STREAMS format
The JSON-STREAMS format is an alternative format for the M3U8 format (as used by Kodi's PVR IPTV Simple add-on) to list TV and Radio channels with all required metadata in JSON format.
This is a draft for version 1 of the standard.
The JSON structure for the playlist is a list of dictionaries, with each dictionary consisting of the following information.
Attribute | Required | Description |
---|---|---|
name |
Yes | The display name of the channel. |
stream |
Yes | The plugin:// -endpoint to call to play the live stream. |
id |
No | A unique id that maps to a key in the JSON-EPG. |
logo |
No | The logo for the channel. |
preset |
No | The channel's preferred number. |
group |
No | The group name. Defaults to the name of the Add-on. |
radio |
No | Defines if this is a Radio channel. Defaults to false
|
vod |
No | The plugin:// -endpoint with some supported placeholders to play a video on demand stream by air date. |
-
stream
This is the endpoint that will be called when the channel should play. If no live channel is available, an appropriate error should be shown instead.Example:
plugin://plugin.video.example/play/id/vualto_een_geo
-
logo
This can be an URL to an online image, or aspecial://
-URI for a logo embedded in the Add-on itself.Example:
special://home/addons/plugin.video.example/resources/logos/radio1.png
-
vod
This is the endpoint that will be called when video on demand content is requested from the EPG. The endpoint should contain one of the placeholders below. It's the responsibility of the Add-on to lookup the right program. Note that the timestamps might be outdated when the EPG is renewed since it was last downloaded, so it's recommended to use more then just the{start}
placeholder.-
{start}
: the time when the program will start inYYYY-MM-DDTHH:MM:SS
format. -
{stop}
: the time when the program will end inYYYY-MM-DDTHH:MM:SS
format. -
{duration}
: the duration of the program in seconds.
Example:
plugin://plugin.video.example/play/bbc1/airdate/{start}/{stop}
-
{
"version": 1,
"streams": [
{
"id": "een.be",
"name": "Eén",
"stream": "plugin://plugin.video.example/play/id/vualto_een_geo",
"logo": "https://example.com/logo/een.png",
"group": "VRT TV",
"vod": "plugin://plugin.video.example/play/eenbe/airdate/{date}"
},
{
"id": "radio1.be",
"name": "Radio 1",
"stream": "http://icecast.vrtcdn.be/radio1-high.mp3",
"logo": "special://home/addons/plugin.video.example/resources/logos/radio1.png",
"group": "VRT Radio",
"radio": true
}
]
}
Feel free to add to or improve this Wiki space. Questions can be asked by opening an issue.