Here at MetaBroadcast we’ve been doing a fair amount of changes recently relating to our Atlas channels. The principal change is that we are now getting great data about channels from our good friends the PA. As a result of this, our channels will be gaining some shiny new fields, and the information should now be updated on a much more timely fashion. We hope to get these changes live in the next week, so if you use channels, please read on to find out how they’ve changed.
It is worth noting at this point that these changes are not backwards compatible, but wherever possible we’ve tried to change as little as possible, so moving across to the new format should be simple.
We’ve added a fair amount of information to our channel and channel group models, including:
- adding channel numbers to channels and channel groups
- adding the history of channel/channel group names and images
- adding history for channel numbers
- channels can now have a parent channel, to help deal with variations such as regional and HD variants
how much have things changed?
While we’ve added a fair number of new fields, we’ve tried to keep things as similar as possible to what was there previously. So, if you go to the channels endpoint, with no additional parameters specified, you’ll get back something like this:
As you can see, everything looks fairly familiar. The main additions are the
parent field, which I’ll come to shortly, and several new fields.
regional is a boolean, which indicates whether or not a channel is a regional variant. In this case, ITV Granada +1 is a regional variant of ITV.
timeshift indicates the timeshift between this channel and the main channel, in seconds. In this case, it’s a ‘+1’ channel, so is 3600 seconds behind the main ITV channel. Lastly,
start_date is the date on which the channel started.
parents and variations
As I touched on earlier, channels can now have parents or variations. This is to cope with channels being variants on a single main channel. For instance, in the example above, ITV Granada +1 is a variant of ITV. Thus, in the output, it has a parent field, linking to the main ITV channel. Similarly, the main ITV channel will have a
variations field, displaying all of its various variants:
There will be some channels which have neither
variations fields- they are simply standalone channels, and thus have no variants.
Channel groups have not had as many changes as channels. The major change is that Channel groups can now have
regions or a
platform. Whilst we had a distinction between region and platform channel groups previously, platforms now contain a list summary of their regions, and regions each have a link to their platform. There are examples of both below.
The existing platforms and regions are deprecated and will be deleted when we release these changes.
One of the biggest changes that we’ve done is to add channel numbers. These can be accessed by adding either the
channel_groups annotation on the channels endpoint, or the
channels annotation on the channel groups endpoint. They provide a link between a channel and a channel group, and will appear as follows:
Another major change we’ve added, thanks to the new data from the PA, is historical changes to various fields. Channel names and images have a history of changes, as do channel group names. Channel numbers also have history. This information is not shown by default. However, both the channels and channel groups endpoints have a new
history annotation, which when added, will display all of this historical information. For example, requesting a channel with the
channel_groups annotations yields the following:
As you can see in the above example, the
history annotation adds a
history block to both the channel itself as well as to any channel groups on the channel, if that annotation is also selected. The same is true on the channel groups endpoint- the
history annotation adds a block to both the channel group and to any nested channels, should the
channels annotation be present.
There are also, in addition to the
history annotation, two new annotations on the channels endpoint:
variations. These act as expanders on the fields in question, so if the channel is a parent channel, and so has a variations block, if you specify the
variations annotation, each of the channels in the variations block will be expanded to give more information:
It is worth noting that this will only expand nested channels to one level down. So in the example above, if you specify both the
variations annotations, it will expand the variations in the channel returned, but not the parent channels nested inside each variant channel.
filtering channel groups
Finally, we’ve added some filtering and sorting parameters to the channel groups endpoint to make it easier to find what you’re looking for. There is now a
type parameter, which can be either
platform which, as you’d expect, filters the output to just channel groups of type ‘region’ or ‘platform’ respectively. These changes mean that it’s now really easy to get the channels for a given region, with their channel numbers.
As always with changes like this, we’ll post to the Atlas mailing list when this goes out. If you have any questions or comments, please post in there, and we’ll get back to you as soon as possible.