Using DVB triplet information to get channel metadata
Overview
OpenTV Video Platform's Metadata Service (MDS) provides DVB triplet information in the channel metadata that it provides.
This allows client devices to match broadcast channels to the corresponding metadata provided by MDS and thus enhance the information about the channel that is presented to the user.
DVB triplet format
A DVB triplet consists of the following identifiers that, when used together, provide a means to uniquely identify a DVB service (channel):
- Original Network ID
- Transport Stream ID
- Service ID
For matching purposes, the identifiers can be referenced individually or (more typically) have some friendly convention applied. OpenTV Platform uses a full stop delimited concatenation of the three values as the triplet identifier.
This is shown in the following example:
Field | Example value | Resulting DVB ID |
---|---|---|
Original Network ID | 8442 | 8442.4.257 |
Transport Stream ID | 4 | |
Service ID | 257 |
Other conventions are also used in the industry. For example, the three values are sometimes converted into four-byte hex values that are then concatenated to form a 12-byte hex string:
Field | Value | Hexadecimal Value | DVB ID |
---|---|---|---|
Original Network Id | 8442 | 20FA | 20FA00040101 |
Transport Stream Id | 4 | 0004 | |
Service Id | 257 | 0101 |
OpenTV Video Platform currently only supports the full stop delimited format described above.
Querying MDS
To query MDS for a list of channels, use the MDS Services API.
You can then parse the response for channels that match the DVB triplets of the identified available broadcast channels. The dvbinfo
block provides this information for each editorial channel for which a DVB triplet is defined.
For example:
{
"total_records": 1,
"services": [
{
"editorial": {
"id": "GLOBAL_140",
"dvbinfo": {
"nid": 1234,
"triplet": {
"onid": 156,
"tsid": 8100,
"sid": 257,
"uid": "156.8100.257"
}
}
},
"technical": {
"id": "GLOBAL_140_D"
}
...
}
}
]
}
You can also filter on a DVB triplet to get just the metadata for a specific channel. For example:
https://<host>:<port>/metadata/delivery/<provider>/btv/services?filter={"editorial.dvbinfo.triplet.uid":"156.8100.257"}&fields=["Title","tvChannel","dvbinfo"]&offset=0&limit=10
See also
For full details of this API, see Metadata Server (MDS) API Documentation.