Guide Service
Contents
What is this?
See Services API
Guide Service API List
| API Command | POST Required? | Description |
| GetProgramGuide | No | The the guide information for a particular time period and set of channels |
| GetProgramDetails | No | Get the detailed guide information for a particular program starting at a particular time on a particular channel. |
| GetChannelIcon | No | Get the icon file for a given channel. |
| GetProgramList | No | Get a filtered list of programs matching the given search criteria. |
| GetChannelGroupList | No | Get the list of channel groups. |
| GetCategoryList | No | Get a list of program categories. |
| GetStoredSearches | No | Get the list of stored searches. |
| AddToChannelGroup | Yes | Add a given channel to a channel group. |
| RemoveFromChannelGroup | Yes | Remove a given channel from a channel group. |
Guide APIs
GetProgramGuide
The GetProgramGuide API takes the following arguments:
- StartTime (Required)
- Parameter Type: String
- The start time for the guide. This should be in MySQL ISO format, eg: 2011-08-29 18:59:00. You can replace the space with %20 or T.
- EndTime (Required)
- Parameter Type: String
- The end time for the guide. This should be in MySQL ISO format, eg: 2011-08-29 18:59:00. You can replace the space with %20 or T.
- StartIndex (Optional)
- Parameter Type: Integer
- The starting channel index for the guide information.
- Count (Optional)
- Parameter Type: Integer
- The number of channels to return in the guide information.
- Details (Optional)
- Parameter Type: Boolean
- Return extensive details about the program data.
- ChannelGroupId (Optional)
- Parameter Type: Integer
- Filter returned channels by Channel Group
Example Query:
Example Return:
<?xml version="1.0" encoding="UTF-8"?>
<ProgramGuide version="1.0" serializerVersion="1.1">
<StartTime>2020-08-01T19:00:00Z</StartTime>
<EndTime>2020-08-01T20:00:00Z</EndTime>
<Details>false</Details>
<StartIndex>50</StartIndex>
<Count>10</Count>
<TotalAvailable>68</TotalAvailable>
<AsOf>2020-08-02T12:43:40Z</AsOf>
<Version>32.20200101-1</Version>
<ProtoVer>91</ProtoVer>
<Channels>
<ChannelInfo>
<ChanId>70108</ChanId>
<ChanNum>108</ChanNum>
<CallSign>BBCScotlandHD</CallSign>
<IconURL>/Guide/GetChannelIcon?ChanId=70108</IconURL>
<ChannelName>BBCScotlandHD</ChannelName>
<MplexId>0</MplexId>
<ServiceId>0</ServiceId>
<ATSCMajorChan>0</ATSCMajorChan>
<ATSCMinorChan>0</ATSCMinorChan>
<Format/>
<FrequencyId/>
<FineTune>0</FineTune>
<ChanFilters/>
<SourceId>0</SourceId>
<InputId>0</InputId>
<CommFree>false</CommFree>
<UseEIT>false</UseEIT>
<Visible>true</Visible>
<ExtendedVisible>Visible</ExtendedVisible>
<XMLTVID/>
<DefaultAuth/>
<ChannelGroups/>
<Inputs/>
<ServiceType>0</ServiceType>
<Programs>
<Program>
<StartTime>2020-08-01T18:30:00Z</StartTime>
<EndTime>2020-08-01T19:30:00Z</EndTime>
<Title>Sportscene</Title>
<SubTitle/>
<Category>Sports talk</Category>
<CatType>series</CatType>
<Repeat>false</Repeat>
<VideoProps>2</VideoProps>
<AudioProps>0</AudioProps>
<SubProps>0</SubProps>
<SeriesId/>
<ProgramId/>
<Stars>0</Stars>
<LastModified xsi:nil="true" />
<ProgramFlags>0</ProgramFlags>
<Airdate/>
<Description/>
<Inetref/>
<Season>0</Season>
<Episode>0</Episode>
<TotalEpisodes>0</TotalEpisodes>
<FileSize>0</FileSize>
<FileName/>
<HostName/>
<Channel>
<ChanId>0</ChanId>
<ChanNum/>
<CallSign/>
<IconURL/>
<ChannelName/>
<MplexId>0</MplexId>
<ServiceId>0</ServiceId>
<ATSCMajorChan>0</ATSCMajorChan>
<ATSCMinorChan>0</ATSCMinorChan>
<Format/>
<FrequencyId/>
<FineTune>0</FineTune>
<ChanFilters/>
<SourceId>0</SourceId>
<InputId>0</InputId>
<CommFree>false</CommFree>
<UseEIT>false</UseEIT>
<Visible>true</Visible>
<ExtendedVisible/>
<XMLTVID/>
<DefaultAuth/>
<ChannelGroups/>
<Inputs/>
<ServiceType>0</ServiceType>
<Programs/>
</Channel>
<Recording>
<RecordedId>0</RecordedId>
<Status>Unknown</Status>
<Priority>0</Priority>
<StartTs xsi:nil="true" />
<EndTs xsi:nil="true" />
<FileSize>0</FileSize>
<FileName/>
<HostName/>
<LastModified xsi:nil="true" />
<RecordId>0</RecordId>
<RecGroup/>
<PlayGroup/>
<StorageGroup/>
<RecType>0</RecType>
<DupInType>1</DupInType>
<DupMethod>1</DupMethod>
<EncoderId>0</EncoderId>
<EncoderName/>
<Profile/>
</Recording>
<Artwork>
<ArtworkInfos/>
</Artwork>
<Cast>
<CastMembers/>
</Cast>
</Program>
...
</Programs>
</Channel>
</Channels>
</ProgramGuide>
GetProgramDetails
The GetProgramDetails API takes the following arguments:
- ChanId (Required)
- Parameter Type: Integer
- The database channel id for the guide item.
- StartTime (Required)
- Parameter Type: String
- The program start time. This should be in ISO format, eg: 2011-08-29 18:59:00. You can replace the space with %20 or T.
Example Query:
http://BackendServerIP:6544/Guide/GetProgramDetails?StartTime=2011-10-03T19:00:00&ChanId=2066
Example Return:
<?xml version="1.0" encoding="UTF-8"?>
<Program version="1.1" serializerVersion="1.1">
<StartTime>2011-10-03T19:00:00</StartTime>
<EndTime>2011-10-03T20:00:00</EndTime>
<Title>Little House on the Prairie</Title>
<SubTitle>Make a Joyful Noise</SubTitle>
<Category>Drama</Category>
<CatType>series</CatType>
<Repeat>true</Repeat>
<SeriesId>EP00002633</SeriesId>
<ProgramId>EP000026330155</ProgramId>
<Stars>0</Stars>
<FileSize>0</FileSize>
<LastModified>2011-10-03T19:00:00</LastModified>
<ProgramFlags>4096</ProgramFlags>
<Hostname></Hostname>
<Airdate>1981-01-26</Airdate>
Joe Kagan works up the courage to court Hester Sue, and learns she plans to marry an undertaker (Mel Stewart).
<Inetref></Inetref>
<Season>0</Season>
<Episode>0</Episode>
<Channel>
<ChanId>2066</ChanId>
<ChanNum>185</ChanNum>
<CallSign>HLMRK</CallSign>
<IconURL></IconURL>
<ChannelName>Hallmark Channel (Pacific)</ChannelName>
<MplexId>0</MplexId>
<TransportId>0</TransportId>
<ServiceId>0</ServiceId>
<NetworkId>0</NetworkId>
<ATSCMajorChan>0</ATSCMajorChan>
<ATSCMinorChan>0</ATSCMinorChan>
<Format></Format>
<Modulation></Modulation>
<Frequency>0</Frequency>
<FrequencyId></FrequencyId>
<FrequencyTable></FrequencyTable>
<FineTune>0</FineTune>
<SIStandard></SIStandard>
<ChanFilters></ChanFilters>
<SourceId>0</SourceId>
<InputId>0</InputId>
<CommFree>0</CommFree>
<UseEIT>false</UseEIT>
<Visible>false</Visible>
<XMLTVID></XMLTVID>
<DefaultAuth></DefaultAuth>
<Programs/>
</Channel>
<Recording>
<Status>0</Status>
<Priority>0</Priority>
<StartTs></StartTs>
<EndTs></EndTs>
<RecordId>0</RecordId>
<RecGroup></RecGroup>
<PlayGroup></PlayGroup>
<RecType>0</RecType>
<DupInType>1</DupInType>
<DupMethod>1</DupMethod>
<EncoderId>0</EncoderId>
<Profile></Profile>
</Recording>
</Program>
GetChannelIcon
The GetChannelIcon API takes the following arguments:
- ChanId (Required)
- Parameter Type: Integer
- The database channel id for the icon you desire.
- Width (Optional)
- Parameter Type: Integer
- The scaled width to return the image. To preserve proper aspect, you may want to specify only one of width or height.
- Height (Optional)
- Parameter Type: Integer
- The scaled height to return the image. To preserve proper aspect, you may want to specify only one of width or height.
Example Query:
http://BackendServerIP:6544/Guide/GetChannelIcon?ChanId=3736
Example Return:
The return for this command is a binary file which will be interpreted by your browser and downloaded or displayed as appropriate.
GetProgramList
The GetProgramList API takes the following arguments:
- Count (Optional)
- Parameter Type: Integer
- Number of programs to fetch.
- StartTime (Optional)
- Parameter Type: String
- The recording start time for the items. This should be in MySQL ISO format, eg: 2011-08-29 18:59:00. You can replace the space with %20 or T.
- EndTime (Optional)
- Parameter Type: String
- The recording end time for the items. This should be in MySQL ISO format, eg: 2011-08-29 18:59:00. You can replace the space with %20 or T.
- ChanId (Optional)
- Parameter Type: Integer
- The database channel id for the guide item.
- TitleFilter (Optional)
- Parameter Type: String
- Only find programs matching the given title filter.
- CategoryFilter (Optional)
- Parameter Type: String
- Only find programs matching the given category filter.
- PersonFilter (Optional)
- Parameter Type: String
- Only find programs matching the given person filter.
- KeywordFilter (Optional)
- Parameter Type: String
- Only find programs matching the given keyword filter.
- OnlyNew (Optional)
- Parameter Type: bool
- Only find programs flagged as being new in the EPG.
- Details (Optional)
- Parameter Type: bool
- Return some extra detail like recording status and channel info.
- Sort (Optional)
- Parameter Type: String
- Change the sort order of the programs.
- Descending (Optional)
- Parameter Type: bool
- Whether to sort ascending (default) or descending
Example Query:
Example Return:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<ProgramList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" serializerVersion="1.1">
<StartIndex>0</StartIndex>
<Count>3</Count>
<TotalAvailable>3</TotalAvailable>
<AsOf>2018-01-13T19:02:20Z</AsOf>
<Version>30.20171120-1</Version>
<ProtoVer>91</ProtoVer>
<Programs>
<Program>
<StartTime>2018-01-13T17:50:00Z</StartTime>
<EndTime>2018-01-13T18:00:00Z</EndTime>
<Title>North West Tonight; Weather</Title>
<SubTitle/>
<Category>Newsmagazine</Category>
<CatType>series</CatType>
<Repeat>true</Repeat>
<VideoProps>0</VideoProps>
<AudioProps>0</AudioProps>
<SubProps>0</SubProps>
<SeriesId>EP01293915</SeriesId>
<ProgramId>SH012939150000</ProgramId>
<Stars>0</Stars>
<LastModified>2018-01-13T17:50:00Z</LastModified>
<ProgramFlags>4096</ProgramFlags>
<Airdate>2004-11-15</Airdate>
<Description>
The latest news, sport and weather for the North West of England.
</Description>
<Inetref/>
<Season>0</Season>
<Episode>0</Episode>
<TotalEpisodes>1</TotalEpisodes>
<FileSize>0</FileSize>
<FileName/>
<HostName/>
<Channel>
<ChanId>15001</ChanId>
<ChanNum>1</ChanNum>
<CallSign>BBC1NW</CallSign>
<IconURL>/Guide/GetChannelIcon?ChanId=15001</IconURL>
<ChannelName>BBC One (North West)</ChannelName>
<MplexId>285</MplexId>
<ServiceId>4168</ServiceId>
<ATSCMajorChan>0</ATSCMajorChan>
<ATSCMinorChan>0</ATSCMinorChan>
<Format>Default</Format>
<FrequencyId/>
<FineTune>0</FineTune>
<ChanFilters/>
<SourceId>15</SourceId>
<InputId>0</InputId>
<CommFree>false</CommFree>
<UseEIT>false</UseEIT>
<Visible>true</Visible>
<XMLTVID>I24325.json.schedulesdirect.org</XMLTVID>
<DefaultAuth/>
<ChannelGroups/>
<Inputs/>
<Programs/>
</Channel>
<Recording>
<RecordedId>0</RecordedId>
<Status>Unknown</Status>
<Priority>0</Priority>
<StartTs xsi:nil="true"/>
<EndTs xsi:nil="true"/>
<FileSize>0</FileSize>
<FileName/>
<HostName/>
<LastModified xsi:nil="true"/>
<RecordId>0</RecordId>
<RecGroup/>
<PlayGroup/>
<StorageGroup/>
<RecType>0</RecType>
<DupInType>1</DupInType>
<DupMethod>1</DupMethod>
<EncoderId>0</EncoderId>
<EncoderName/>
<Profile/>
</Recording>
<Artwork>
<ArtworkInfos/>
</Artwork>
</Program>
<Program>
...
</Program>
<Program>
...
</Program>
</Programs>
</ProgramList>
GetChannelGroupList
The GetChannelGroupList API takes the following arguments:
- IncludeEmpty (Optional)
- Parameter Type: bool
- Whether to include groups that contain no channels.
Example Query:
http://BackendServerIP:6544/Guide/GetChannelGroupList?IncludeEmpty=true
Example Return:
<ChannelGroupList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" serializerVersion="1.1">
<ChannelGroups>
<ChannelGroup>
<GroupId>6</GroupId>
<Name>Entertainment</Name>
<Password/>
</ChannelGroup>
<ChannelGroup>
<GroupId>1</GroupId>
<Name>Favorites</Name>
<Password/>
</ChannelGroup>
...
</ChannelGroup>
</ChannelGroups>
</ChannelGroupList>
GetCategoryList
The GetCategoryList API takes no arguments.
Example Query:
http://BackendServerIP:6544/Guide/GetCategoryList
Example Return:
<StringList>
<String>Action</String>
<String>Action sports</String>
...
<String>Weather</String>
<String>Western</String>
</StringList>
GetStoredSearches
The GetStoredSearches API takes the following arguments:
- Type (Required)
- Parameter Type: string
- The type of search must be one of 'none', 'power', 'title', 'keyword', 'people' or 'manual'.
Example Query:
http://BackendServerIP:6544/Guide/GetStoredSearches?Type=title
Example Return:
<StringList>
<String>Big Bang Theory</String>
<String>IT Crowd</String>
...
<String>QI</String>
</StringList>
AddToChannelGroup
The AddToChannelGroup API takes the following arguments:
- ChannelGroupId (Required)
- Parameter Type: integer
- The id of the channel group to add the channel.
- ChanId (Required)
- Parameter Type: integer
- The id of the channel to add to the channel group.
See also GetChannelGroupList
Example Query:
http://BackendServerIP:6544/Guide/AddToChannelGroup?ChannelGroupId=1&ChanId=2
Example Return:
<?xml version="1.0" encoding="UTF-8"?><bool>true</bool>
RemoveFromChannelGroup
The RemoveFrpomChannelGroup API takes the following arguments:
- ChannelGroupId (Required)
- Parameter Type: integer
- The id of the channel group to remove the channel.
- ChanId (Required)
- Parameter Type: integer
- The id of the channel to remove from the channel group.
See also GetChannelGroupList
Example Query:
http://BackendServerIP:6544/Guide/RemoveFromChannelGroup?ChannelGroupId=1&ChanId=2
Example Return:
<?xml version="1.0" encoding="UTF-8"?><bool>true</bool>