DVR Service
Contents
What is this?
See Services API
Dvr Service API List
API Command | POST Required? | Description |
GetUpcomingList | No | Query information on all upcoming programs matching recording rules. |
GetExpiringList | No | Query information on recorded programs which are set to expire. |
GetRecordedList | No | Query information on all recorded programs. |
GetRecorded | No | Query information on a single item from recordings. |
GetConflictList | No | Query information on upcoming items which will not record due to conflicts. |
RemoveRecorded | Yes | Remove a Recording from the database and disk. |
GetEncoderList | No | Query information on configured capture devices, and their current activity. |
RemoveRecordSchedule | Yes | Remove a Recording rule. |
GetRecordScheduleList | No | Query all configured recording rules, and return them in a list. |
GetRecordSchedule | No | Return a single recording rule, by record id. |
EnableRecordSchedule | Yes | Enable a recording schedule, by record id. |
DisableRecordSchedule | Yes | Disable a recording schedule, by record id. |
Dvr APIs
GetUpcomingList
The GetUpcomingList API takes the following arguments:
- StartIndex (Optional)
- Parameter Type: Integer
- The numerical starting index in the list of upcoming programs.
- Count (Optional)
- Parameter Type: Integer
- The number of items to return in the result.
- ShowAll (Optional)
- Parameter Type: Boolean
- Show all items which match recording rules, regardless of whether or not they will record (conflicts, previously recorded, etc.).
Example Query:
http://BackendServerIP:6544/Dvr/GetUpcomingList?StartIndex=2&Count=1&ShowAll=true
Example Return:
<?xml version="1.0" encoding="UTF-8"?> <ProgramList version="1.0" serializerVersion="1.1"> <StartIndex>2</StartIndex> <Count>1</Count> <TotalAvailable>15</TotalAvailable> <AsOf>2011-10-02T16:09:52</AsOf> <Version>0.25.20110928-1</Version> <ProtoVer>69</ProtoVer> <Programs> <Program> <StartTime>2011-09-12T19:00:00</StartTime> <EndTime>2011-09-12T20:01:00</EndTime> <Title>Alphas</Title> <SubTitle>Blind Spot</SubTitle> <Category>Drama</Category> <CatType></CatType> <Repeat>true</Repeat> <SeriesId>EP01410873</SeriesId> <ProgramId>EP014108730010</ProgramId> <Stars>0</Stars> <FileSize>5143875332</FileSize> <LastModified>2011-09-12T20:02:18</LastModified> <ProgramFlags>13643781</ProgramFlags> <HostName>Holmes</HostName> <FileName></FileName> <Airdate>2011-09-12</Airdate> <Inetref>210841</Inetref> <Season>1</Season> <Episode>9</Episode> <Channel> <ChanId>34736</ChanId> <ChanNum>736</ChanNum> <CallSign>SYFYHD</CallSign> <IconURL></IconURL> <ChannelName>Syfy HD</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>-3</Status> <Priority>0</Priority> <StartTs>2011-09-12T18:59:00</StartTs> <EndTs>2011-09-12T20:02:15</EndTs> <RecordId>1126</RecordId> <RecGroup>Default</RecGroup> <StorageGroup>Default</StorageGroup> <PlayGroup>Default</PlayGroup> <RecType>0</RecType> <DupInType>15</DupInType> <DupMethod>6</DupMethod> <EncoderId>0</EncoderId> <Profile>Default</Profile> </Recording> </Program> </Programs> </ProgramList>
GetExpiringList
The GetExpiringList API takes the following arguments:
- StartIndex (Optional)
- Parameter Type: Integer
- The numerical starting index in the list of expiring programs.
- Count (Optional)
- Parameter Type: Integer
- The number of items to return in the result.
Example Query:
http://BackendServerIP:6544/Dvr/GetExpiringList?StartIndex=2&Count=1
Example Return:
<?xml version="1.0" encoding="UTF-8"?> <ProgramList version="1.0" serializerVersion="1.1"> <StartIndex>2</StartIndex> <Count>1</Count> <TotalAvailable>15</TotalAvailable> <AsOf>2011-10-02T16:09:52</AsOf> <Version>0.25.20110928-1</Version> <ProtoVer>69</ProtoVer> <Programs> <Program> <StartTime>2011-09-12T19:00:00</StartTime> <EndTime>2011-09-12T20:01:00</EndTime> <Title>Alphas</Title> <SubTitle>Blind Spot</SubTitle> <Category>Drama</Category> <CatType></CatType> <Repeat>true</Repeat> <SeriesId>EP01410873</SeriesId> <ProgramId>EP014108730010</ProgramId> <Stars>0</Stars> <FileSize>5143875332</FileSize> <LastModified>2011-09-12T20:02:18</LastModified> <ProgramFlags>13643781</ProgramFlags> <HostName>Holmes</HostName> <FileName></FileName> <Airdate>2011-09-12</Airdate> <Inetref>210841</Inetref> <Season>1</Season> <Episode>9</Episode> <Channel> <ChanId>34736</ChanId> <ChanNum>736</ChanNum> <CallSign>SYFYHD</CallSign> <IconURL></IconURL> <ChannelName>Syfy HD</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>-3</Status> <Priority>0</Priority> <StartTs>2011-09-12T18:59:00</StartTs> <EndTs>2011-09-12T20:02:15</EndTs> <RecordId>1126</RecordId> <RecGroup>Default</RecGroup> <StorageGroup>Default</StorageGroup> <PlayGroup>Default</PlayGroup> <RecType>0</RecType> <DupInType>15</DupInType> <DupMethod>6</DupMethod> <EncoderId>0</EncoderId> <Profile>Default</Profile> </Recording> </Program> </Programs> </ProgramList>
GetRecordedList
The GetRecordedList API takes the following arguments:
- StartIndex (Optional)
- Parameter Type: Integer
- The numerical starting index in the list of expiring programs.
- Count (Optional)
- Parameter Type: Integer
- The number of items to return in the result.
- Descending (Optional)
- Parameter Type: Boolean
- Controls whether results are returned in forward or reverse chronological order.
Example Query:
http://BackendServerIP:6544/Dvr/GetRecordedList?StartIndex=2&Count=1&Descending=true
Example Return:
<?xml version="1.0" encoding="UTF-8"?> <ProgramList version="1.0" serializerVersion="1.1"> <StartIndex>2</StartIndex> <Count>1</Count> <TotalAvailable>15</TotalAvailable> <AsOf>2011-10-02T16:09:52</AsOf> <Version>0.25.20110928-1</Version> <ProtoVer>69</ProtoVer> <Programs> <Program> <StartTime>2011-09-12T19:00:00</StartTime> <EndTime>2011-09-12T20:01:00</EndTime> <Title>Alphas</Title> <SubTitle>Blind Spot</SubTitle> <Category>Drama</Category> <CatType></CatType> <Repeat>true</Repeat> <SeriesId>EP01410873</SeriesId> <ProgramId>EP014108730010</ProgramId> <Stars>0</Stars> <FileSize>5143875332</FileSize> <LastModified>2011-09-12T20:02:18</LastModified> <ProgramFlags>13643781</ProgramFlags> <HostName>Holmes</HostName> <FileName>1234_2011111111T09:00:00</FileName> <Airdate>2011-09-12</Airdate> <Inetref>210841</Inetref> <Season>1</Season> <Episode>9</Episode> <Channel> <ChanId>34736</ChanId> <ChanNum>736</ChanNum> <CallSign>SYFYHD</CallSign> <IconURL></IconURL> <ChannelName>Syfy HD</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>-3</Status> <Priority>0</Priority> <StartTs>2011-09-12T18:59:00</StartTs> <EndTs>2011-09-12T20:02:15</EndTs> <RecordId>1126</RecordId> <RecGroup>Default</RecGroup> <StorageGroup>Default</StorageGroup> <PlayGroup>Default</PlayGroup> <RecType>0</RecType> <DupInType>15</DupInType> <DupMethod>6</DupMethod> <EncoderId>0</EncoderId> <Profile>Default</Profile> </Recording> </Program> </Programs> </ProgramList>
GetRecorded
The GetRecorded API takes the following arguments:
- ChanId (Required)
- Parameter Type: Integer
- The database channel id for the guide item.
- StartTime (Required)
- Parameter Type: String
- The recording start time for the item. This should be in MySQL ISO format, eg: 2011-08-29 18:59:00. You can replace the space with %20 or T.
Example Query:
http://BackendServerIP:6544/Dvr/GetRecorded?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> <FileName>1234_2011111111T09:00:00</FileName> <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> <StorageGroup>Default</StorageGroup> <PlayGroup></PlayGroup> <RecType>0</RecType> <DupInType>1</DupInType> <DupMethod>1</DupMethod> <EncoderId>0</EncoderId> <Profile></Profile> </Recording> </Program>
GetConflictList
The GetConflictList API takes the following arguments:
- StartIndex (Optional)
- Parameter Type: Integer
- The numerical starting index in the list of Conflicting programs.
- Count (Optional)
- Parameter Type: Integer
- The number of items to return in the result.
Example Query:
http://BackendServerIP:6544/Dvr/GetConflictList?StartIndex=0
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> <FileName></FileName> <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> <StorageGroup>Default</StorageGroup> <PlayGroup></PlayGroup> <RecType>0</RecType> <DupInType>1</DupInType> <DupMethod>1</DupMethod> <EncoderId>0</EncoderId> <Profile></Profile> </Recording> </Program>
GetEncoderList
The GetEncoderList API takes no arguments.
Example Query:
http://BackendServerIP:6544/Dvr/GetEncoderList
Example Return:
<?xml version="1.0" encoding="UTF-8"?> <EncoderList version="1.0" serializerVersion="1.1"> <Encoders> <Encoder> <Id>1</Id> <HostName>Holmes</HostName> <Local>true</Local> <Connected>true</Connected> <State>0</State> <SleepStatus>8</SleepStatus> <LowOnFreeSpace>false</LowOnFreeSpace> <Recording> <StartTime></StartTime> <EndTime></EndTime> <Title></Title> <SubTitle></SubTitle> <Category></Category> <CatType></CatType> <Repeat>false</Repeat> <SeriesId></SeriesId> <ProgramId></ProgramId> <Stars>0</Stars> <FileSize>0</FileSize> <LastModified></LastModified> <ProgramFlags>0</ProgramFlags> <HostName></HostName> <Airdate></Airdate> <Inetref></Inetref> <Season>0</Season> <Episode>0</Episode> <Channel> <ChanId>0</ChanId> <ChanNum></ChanNum> <CallSign></CallSign> <IconURL></IconURL> <ChannelName></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>true</UseEIT> <Visible>true</Visible> <XMLTVID></XMLTVID> <DefaultAuth></DefaultAuth> <Programs/> </Channel> <Recording> <Status>0</Status> <Priority>0</Priority> <StartTs></StartTs> <EndTs></EndTs> <RecordId>0</RecordId> <RecGroup></RecGroup> <StorageGroup>Default</StorageGroup> <PlayGroup></PlayGroup> <RecType>0</RecType> <DupInType>1</DupInType> <DupMethod>1</DupMethod> <EncoderId>0</EncoderId> <Profile></Profile> </Recording> </Recording> </Encoder> </Encoders> </EncoderList>
RemoveRecordSchedule
The RemoveRecordSchedule API takes the following arguments:
- RecordId (Required)
- Parameter Type: Integer
- The database id of the recording rule to be removed.
Example Query:
http://BackendServerIP:6544/Dvr/RemoveRecordSchedule?RecordId=106
Example Return:
Returns a boolean value. True if the file was successfully removed, false if the removal failed for any reason.
<bool>true</bool>
GetRecordScheduleList
The GetRecordScheduleList API takes the following arguments:
- StartIndex (Optional)
- Parameter Type: Integer
- The numerical starting index in the list of recording rules.
- Count (Optional)
- Parameter Type: Integer
- The number of items to return in the result.
Example Query:
http://BackendServerIP:6544/Dvr/GetRecordScheduleList?StartIndex=0&Count=1
Example Return:
<RecRuleList version="1.0" serializerVersion="1.1"> <StartIndex>0</StartIndex> <Count>63</Count> <TotalAvailable>63</TotalAvailable> <AsOf>2011-11-09T19:22:03</AsOf> <Version>0.25.20111102-1</Version> <ProtoVer>69</ProtoVer> <RecRules> <RecRule> <Id>1126</Id> <ParentId>0</ParentId> <Inactive>false</Inactive> <Title>Alphas</Title> <SubTitle/> <Season>1</Season> <Episode>1</Episode> <Category>Drama</Category> <StartTime>2011-11-09T00:00:00</StartTime> <EndTime>2011-11-09T00:00:00</EndTime> <SeriesId>EP01410873</SeriesId> <ProgramId>EP014108730001</ProgramId> <Inetref>210841</Inetref> <ChanId>3736</ChanId> <CallSign>SYFYHD</CallSign> <Day>4</Day> <Time>22:00:00</Time> <FindId>734696</FindId> <Type>3</Type> <SearchType>0</SearchType> <RecPriority>1</RecPriority> <PreferredInput>0</PreferredInput> <StartOffset>0</StartOffset> <EndOffset>0</EndOffset> <DupMethod>6</DupMethod> <DupIn>15</DupIn> <Filter>0</Filter> <RecProfile>Default</RecProfile> <RecGroup>Default</RecGroup> <StorageGroup>Default</StorageGroup> <PlayGroup>Default</PlayGroup> <AutoExpire>true</AutoExpire> <MaxEpisodes>0</MaxEpisodes> <MaxNewest>false</MaxNewest> <AutoCommflag>true</AutoCommflag> <AutoTranscode>false</AutoTranscode> <AutoMetaLookup>true</AutoMetaLookup> <AutoUserJob1>false</AutoUserJob1> <AutoUserJob2>false</AutoUserJob2> <AutoUserJob3>false</AutoUserJob3> <AutoUserJob4>false</AutoUserJob4> <Transcoder>0</Transcoder> <NextRecording/> <LastRecorded>2011-09-26T18:59:59</LastRecorded> <LastDeleted>2011-10-31T17:41:57</LastDeleted> <AverageDelay>0</AverageDelay> </RecRule> </RecRules> </RecRuleList>
GetRecordSchedule
The GetRecordSchedule API takes the following arguments:
- RecordId (Required)
- Parameter Type: Integer
- The Recording rule ID for the rule to be looked up.
Example Query:
http://BackendServerIP:6544/Dvr/GetRecordSchedule?RecordId=1234
Example Return:
<RecRule version="1.0" serializerVersion="1.1"> <Id>1126</Id> <ParentId>0</ParentId> <Inactive>false</Inactive> <Title>Alphas</Title> <SubTitle/> <Season>1</Season> <Episode>1</Episode> <Category>Drama</Category> <StartTime>2011-11-09T00:00:00</StartTime> <EndTime>2011-11-09T00:00:00</EndTime> <SeriesId>EP01410873</SeriesId> <ProgramId>EP014108730001</ProgramId> <Inetref>210841</Inetref> <ChanId>3736</ChanId> <CallSign>SYFYHD</CallSign> <Day>4</Day> <Time>22:00:00</Time> <FindId>734696</FindId> <Type>3</Type> <SearchType>0</SearchType> <RecPriority>1</RecPriority> <PreferredInput>0</PreferredInput> <StartOffset>0</StartOffset> <EndOffset>0</EndOffset> <DupMethod>6</DupMethod> <DupIn>15</DupIn> <Filter>0</Filter> <RecProfile>Default</RecProfile> <RecGroup>Default</RecGroup> <StorageGroup>Default</StorageGroup> <PlayGroup>Default</PlayGroup> <AutoExpire>true</AutoExpire> <MaxEpisodes>0</MaxEpisodes> <MaxNewest>false</MaxNewest> <AutoCommflag>true</AutoCommflag> <AutoTranscode>false</AutoTranscode> <AutoMetaLookup>true</AutoMetaLookup> <AutoUserJob1>false</AutoUserJob1> <AutoUserJob2>false</AutoUserJob2> <AutoUserJob3>false</AutoUserJob3> <AutoUserJob4>false</AutoUserJob4> <Transcoder>0</Transcoder> <NextRecording/> <LastRecorded>2011-09-26T18:59:59</LastRecorded> <LastDeleted>2011-10-31T17:41:57</LastDeleted> <AverageDelay>0</AverageDelay> </RecRule>
EnableRecordSchedule
The EnableRecordSchedule API takes the following arguments:
- RecordId (Required)
- Parameter Type: Integer
- The database id of the recording rule to be enabled.
Example Query:
http://BackendServerIP:6544/Dvr/EnableRecordSchedule?RecordId=106
Example Return:
Returns a boolean value. True if the file was successfully removed, false if the removal failed for any reason.
<bool>true</bool>
DisableRecordSchedule
The DisableRecordSchedule API takes the following arguments:
- RecordId (Required)
- Parameter Type: Integer
- The database id of the recording rule to be removed.
Example Query:
http://BackendServerIP:6544/Dvr/DisableRecordSchedule?RecordId=106
Example Return:
Returns a boolean value. True if the file was successfully removed, false if the removal failed for any reason.
<bool>true</bool>