Difference between revisions of "DVR Service"
Iamlindoro (talk | contribs) |
(→GetRecordedList) |
||
(29 intermediate revisions by 11 users not shown) | |||
Line 1: | Line 1: | ||
+ | =What is this?= | ||
+ | See [[Services API]] | ||
+ | |||
+ | |||
=Dvr Service API List= | =Dvr Service API List= | ||
Line 4: | Line 8: | ||
<center> | <center> | ||
{| cellpadding="4" border="1" | {| cellpadding="4" border="1" | ||
− | | align="center" | | + | | align="center" |'''API Command''' |
− | | align="center" | | + | | align="center" |'''Service Version''' |
− | | align="center" | | + | | align="center" |'''POST Required?''' |
+ | | align="center" |'''Description''' | ||
|- | |- | ||
− | | [[DVR_Service# | + | | [[DVR_Service#GetUpcomingList | GetUpcomingList]] |
+ | | align="center" | ? | ||
| align="center" | No | | align="center" | No | ||
| Query information on all upcoming programs matching recording rules. | | Query information on all upcoming programs matching recording rules. | ||
|- | |- | ||
− | | style="background:silver" | [[DVR_Service# | + | | style="background:silver" | [[DVR_Service#GetExpiringList | GetExpiringList]] |
+ | | style="background:silver" align="center" | ? | ||
| style="background:silver" align="center" | No | | style="background:silver" align="center" | No | ||
| style="background:silver" | Query information on recorded programs which are set to expire. | | style="background:silver" | Query information on recorded programs which are set to expire. | ||
|- | |- | ||
− | | [[DVR_Service# | + | | [[DVR_Service#GetRecordedList | GetRecordedList]] |
+ | | align="center" | ? | ||
| align="center" | No | | align="center" | No | ||
| Query information on all recorded programs. | | Query information on all recorded programs. | ||
|- | |- | ||
− | | style="background:silver" | [[DVR_Service# | + | | style="background:silver" | [[DVR_Service#GetRecorded | GetRecorded]] |
+ | | style="background:silver" align="center" | ? | ||
| style="background:silver" align="center" | No | | style="background:silver" align="center" | No | ||
| style="background:silver" | Query information on a single item from recordings. | | style="background:silver" | Query information on a single item from recordings. | ||
|- | |- | ||
− | | [[DVR_Service# | + | | [[DVR_Service#GetConflictList | GetConflictList]] |
+ | | align="center" | ? | ||
| align="center" | No | | align="center" | No | ||
| Query information on upcoming items which will not record due to conflicts. | | Query information on upcoming items which will not record due to conflicts. | ||
|- | |- | ||
− | | style="background:silver" |[[DVR_Service# | + | | style="background:silver" |[[DVR_Service#RemoveRecorded | RemoveRecorded]] |
+ | | style="background:silver" align="center" | ? | ||
| style="background:silver" align="center" | Yes | | style="background:silver" align="center" | Yes | ||
− | | style="background:silver" | | + | | style="background:silver" | Delete a Recording (deprecated, replaced by DeleteRecording in later versions) |
|- | |- | ||
− | | [[DVR_Service# | + | | [[DVR_Service#GetEncoderList | GetEncoderList]] |
+ | | align="center" | ? | ||
| align="center" | No | | align="center" | No | ||
| Query information on configured capture devices, and their current activity. | | Query information on configured capture devices, and their current activity. | ||
|- | |- | ||
| style="background:silver" |[[DVR_Service#RemoveRecordSchedule | RemoveRecordSchedule]] | | style="background:silver" |[[DVR_Service#RemoveRecordSchedule | RemoveRecordSchedule]] | ||
+ | | style="background:silver" align="center" | ? | ||
| style="background:silver" align="center" | Yes | | style="background:silver" align="center" | Yes | ||
| style="background:silver" | Remove a Recording rule. | | style="background:silver" | Remove a Recording rule. | ||
|- | |- | ||
− | | [[DVR_Service# | + | | [[DVR_Service#GetRecordScheduleList | GetRecordScheduleList]] |
+ | | align="center" | ? | ||
| align="center" | No | | align="center" | No | ||
| Query all configured recording rules, and return them in a list. | | Query all configured recording rules, and return them in a list. | ||
|- | |- | ||
| style="background:silver" |[[DVR_Service#GetRecordSchedule | GetRecordSchedule]] | | style="background:silver" |[[DVR_Service#GetRecordSchedule | GetRecordSchedule]] | ||
+ | | style="background:silver" align="center" | ? | ||
| style="background:silver" align="center" | No | | style="background:silver" align="center" | No | ||
| style="background:silver" | Return a single recording rule, by record id. | | style="background:silver" | Return a single recording rule, by record id. | ||
|- | |- | ||
| [[DVR_Service#EnableRecordSchedule | EnableRecordSchedule]] | | [[DVR_Service#EnableRecordSchedule | EnableRecordSchedule]] | ||
+ | | align="center" | ? | ||
| align="center" | Yes | | align="center" | Yes | ||
| Enable a recording schedule, by record id. | | Enable a recording schedule, by record id. | ||
|- | |- | ||
| style="background:silver" |[[DVR_Service#DisableRecordSchedule | DisableRecordSchedule]] | | style="background:silver" |[[DVR_Service#DisableRecordSchedule | DisableRecordSchedule]] | ||
+ | | style="background:silver" align="center" | ? | ||
| style="background:silver" align="center" | Yes | | style="background:silver" align="center" | Yes | ||
| style="background:silver" | Disable a recording schedule, by record id. | | style="background:silver" | Disable a recording schedule, by record id. | ||
+ | |- | ||
+ | | [[DVR_Service#DeleteRecording | DeleteRecording]] | ||
+ | | align="center" | 6.0 | ||
+ | | align="center" | Yes | ||
+ | | Delete a recording, by recording id | ||
+ | |- | ||
+ | | style="background:silver" |[[DVR_Service#UnDeleteRecording | UnDeleteRecording]] | ||
+ | | style="background:silver" align="center" | 6.0 | ||
+ | | style="background:silver" align="center" | Yes | ||
+ | | style="background:silver" | Un-delete a recording, by recording id | ||
+ | |- | ||
+ | | [[DVR_Service#UpdateRecordedWatchedStatus | UpdateRecordedWatchedStatus]] | ||
+ | | align="center" | 6.0 | ||
+ | | align="center" | Yes | ||
+ | | Mark a recording watched, or unwatched, by recording id | ||
+ | |- | ||
+ | | style="background:silver" |[[DVR_Service#StopRecording | StopRecording]] | ||
+ | | style="background:silver" align="center" | 6.3 | ||
+ | | style="background:silver" align="center" | No | ||
+ | | style="background:silver" | Stop a current recording, by recording id | ||
+ | |- | ||
+ | | [[DVR_Service#ReactivateRecording | ReactivateRecording]] | ||
+ | | align="center" | 6.3 | ||
+ | | align="center" | No | ||
+ | | Reactivate a stopped recording, by recording id | ||
+ | |- | ||
+ | | style="background:silver" |[[DVR_Service#RescheduleRecordings | RescheduleRecordings]] | ||
+ | | style="background:silver" align="center" | 6.3 | ||
+ | | style="background:silver" align="center" | No | ||
+ | | style="background:silver" | Trigger a reschedule | ||
+ | |- | ||
+ | | [[DVR_Service#RecordedIdForPathname | RecordedIdForPathname]] | ||
+ | | align="center" | 6.3 | ||
+ | | align="center" | No | ||
+ | | Retrieve the recording id for given a recording file name | ||
+ | |- | ||
+ | | style="background:silver" |[[DVR_Service#GetRecordedSeek | GetRecordedSeek]] | ||
+ | | style="background:silver" align="center" | 6.3 | ||
+ | | style="background:silver" align="center" | No | ||
+ | | style="background:silver" |Retrieve the seektable, by recording id | ||
|} | |} | ||
</center> | </center> | ||
Line 60: | Line 117: | ||
=Dvr APIs= | =Dvr APIs= | ||
− | == | + | ==GetUpcomingList== |
− | The <span style="color:LimeGreen"> | + | The <span style="color:LimeGreen">GetUpcomingList</span> API takes the following arguments: |
:<span style="color:SteelBlue">StartIndex</Span> ('''Optional''') | :<span style="color:SteelBlue">StartIndex</Span> ('''Optional''') | ||
Line 78: | Line 135: | ||
Example Query: | Example Query: | ||
− | <code>http://BackendServerIP:6544/Dvr/ | + | <code>http://BackendServerIP:6544/Dvr/GetUpcomingList?StartIndex=2&Count=1&ShowAll=true</code> |
Example Return: | Example Return: | ||
Line 106: | Line 163: | ||
<LastModified>2011-09-12T20:02:18</LastModified> | <LastModified>2011-09-12T20:02:18</LastModified> | ||
<ProgramFlags>13643781</ProgramFlags> | <ProgramFlags>13643781</ProgramFlags> | ||
− | < | + | <HostName>Holmes</HostName> |
+ | <FileName></FileName> | ||
<Airdate>2011-09-12</Airdate> | <Airdate>2011-09-12</Airdate> | ||
<Inetref>210841</Inetref> | <Inetref>210841</Inetref> | ||
Line 147: | Line 205: | ||
<RecordId>1126</RecordId> | <RecordId>1126</RecordId> | ||
<RecGroup>Default</RecGroup> | <RecGroup>Default</RecGroup> | ||
+ | <StorageGroup>Default</StorageGroup> | ||
<PlayGroup>Default</PlayGroup> | <PlayGroup>Default</PlayGroup> | ||
<RecType>0</RecType> | <RecType>0</RecType> | ||
Line 158: | Line 217: | ||
</ProgramList></pre> | </ProgramList></pre> | ||
− | == | + | ==GetExpiringList== |
− | The <span style="color:LimeGreen"> | + | The <span style="color:LimeGreen">GetExpiringList</span> API takes the following arguments: |
:<span style="color:SteelBlue">StartIndex</Span> ('''Optional''') | :<span style="color:SteelBlue">StartIndex</Span> ('''Optional''') | ||
Line 172: | Line 231: | ||
Example Query: | Example Query: | ||
− | <code>http://BackendServerIP:6544/Dvr/ | + | <code>http://BackendServerIP:6544/Dvr/GetExpiringList?StartIndex=2&Count=1</code> |
Example Return: | Example Return: | ||
Line 200: | Line 259: | ||
<LastModified>2011-09-12T20:02:18</LastModified> | <LastModified>2011-09-12T20:02:18</LastModified> | ||
<ProgramFlags>13643781</ProgramFlags> | <ProgramFlags>13643781</ProgramFlags> | ||
− | < | + | <HostName>Holmes</HostName> |
+ | <FileName></FileName> | ||
<Airdate>2011-09-12</Airdate> | <Airdate>2011-09-12</Airdate> | ||
<Inetref>210841</Inetref> | <Inetref>210841</Inetref> | ||
Line 241: | Line 301: | ||
<RecordId>1126</RecordId> | <RecordId>1126</RecordId> | ||
<RecGroup>Default</RecGroup> | <RecGroup>Default</RecGroup> | ||
+ | <StorageGroup>Default</StorageGroup> | ||
<PlayGroup>Default</PlayGroup> | <PlayGroup>Default</PlayGroup> | ||
<RecType>0</RecType> | <RecType>0</RecType> | ||
Line 252: | Line 313: | ||
</ProgramList></pre> | </ProgramList></pre> | ||
− | == | + | ==GetRecordedList== |
− | The <span style="color:LimeGreen"> | + | The <span style="color:LimeGreen">GetRecordedList</span> API takes the following arguments: |
:<span style="color:SteelBlue">StartIndex</Span> ('''Optional''') | :<span style="color:SteelBlue">StartIndex</Span> ('''Optional''') | ||
Line 267: | Line 328: | ||
:: '''Parameter Type:''' Boolean | :: '''Parameter Type:''' Boolean | ||
:: Controls whether results are returned in forward or reverse chronological order. | :: Controls whether results are returned in forward or reverse chronological order. | ||
+ | |||
+ | :<span style="color:SteelBlue">TitleRegEx</Span> ('''Optional''') | ||
+ | :: '''Parameter Type:''' String | ||
+ | :: Filter the result to recordings with titles matching the regular expression | ||
+ | |||
+ | :<span style="color:SteelBlue">RecGroup</Span> ('''Optional''') | ||
+ | :: '''Parameter Type:''' Boolean | ||
+ | :: Filter the result to recordings in the matching recording group. | ||
+ | |||
+ | :<span style="color:SteelBlue">StorageGroup</Span> ('''Optional''') | ||
+ | :: '''Parameter Type:''' Boolean | ||
+ | :: Filter the result to recordings in the matching storage group. | ||
Example Query: | Example Query: | ||
− | <code>http://BackendServerIP:6544/Dvr/ | + | <code>http://BackendServerIP:6544/Dvr/GetRecordedList?StartIndex=2&Count=1&Descending=true</code> |
Example Return: | Example Return: | ||
Line 298: | Line 371: | ||
<LastModified>2011-09-12T20:02:18</LastModified> | <LastModified>2011-09-12T20:02:18</LastModified> | ||
<ProgramFlags>13643781</ProgramFlags> | <ProgramFlags>13643781</ProgramFlags> | ||
− | < | + | <HostName>Holmes</HostName> |
+ | <FileName>1234_2011111111T09:00:00</FileName> | ||
<Airdate>2011-09-12</Airdate> | <Airdate>2011-09-12</Airdate> | ||
<Inetref>210841</Inetref> | <Inetref>210841</Inetref> | ||
Line 339: | Line 413: | ||
<RecordId>1126</RecordId> | <RecordId>1126</RecordId> | ||
<RecGroup>Default</RecGroup> | <RecGroup>Default</RecGroup> | ||
+ | <StorageGroup>Default</StorageGroup> | ||
<PlayGroup>Default</PlayGroup> | <PlayGroup>Default</PlayGroup> | ||
<RecType>0</RecType> | <RecType>0</RecType> | ||
Line 350: | Line 425: | ||
</ProgramList></pre> | </ProgramList></pre> | ||
− | == | + | ==GetRecorded== |
− | The <span style="color:LimeGreen"> | + | The <span style="color:LimeGreen">GetRecorded</span> API takes the following arguments: |
:<span style="color:SteelBlue">ChanId</Span> ('''Required''') | :<span style="color:SteelBlue">ChanId</Span> ('''Required''') | ||
Line 362: | Line 437: | ||
:: 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. | :: 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. | ||
+ | '''From 0.28''' or '''service version 6.0''' you may use the recording ID instead of ChanId/StartTime: | ||
+ | |||
+ | :<span style="color:SteelBlue">RecordedId</Span> ('''Optionally Required''') | ||
+ | :: '''Parameter Type:''' Integer | ||
+ | :: The database recordedid for the recording. | ||
Example Query: | Example Query: | ||
− | <code>http://BackendServerIP:6544/ | + | <code>http://BackendServerIP:6544/Dvr/GetRecorded?StartTime=2011-10-03T19:00:00&ChanId=2066</code> |
+ | |||
+ | ''NB It would appear that the StartTime parameter is not the scheduled time of a program but the time the recording actually started; typically a few minutes earlier. This required value is found in <StartTS> as returned by GetRecordedList and not <StartTime>. | ||
+ | '' | ||
+ | |||
Example Return: | Example Return: | ||
Line 384: | Line 468: | ||
<LastModified>2011-10-03T19:00:00</LastModified> | <LastModified>2011-10-03T19:00:00</LastModified> | ||
<ProgramFlags>4096</ProgramFlags> | <ProgramFlags>4096</ProgramFlags> | ||
− | < | + | <HostName></HostName> |
+ | <FileName>1234_2011111111T09:00:00</FileName> | ||
<Airdate>1981-01-26</Airdate> | <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). | Joe Kagan works up the courage to court Hester Sue, and learns she plans to marry an undertaker (Mel Stewart). | ||
Line 426: | Line 511: | ||
<RecordId>0</RecordId> | <RecordId>0</RecordId> | ||
<RecGroup></RecGroup> | <RecGroup></RecGroup> | ||
+ | <StorageGroup>Default</StorageGroup> | ||
<PlayGroup></PlayGroup> | <PlayGroup></PlayGroup> | ||
<RecType>0</RecType> | <RecType>0</RecType> | ||
Line 436: | Line 522: | ||
</pre> | </pre> | ||
− | == | + | ==GetConflictList== |
− | The <span style="color:LimeGreen"> | + | The <span style="color:LimeGreen">GetConflictList</span> API takes the following arguments: |
:<span style="color:SteelBlue">StartIndex</Span> ('''Optional''') | :<span style="color:SteelBlue">StartIndex</Span> ('''Optional''') | ||
:: '''Parameter Type:''' Integer | :: '''Parameter Type:''' Integer | ||
− | :: The numerical starting index in the list of | + | :: The numerical starting index in the list of Conflicting programs. |
:<span style="color:SteelBlue">Count</Span> ('''Optional''') | :<span style="color:SteelBlue">Count</Span> ('''Optional''') | ||
Line 450: | Line 536: | ||
Example Query: | Example Query: | ||
− | <code>http://BackendServerIP:6544/ | + | <code>http://BackendServerIP:6544/Dvr/GetConflictList?StartIndex=0</code> |
Example Return: | Example Return: | ||
Line 470: | Line 556: | ||
<LastModified>2011-10-03T19:00:00</LastModified> | <LastModified>2011-10-03T19:00:00</LastModified> | ||
<ProgramFlags>4096</ProgramFlags> | <ProgramFlags>4096</ProgramFlags> | ||
− | < | + | <HostName></HostName> |
+ | <FileName></FileName> | ||
<Airdate>1981-01-26</Airdate> | <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). | Joe Kagan works up the courage to court Hester Sue, and learns she plans to marry an undertaker (Mel Stewart). | ||
Line 512: | Line 599: | ||
<RecordId>0</RecordId> | <RecordId>0</RecordId> | ||
<RecGroup></RecGroup> | <RecGroup></RecGroup> | ||
+ | <StorageGroup>Default</StorageGroup> | ||
<PlayGroup></PlayGroup> | <PlayGroup></PlayGroup> | ||
<RecType>0</RecType> | <RecType>0</RecType> | ||
Line 522: | Line 610: | ||
</pre> | </pre> | ||
− | |||
− | The <span style="color:LimeGreen"> | + | ==RemoveRecorded== |
+ | |||
+ | The <span style="color:LimeGreen">RemoveRecord</span> API is available in DVR Service versions prior to 2.1. It was renamed in 2.1 to <span style="color:LimeGreen">DeleteRecording</span> | ||
+ | |||
+ | See the documentation for <span style="color:LimeGreen">DeleteRecording</span> | ||
+ | |||
+ | ==DeleteRecording== | ||
+ | [v2.1+] The <span style="color:LimeGreen">DeleteRecording</span> API takes the following arguments: | ||
+ | |||
+ | :<span style="color:SteelBlue">ChanId</Span> ('''Required''') | ||
+ | :: '''Parameter Type:''' Integer | ||
+ | :: The database channel id for the guide item. | ||
+ | |||
+ | :<span style="color:SteelBlue">StartTime</Span> ('''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. | ||
+ | |||
+ | [v6.0+] '''From 0.28''' you may use the recording ID instead of ChanId/StartTime: | ||
+ | |||
+ | :<span style="color:SteelBlue">RecordedId</Span> ('''Optionally Required''') | ||
+ | :: '''Parameter Type:''' Integer | ||
+ | :: The database recordedid for the recording. | ||
+ | |||
+ | :<span style="color:SteelBlue">AllowRerecord</Span> ('''Optional''') | ||
+ | :: '''Parameter Type:''' Boolean | ||
+ | :: Allow the program to be recorded again. | ||
+ | |||
+ | :<span style="color:SteelBlue">ForceDelete</Span> ('''Optional''') | ||
+ | :: '''Parameter Type:''' Boolean | ||
+ | :: Force deletion of metadata (e.g. if the recording itself doesn't exist.) | ||
+ | Example Query: | ||
+ | |||
+ | <code>http://BackendServerIP:6544/Dvr/DeleteRecording?StartTime=2011-10-03T19:00:00&ChanId=2066</code> | ||
+ | <code>http://BackendServerIP:6544/Dvr/DeleteRecording?RecordedId=1234</code> | ||
+ | |||
+ | ==UnDeleteRecording== | ||
+ | [v6.0+] The <span style="color:LimeGreen">UnDeleteRecording</span> API takes the following arguments: | ||
+ | |||
+ | :<span style="color:SteelBlue">RecordedId</Span> ('''Optionally Required''') | ||
+ | :: '''Parameter Type:''' Integer | ||
+ | :: The database recordedid for the recording. | ||
+ | Example Query: | ||
+ | |||
+ | <code>http://BackendServerIP:6544/Dvr/UnDeleteRecording?StartTime=2011-10-03T19:00:00&ChanId=2066</code> | ||
+ | <code>http://BackendServerIP:6544/Dvr/UnDeleteRecording?RecordedId=1234</code> | ||
+ | |||
+ | ==StopRecording== | ||
+ | [v6.3+] The <span style="color:LimeGreen">StopRecording</span> API takes the following arguments: | ||
+ | |||
+ | :<span style="color:SteelBlue">RecordedId</Span> ('''Required''') | ||
+ | :: '''Parameter Type:''' Integer | ||
+ | :: The database recordedid for the recording. | ||
+ | Example Query: | ||
+ | |||
+ | <code>http://BackendServerIP:6544/Dvr/StopRecording?RecordedId=1234</code> | ||
+ | |||
+ | ==ReactivateRecording== | ||
+ | [v6.3+] The <span style="color:LimeGreen">ReactivateRecording</span> API takes the following arguments: | ||
+ | |||
+ | :<span style="color:SteelBlue">RecordedId</Span> ('''Required''') | ||
+ | :: '''Parameter Type:''' Integer | ||
+ | :: The database recordedid for the recording. | ||
+ | Example Query: | ||
+ | |||
+ | <code>http://BackendServerIP:6544/Dvr/ReactivateRecording?RecordedId=1234</code> | ||
+ | |||
+ | ==RescheduleRecordings== | ||
+ | [v6.3+] The <span style="color:LimeGreen">RescheduleRecordings</span> API does not take any arguments. | ||
Example Query: | Example Query: | ||
− | <code>http://BackendServerIP:6544/Dvr/ | + | <code>http://BackendServerIP:6544/Dvr/RescheduleRecordings</code> |
+ | |||
+ | ==UpdateRecordedWatchedStatus== | ||
+ | [v6.0+] The <span style="color:LimeGreen">UpdateRecordedWatchedStatus</span> API takes the following arguments: | ||
+ | |||
+ | :<span style="color:SteelBlue">RecordedId</Span> ('''Required''') | ||
+ | :: '''Parameter Type:''' Integer | ||
+ | :: The database recordedid for the recording. | ||
+ | |||
+ | :<span style="color:SteelBlue">Watched</Span> ('''Required''') | ||
+ | :: '''Parameter Type:''' Boolean | ||
+ | :: Recording watched? True/False | ||
+ | |||
+ | Example Query: | ||
+ | <code>http://BackendServerIP:6544/Dvr/UpdateRecordedWatchedStatus?RecordedId=1234&Watched=true</code> | ||
+ | |||
+ | ==GetEncoderList== | ||
+ | |||
+ | The <span style="color:LimeGreen">GetEncoderList</span> API takes no arguments. | ||
+ | |||
+ | Example Query: | ||
+ | |||
+ | <code>http://BackendServerIP:6544/Dvr/GetEncoderList</code> | ||
Example Return: | Example Return: | ||
Line 558: | Line 734: | ||
<LastModified></LastModified> | <LastModified></LastModified> | ||
<ProgramFlags>0</ProgramFlags> | <ProgramFlags>0</ProgramFlags> | ||
− | < | + | <HostName></HostName> |
<Airdate></Airdate> | <Airdate></Airdate> | ||
<Inetref></Inetref> | <Inetref></Inetref> | ||
Line 599: | Line 775: | ||
<RecordId>0</RecordId> | <RecordId>0</RecordId> | ||
<RecGroup></RecGroup> | <RecGroup></RecGroup> | ||
+ | <StorageGroup>Default</StorageGroup> | ||
<PlayGroup></PlayGroup> | <PlayGroup></PlayGroup> | ||
<RecType>0</RecType> | <RecType>0</RecType> | ||
Line 632: | Line 809: | ||
</pre> | </pre> | ||
− | == | + | ==GetRecordScheduleList== |
− | The <span style="color:LimeGreen"> | + | The <span style="color:LimeGreen">GetRecordScheduleList</span> API takes the following arguments: |
:<span style="color:SteelBlue">StartIndex</Span> ('''Optional''') | :<span style="color:SteelBlue">StartIndex</Span> ('''Optional''') | ||
Line 646: | Line 823: | ||
Example Query: | Example Query: | ||
− | <code>http://BackendServerIP:6544/Dvr/ | + | <code>http://BackendServerIP:6544/Dvr/GetRecordScheduleList?StartIndex=0&Count=1</code> |
Example Return: | Example Return: | ||
Line 672: | Line 849: | ||
<SeriesId>EP01410873</SeriesId> | <SeriesId>EP01410873</SeriesId> | ||
<ProgramId>EP014108730001</ProgramId> | <ProgramId>EP014108730001</ProgramId> | ||
− | < | + | <Inetref>210841</Inetref> |
<ChanId>3736</ChanId> | <ChanId>3736</ChanId> | ||
<CallSign>SYFYHD</CallSign> | <CallSign>SYFYHD</CallSign> | ||
Line 713: | Line 890: | ||
==GetRecordSchedule== | ==GetRecordSchedule== | ||
− | The <span style="color:LimeGreen"> | + | The <span style="color:LimeGreen">GetRecordSchedule</span> API takes the following arguments: |
− | :<span style="color:SteelBlue">RecordId</Span> (''' | + | ===Old Style=== |
+ | :<span style="color:SteelBlue">RecordId</Span> ('''Required''') | ||
:: '''Parameter Type:''' Integer | :: '''Parameter Type:''' Integer | ||
:: The Recording rule ID for the rule to be looked up. | :: The Recording rule ID for the rule to be looked up. | ||
+ | |||
+ | ===New Style=== | ||
+ | <pre> | ||
+ | Returns: RecRule | ||
+ | Parameters: | ||
+ | xs:unsignedInt RecordId | ||
+ | xs:string Template | ||
+ | xs:int ChanId | ||
+ | xs:dateTime StartTime | ||
+ | xs:boolean MakeOverride | ||
+ | </pre> | ||
+ | |||
+ | GetRecordSchedule() provides rules suitable for later calls to AddRecordSchedule() and UpdateRecordSchedule(). When given a valid RecordId, GetRecordSchedule() returns that rule. When given a Template name, GetRecordSchedule() returns an empty rule initialized with that template. When given a ChanId and StartTime, GetRecordSchedule() returns the rule for that program or a new one if no rule currently exists. If the MakeOverride parameter is true, the returned rule for the program will converted to an override rule if | ||
+ | needed. | ||
+ | |||
+ | Clients should always call GetRecordSchedule() with the appropriate parameters before modifying the rule and then calling AddRecordSchedule() or UpdateRecordSchedule(). In this way, clients do not need to know all of the details on how to initialize rules or update them for specific programs. | ||
+ | |||
+ | When feeding a new RecRule into AddRecordSchedule() you'll need to set the Station parameter equal to CallSign and modify the Type parameter to something beside "Not Recording" | ||
+ | |||
+ | See this commit: [[https://github.com/MythTV/mythtv/commit/2865936]] for additional information. | ||
Example Query: | Example Query: | ||
Line 739: | Line 937: | ||
<SeriesId>EP01410873</SeriesId> | <SeriesId>EP01410873</SeriesId> | ||
<ProgramId>EP014108730001</ProgramId> | <ProgramId>EP014108730001</ProgramId> | ||
− | < | + | <Inetref>210841</Inetref> |
<ChanId>3736</ChanId> | <ChanId>3736</ChanId> | ||
<CallSign>SYFYHD</CallSign> | <CallSign>SYFYHD</CallSign> | ||
Line 775: | Line 973: | ||
</RecRule> | </RecRule> | ||
</pre> | </pre> | ||
+ | |||
==EnableRecordSchedule== | ==EnableRecordSchedule== | ||
Line 814: | Line 1,013: | ||
<bool>true</bool> | <bool>true</bool> | ||
</pre> | </pre> | ||
+ | |||
+ | ==RecordedIdForPathname== | ||
+ | |||
+ | The <span style="color:LimeGreen">RecordedIdForPathname</span> API takes the following arguments: | ||
+ | |||
+ | :<span style="color:SteelBlue">Pathname</Span> ('''Required''') | ||
+ | :: '''Parameter Type:''' String | ||
+ | :: basename, or full path of a recorded file. | ||
+ | |||
+ | Example Query: | ||
+ | |||
+ | <code>http://BackendServerIP:6544/Dvr/RecordedIdForPathname?Pathname=1050_20160912221500.ts</code> | ||
+ | |||
+ | Returns an integer, representing the RecordedId. | ||
+ | |||
+ | <pre> | ||
+ | <int>1234</int> | ||
+ | </pre> | ||
+ | |||
+ | ==GetRecordedSeek== | ||
+ | |||
+ | The <span style="color:LimeGreen">GetRecordedSeek</span> API takes the following arguments: | ||
+ | |||
+ | :<span style="color:SteelBlue">RecordedId</Span> ('''Required''') | ||
+ | :: '''Parameter Type:''' Integer | ||
+ | :: The database recordedid for the recording. | ||
+ | |||
+ | :<span style="color:SteelBlue">OffsetType</Span> ('''Required''') | ||
+ | :: '''Parameter Type:''' String | ||
+ | :: Either 'BYTES' or 'DURATION' | ||
+ | |||
+ | Example Query: | ||
+ | |||
+ | <code>http://BackendServerIP:6544/Dvr/GetRecordedSeek?RecordedId=449&OffsetType=BYTES</code> | ||
+ | |||
+ | Returns: A 'cut' mapping. The element names could be more descriptive, but match the format of the GetRecordedCutList and GetRecordedCommBreak API calls to allow code re-use. | ||
+ | |||
+ | <pre> | ||
+ | <CutList version="1.0" serializerVersion="1.1"> | ||
+ | <Cuttings> | ||
+ | <Cutting> | ||
+ | <Mark>0</Mark> | ||
+ | <Offset>0</Offset> | ||
+ | </Cutting> | ||
+ | <Cutting> | ||
+ | <Mark>1</Mark> | ||
+ | <Offset>1227264</Offset> | ||
+ | </Cutting> | ||
+ | <Cutting> | ||
+ | <Mark>2</Mark> | ||
+ | <Offset>2454528</Offset> | ||
+ | </Cutting> | ||
+ | </Cuttings> | ||
+ | </CutList> | ||
+ | </pre> | ||
+ | |||
+ | Or | ||
+ | |||
+ | <pre> | ||
+ | <CutList version="1.0" serializerVersion="1.1"> | ||
+ | <Cuttings> | ||
+ | <Cutting> | ||
+ | <Mark>0</Mark> | ||
+ | <Offset>0</Offset> | ||
+ | </Cutting> | ||
+ | <Cutting> | ||
+ | <Mark>1</Mark> | ||
+ | <Offset>500</Offset> | ||
+ | </Cutting> | ||
+ | <Cutting> | ||
+ | <Mark>2</Mark> | ||
+ | <Offset>1000</Offset> | ||
+ | </Cutting> | ||
+ | </Cuttings> | ||
+ | </CutList> | ||
+ | </pre> | ||
+ | [[Category:Services_API]] |
Revision as of 23:22, 22 January 2018
Contents
- 1 What is this?
- 2 Dvr Service API List
- 3 Dvr APIs
- 3.1 GetUpcomingList
- 3.2 GetExpiringList
- 3.3 GetRecordedList
- 3.4 GetRecorded
- 3.5 GetConflictList
- 3.6 RemoveRecorded
- 3.7 DeleteRecording
- 3.8 UnDeleteRecording
- 3.9 StopRecording
- 3.10 ReactivateRecording
- 3.11 RescheduleRecordings
- 3.12 UpdateRecordedWatchedStatus
- 3.13 GetEncoderList
- 3.14 RemoveRecordSchedule
- 3.15 GetRecordScheduleList
- 3.16 GetRecordSchedule
- 3.17 EnableRecordSchedule
- 3.18 DisableRecordSchedule
- 3.19 RecordedIdForPathname
- 3.20 GetRecordedSeek
What is this?
See Services API
Dvr Service API List
API Command | Service Version | 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 | Delete a Recording (deprecated, replaced by DeleteRecording in later versions) |
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. |
DeleteRecording | 6.0 | Yes | Delete a recording, by recording id |
UnDeleteRecording | 6.0 | Yes | Un-delete a recording, by recording id |
UpdateRecordedWatchedStatus | 6.0 | Yes | Mark a recording watched, or unwatched, by recording id |
StopRecording | 6.3 | No | Stop a current recording, by recording id |
ReactivateRecording | 6.3 | No | Reactivate a stopped recording, by recording id |
RescheduleRecordings | 6.3 | No | Trigger a reschedule |
RecordedIdForPathname | 6.3 | No | Retrieve the recording id for given a recording file name |
GetRecordedSeek | 6.3 | No | Retrieve the seektable, by recording 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.
- TitleRegEx (Optional)
- Parameter Type: String
- Filter the result to recordings with titles matching the regular expression
- RecGroup (Optional)
- Parameter Type: Boolean
- Filter the result to recordings in the matching recording group.
- StorageGroup (Optional)
- Parameter Type: Boolean
- Filter the result to recordings in the matching storage group.
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.
From 0.28 or service version 6.0 you may use the recording ID instead of ChanId/StartTime:
- RecordedId (Optionally Required)
- Parameter Type: Integer
- The database recordedid for the recording.
Example Query:
http://BackendServerIP:6544/Dvr/GetRecorded?StartTime=2011-10-03T19:00:00&ChanId=2066
NB It would appear that the StartTime parameter is not the scheduled time of a program but the time the recording actually started; typically a few minutes earlier. This required value is found in <StartTS> as returned by GetRecordedList and not <StartTime>.
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>
RemoveRecorded
The RemoveRecord API is available in DVR Service versions prior to 2.1. It was renamed in 2.1 to DeleteRecording
See the documentation for DeleteRecording
DeleteRecording
[v2.1+] The DeleteRecording 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.
[v6.0+] From 0.28 you may use the recording ID instead of ChanId/StartTime:
- RecordedId (Optionally Required)
- Parameter Type: Integer
- The database recordedid for the recording.
- AllowRerecord (Optional)
- Parameter Type: Boolean
- Allow the program to be recorded again.
- ForceDelete (Optional)
- Parameter Type: Boolean
- Force deletion of metadata (e.g. if the recording itself doesn't exist.)
Example Query:
http://BackendServerIP:6544/Dvr/DeleteRecording?StartTime=2011-10-03T19:00:00&ChanId=2066
http://BackendServerIP:6544/Dvr/DeleteRecording?RecordedId=1234
UnDeleteRecording
[v6.0+] The UnDeleteRecording API takes the following arguments:
- RecordedId (Optionally Required)
- Parameter Type: Integer
- The database recordedid for the recording.
Example Query:
http://BackendServerIP:6544/Dvr/UnDeleteRecording?StartTime=2011-10-03T19:00:00&ChanId=2066
http://BackendServerIP:6544/Dvr/UnDeleteRecording?RecordedId=1234
StopRecording
[v6.3+] The StopRecording API takes the following arguments:
- RecordedId (Required)
- Parameter Type: Integer
- The database recordedid for the recording.
Example Query:
http://BackendServerIP:6544/Dvr/StopRecording?RecordedId=1234
ReactivateRecording
[v6.3+] The ReactivateRecording API takes the following arguments:
- RecordedId (Required)
- Parameter Type: Integer
- The database recordedid for the recording.
Example Query:
http://BackendServerIP:6544/Dvr/ReactivateRecording?RecordedId=1234
RescheduleRecordings
[v6.3+] The RescheduleRecordings API does not take any arguments.
Example Query:
http://BackendServerIP:6544/Dvr/RescheduleRecordings
UpdateRecordedWatchedStatus
[v6.0+] The UpdateRecordedWatchedStatus API takes the following arguments:
- RecordedId (Required)
- Parameter Type: Integer
- The database recordedid for the recording.
- Watched (Required)
- Parameter Type: Boolean
- Recording watched? True/False
Example Query:
http://BackendServerIP:6544/Dvr/UpdateRecordedWatchedStatus?RecordedId=1234&Watched=true
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:
Old Style
- RecordId (Required)
- Parameter Type: Integer
- The Recording rule ID for the rule to be looked up.
New Style
Returns: RecRule Parameters: xs:unsignedInt RecordId xs:string Template xs:int ChanId xs:dateTime StartTime xs:boolean MakeOverride
GetRecordSchedule() provides rules suitable for later calls to AddRecordSchedule() and UpdateRecordSchedule(). When given a valid RecordId, GetRecordSchedule() returns that rule. When given a Template name, GetRecordSchedule() returns an empty rule initialized with that template. When given a ChanId and StartTime, GetRecordSchedule() returns the rule for that program or a new one if no rule currently exists. If the MakeOverride parameter is true, the returned rule for the program will converted to an override rule if needed.
Clients should always call GetRecordSchedule() with the appropriate parameters before modifying the rule and then calling AddRecordSchedule() or UpdateRecordSchedule(). In this way, clients do not need to know all of the details on how to initialize rules or update them for specific programs.
When feeding a new RecRule into AddRecordSchedule() you'll need to set the Station parameter equal to CallSign and modify the Type parameter to something beside "Not Recording"
See this commit: [[1]] for additional information.
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>
RecordedIdForPathname
The RecordedIdForPathname API takes the following arguments:
- Pathname (Required)
- Parameter Type: String
- basename, or full path of a recorded file.
Example Query:
http://BackendServerIP:6544/Dvr/RecordedIdForPathname?Pathname=1050_20160912221500.ts
Returns an integer, representing the RecordedId.
<int>1234</int>
GetRecordedSeek
The GetRecordedSeek API takes the following arguments:
- RecordedId (Required)
- Parameter Type: Integer
- The database recordedid for the recording.
- OffsetType (Required)
- Parameter Type: String
- Either 'BYTES' or 'DURATION'
Example Query:
http://BackendServerIP:6544/Dvr/GetRecordedSeek?RecordedId=449&OffsetType=BYTES
Returns: A 'cut' mapping. The element names could be more descriptive, but match the format of the GetRecordedCutList and GetRecordedCommBreak API calls to allow code re-use.
<CutList version="1.0" serializerVersion="1.1"> <Cuttings> <Cutting> <Mark>0</Mark> <Offset>0</Offset> </Cutting> <Cutting> <Mark>1</Mark> <Offset>1227264</Offset> </Cutting> <Cutting> <Mark>2</Mark> <Offset>2454528</Offset> </Cutting> </Cuttings> </CutList>
Or
<CutList version="1.0" serializerVersion="1.1"> <Cuttings> <Cutting> <Mark>0</Mark> <Offset>0</Offset> </Cutting> <Cutting> <Mark>1</Mark> <Offset>500</Offset> </Cutting> <Cutting> <Mark>2</Mark> <Offset>1000</Offset> </Cutting> </Cuttings> </CutList>