html/jsx escaping

This commit is contained in:
Luke Hagar
2023-03-28 08:23:15 -05:00
parent 5bad236622
commit 36780ad0a0
22 changed files with 157 additions and 142 deletions

View File

@@ -14,14 +14,14 @@ Activities are optional cancellable. If cancellable, they may be cancelled via t
### Get all activities [GET /activities] ### Get all activities [GET /activities]
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Activity uuid="d6199ba1-fb5e-4cae-bf17-1a5369c1cf1e" cancellable="0" progress="7" subtitle="Downloaded 173 airings" title="Refreshing EPG" type="provider.epg.load" userID="1"> <Activity uuid="d6199ba1-fb5e-4cae-bf17-1a5369c1cf1e" cancellable="0" progress="7" subtitle="Downloaded 173 airings" title="Refreshing EPG" type="provider.epg.load" userID="1">
<Context name="value" /> <Context name="value" />
<Response name="value" /> <Response name="value" />
</Activity> </Activity>
</MediaContainer> </MediaContainer>
```
### Cancel a running activity [DELETE /activities/{activity}] ### Cancel a running activity [DELETE /activities/{activity}]
+ Parameters + Parameters

View File

@@ -8,11 +8,11 @@ Updates to the status can be observed via the Event API.
+ Response 200 (application/xml;charset=utf-8) + Response 200 (application/xml;charset=utf-8)
+ Body + Body
```xml
<MediaContainer size="1" canInstall="0" autoUpdateVersion="1" checkedAt="1486011538" downloadURL="https://plex.tv/downloads/..." status="0"> <MediaContainer size="1" canInstall="0" autoUpdateVersion="1" checkedAt="1486011538" downloadURL="https://plex.tv/downloads/..." status="0">
<Release key="https://plex.tv/updater/releases/121" version="1.3.4.3285-b46e0ea" added="(Web) Updated Plex Web to 2.12.9.&#xD;&#xA;(Media Flags) Updated bundle to 2016-12-22 (#6033)" fixed="(DLNA) Crash browsing to certain photo library sections. (#5874)&#xD;&#xA;(Streaming Brain) Certain videos might transcode instead even when enough bandwidth was available to direct play. (#6085) (#6216)" downloadURL="https://plex.tv/downloads/latest/..." state="notify" /> <Release key="https://plex.tv/updater/releases/121" version="1.3.4.3285-b46e0ea" added="(Web) Updated Plex Web to 2.12.9.&#xD;&#xA;(Media Flags) Updated bundle to 2016-12-22 (#6033)" fixed="(DLNA) Crash browsing to certain photo library sections. (#5874)&#xD;&#xA;(Streaming Brain) Certain videos might transcode instead even when enough bandwidth was available to direct play. (#6085) (#6216)" downloadURL="https://plex.tv/downloads/latest/..." state="notify" />
</MediaContainer> </MediaContainer>
```
### Checking for updates [PUT /updater/check] ### Checking for updates [PUT /updater/check]
+ Parameters + Parameters

View File

@@ -17,7 +17,7 @@ Description for GET method (action) placeholder.
+ Response 200 (text/xml;charset=utf-8) + Response 200 (text/xml;charset=utf-8)
+ body + body
```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<MediaContainer allowSync="1" art="/:/resources/movie-fanart.jpg" identifier="com.plexapp.plugins.library" librarySectionID="26" librarySectionTitle="Movies" librarySectionUUID="70cb5089-b165-429b-809a-9e0a31493abf" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1436742334" size="1" thumb="/:/resources/movie.png" title1="Movies" title2="All Movies" viewGroup="movie" viewMode="65592"> <MediaContainer allowSync="1" art="/:/resources/movie-fanart.jpg" identifier="com.plexapp.plugins.library" librarySectionID="26" librarySectionTitle="Movies" librarySectionUUID="70cb5089-b165-429b-809a-9e0a31493abf" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1436742334" size="1" thumb="/:/resources/movie.png" title1="Movies" title2="All Movies" viewGroup="movie" viewMode="65592">
<Video addedAt="1408525217" art="/library/metadata/1049/art/1434341184" chapterSource="media" contentRating="PG-13" duration="5129000" key="/library/metadata/1049" originallyAvailableAt="2001-09-27" primaryExtraKey="/library/metadata/1073" rating="6.0" ratingKey="1049" studio="Paramount Pictures" summary="FunnyStuff" tagline="3% Body Fat. 1% Brain Activity." thumb="/library/metadata/1049/thumb/1434341184" title="Zoolander" type="movie" updatedAt="1434341184" year="2001"> <Video addedAt="1408525217" art="/library/metadata/1049/art/1434341184" chapterSource="media" contentRating="PG-13" duration="5129000" key="/library/metadata/1049" originallyAvailableAt="2001-09-27" primaryExtraKey="/library/metadata/1073" rating="6.0" ratingKey="1049" studio="Paramount Pictures" summary="FunnyStuff" tagline="3% Body Fat. 1% Brain Activity." thumb="/library/metadata/1049/thumb/1434341184" title="Zoolander" type="movie" updatedAt="1434341184" year="2001">
@@ -35,7 +35,7 @@ Description for GET method (action) placeholder.
<Role tag="Christine Taylor" /> <Role tag="Christine Taylor" />
</Video> </Video>
</MediaContainer> </MediaContainer>
```
### Set the fields of the filtered items [PUT /library/sections/{sectionId}/all{?type,filters,field%2Evalue,field%2Elocked,title%2Evalue,artist%2Etitle%2Evalue,artist%2Etitle%2Eid,album%2Etitle%2Evalue,album%2Etitle%2Eid}] ### Set the fields of the filtered items [PUT /library/sections/{sectionId}/all{?type,filters,field%2Evalue,field%2Elocked,title%2Evalue,artist%2Etitle%2Evalue,artist%2Etitle%2Eid,album%2Etitle%2Evalue,album%2Etitle%2Eid}]
N.B. `field` in a parameter, represents any valid field for an item. N.B. `field` in a parameter, represents any valid field for an item.
@@ -117,5 +117,6 @@ Description for response placeholder.
+ body + body
+ Response 400 (text/html) + Response 400 (text/html)
```html
<html><head><title>Bad Request</title></head><body><h1>400 Bad Request</h1></body></html> <html><head><title>Bad Request</title></head><body><h1>400 Bad Request</h1></body></html>
```

View File

@@ -22,7 +22,7 @@ Returns a set of items from the filtered items whose {field} starts with {field}
Example returning items Example returning items
+ Body + Body
```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<MediaContainer allowSync="0" art="/:/resources/movie-fanart.jpg" content="secondary" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1436742334" size="2" thumb="/:/resources/movie.png" title1="Movies" viewGroup="secondary" viewMode="65592"> <MediaContainer allowSync="0" art="/:/resources/movie-fanart.jpg" content="secondary" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1436742334" size="2" thumb="/:/resources/movie.png" title1="Movies" viewGroup="secondary" viewMode="65592">
<Video addedAt="1408492156" art="/library/metadata/1024/art/1434341159" chapterSource="media" contentRating="R" duration="6627200" key="/library/metadata/1024" originallyAvailableAt="2002-12-06" primaryExtraKey="/library/metadata/1051" rating="7.1" ratingKey="1024" studio="Columbia Pictures" summary="A love-lorn script writer grows increasingly desperate in his quest to adapt the book 'The Orchid Thief'." tagline="Charlie Kaufman writes the way he lives... With Great Difficulty. His Twin Brother Donald Lives the way he writes... with foolish abandon. Susan writes about life... But can't live it. John's life is a book... Waiting to be adapted. One story... Four Lives... A million ways it can end." thumb="/library/metadata/1024/thumb/1434341159" title="Adaptation." title.queryRange="0,0" type="movie" updatedAt="1434341159" year="2002"> <Video addedAt="1408492156" art="/library/metadata/1024/art/1434341159" chapterSource="media" contentRating="R" duration="6627200" key="/library/metadata/1024" originallyAvailableAt="2002-12-06" primaryExtraKey="/library/metadata/1051" rating="7.1" ratingKey="1024" studio="Columbia Pictures" summary="A love-lorn script writer grows increasingly desperate in his quest to adapt the book 'The Orchid Thief'." tagline="Charlie Kaufman writes the way he lives... With Great Difficulty. His Twin Brother Donald Lives the way he writes... with foolish abandon. Susan writes about life... But can't live it. John's life is a book... Waiting to be adapted. One story... Four Lives... A million ways it can end." thumb="/library/metadata/1024/thumb/1434341159" title="Adaptation." title.queryRange="0,0" type="movie" updatedAt="1434341159" year="2002">
@@ -52,7 +52,7 @@ Example returning items
<Role tag="Krist?na Kohoutov?" /> <Role tag="Krist?na Kohoutov?" />
</Video> </Video>
</MediaContainer> </MediaContainer>
```
+ Request With genre.query=a (text/xml) + Request With genre.query=a (text/xml)
+ Response 200 (text/xml;charset=utf-8) + Response 200 (text/xml;charset=utf-8)
@@ -63,10 +63,11 @@ Example returning tags
Accept: text/xml Accept: text/xml
+ Body + Body
```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<MediaContainer allowSync="0" art="/:/resources/movie-fanart.jpg" content="secondary" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1436742334" size="3" thumb="/:/resources/movie.png" title1="Movies" viewGroup="secondary" viewMode="65592"> <MediaContainer allowSync="0" art="/:/resources/movie-fanart.jpg" content="secondary" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1436742334" size="3" thumb="/:/resources/movie.png" title1="Movies" viewGroup="secondary" viewMode="65592">
<Directory id="190" tag="Action" tagType="1" /> <Directory id="190" tag="Action" tagType="1" />
<Directory id="98" tag="Adventure" tagType="1" /> <Directory id="98" tag="Adventure" tagType="1" />
<Directory id="135" tag="Animation" tagType="1" /> <Directory id="135" tag="Animation" tagType="1" />
</MediaContainer> </MediaContainer>
```

View File

@@ -15,19 +15,19 @@ attributes of the items selected by the provided filter
+ Response 200 (text/xml;charset=utf-8) + Response 200 (text/xml;charset=utf-8)
+ Body + Body
```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<MediaContainer allowSync="0" art="/:/resources/movie-fanart.jpg" content="secondary" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1436742334" size="1" thumb="/:/resources/movie.png" title1="Movies" title2="Common" viewGroup="secondary" viewMode="65592"> <MediaContainer allowSync="0" art="/:/resources/movie-fanart.jpg" content="secondary" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1436742334" size="1" thumb="/:/resources/movie.png" title1="Movies" title2="Common" viewGroup="secondary" viewMode="65592">
<Common guid="" index="1" mixedFields="title,ratingKey,titleSort,tagline,rating,summary,year,studio,originallyAvailableAt,originalTitle,contentRating" ratingCount="0" titleSort="" type="common"> <Common guid="" index="1" mixedFields="title,ratingKey,titleSort,tagline,rating,summary,year,studio,originallyAvailableAt,originalTitle,contentRating" ratingCount="0" titleSort="" type="common">
</Common> </Common>
</MediaContainer> </MediaContainer>
```
+ Request All filtered items are common (text/xml) + Request All filtered items are common (text/xml)
+ Response 200 (text/xml;charset=utf-8) + Response 200 (text/xml;charset=utf-8)
+ Body + Body
```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<MediaContainer allowSync="0" art="/:/resources/movie-fanart.jpg" content="secondary" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1436742334" size="1" thumb="/:/resources/movie.png" title1="M <MediaContainer allowSync="0" art="/:/resources/movie-fanart.jpg" content="secondary" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1436742334" size="1" thumb="/:/resources/movie.png" title1="M
ovies" title2="Common" viewGroup="secondary" viewMode="65592"> ovies" title2="Common" viewGroup="secondary" viewMode="65592">
@@ -46,17 +46,18 @@ attributes of the items selected by the provided filter
<Role id="134" role="Alice" tag="Krist?na Kohoutov?" /> <Role id="134" role="Alice" tag="Krist?na Kohoutov?" />
</Common> </Common>
</MediaContainer> </MediaContainer>
```
+ Response 400 (text/html) + Response 400 (text/html)
In response to missing the type parameter. In response to missing the type parameter.
+ Body + Body
```html
<html><head><title>Bad Request</title></head><body><h1>400 Bad Request</h1></body></html> <html><head><title>Bad Request</title></head><body><h1>400 Bad Request</h1></body></html>
```
+ Response 404 (text/html) + Response 404 (text/html)
In response to a non-existant sectionId. In response to a non-existant sectionId.
+ Body + Body
```html
<html><head><title>Not Found</title></head><body><h1>404 Not Found</h1></body></html> <html><head><title>Not Found</title></head><body><h1>404 Not Found</h1></body></html>
```

View File

@@ -15,7 +15,7 @@ This resource returns hash values for local files.
+ Response 200 (text/xml;charset=utf-8) + Response 200 (text/xml;charset=utf-8)
+ body + body
```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<MediaContainer size="1" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1519299020"> <MediaContainer size="1" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1519299020">
<Photo> <Photo>
@@ -24,3 +24,4 @@ This resource returns hash values for local files.
</Media> </Media>
</Photo> </Photo>
</MediaContainer> </MediaContainer>
```

View File

@@ -13,7 +13,8 @@ Note that any of the parameters passed to the metadata details endpoint (e.g. `i
+ ingestNonMatches: `1` (boolean, optional) - Whether or not non matching media should be stored. Defaults to 0. + ingestNonMatches: `1` (boolean, optional) - Whether or not non matching media should be stored. Defaults to 0.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Video ...> <Video ...>
</MediaContainer> </MediaContainer>
```

View File

@@ -89,7 +89,7 @@ The following hints are required:
+ Response 200 (application/xml) + Response 200 (application/xml)
``` ```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Video score="100" ratingKey="667573" key="/library/metadata/667573" studio="Shamley Productions" type="movie" title="Psycho" /> <Video score="100" ratingKey="667573" key="/library/metadata/667573" studio="Shamley Productions" type="movie" title="Psycho" />
</MediaContainer> </MediaContainer>

View File

@@ -41,11 +41,11 @@ The media container itself has a few special attributes:
Otherwise begins the play queue on the beginning of the show or season. Otherwise begins the play queue on the beginning of the show or season.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1"> <MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1">
<Track playQueueItemID="2211762" /> <Track playQueueItemID="2211762" />
</MediaContainer> </MediaContainer>
```
### Retrieve a play queue [GET /playQueues/{playQueue}{?own,center,window,includeBefore,includeAfter}] ### Retrieve a play queue [GET /playQueues/{playQueue}{?own,center,window,includeBefore,includeAfter}]
Retrieves the play queue, centered at current item. This can be treated as a regular container by play queue-oblivious clients, but they may wish to request a large window onto the queue since they won't know to refresh. Retrieves the play queue, centered at current item. This can be treated as a regular container by play queue-oblivious clients, but they may wish to request a large window onto the queue since they won't know to refresh.
@@ -59,12 +59,12 @@ Retrieves the play queue, centered at current item. This can be treated as a reg
+ includeAfter: 1 (boolean, optional) - whether to include the items after the center (if 0, center is not included either), defaults to 1. + includeAfter: 1 (boolean, optional) - whether to include the items after the center (if 0, center is not included either), defaults to 1.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1"> <MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1">
<Track playQueueItemID="2211762" /> <Track playQueueItemID="2211762" />
... ...
</MediaContainer> </MediaContainer>
```
### Add a generator or playlist to a play queue [PUT /playQueues/{playQueue}{?uri,playlistID,next}] ### Add a generator or playlist to a play queue [PUT /playQueues/{playQueue}{?uri,playlistID,next}]
Adds an item to a play queue (e.g. party mode). Increments the version of the play queue. Takes the following parameters (`uri` and `playlistID` are mutually exclusive). Returns the modified play queue. Adds an item to a play queue (e.g. party mode). Increments the version of the play queue. Takes the following parameters (`uri` and `playlistID` are mutually exclusive). Returns the modified play queue.
@@ -76,12 +76,12 @@ Adds an item to a play queue (e.g. party mode). Increments the version of the pl
+ next: 0 (boolean, optional) - play this item next (defaults to 0 - queueing at the end of manually queued items). + next: 0 (boolean, optional) - play this item next (defaults to 0 - queueing at the end of manually queued items).
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1"> <MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1">
<Track playQueueItemID="2211762" /> <Track playQueueItemID="2211762" />
... ...
</MediaContainer> </MediaContainer>
```
### Delete an item from a play queue [DELETE /playQueues/{playQueue}/items/{playQueueItemID}] ### Delete an item from a play queue [DELETE /playQueues/{playQueue}/items/{playQueueItemID}]
Deletes an item in a play queue. Increments the version of the play queue. Returns the modified play queue. Deletes an item in a play queue. Increments the version of the play queue. Returns the modified play queue.
@@ -91,12 +91,12 @@ Deletes an item in a play queue. Increments the version of the play queue. Retur
+ playQueueItemID: 123123 (string) - The play queue item ID to delete. + playQueueItemID: 123123 (string) - The play queue item ID to delete.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1"> <MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1">
<Track playQueueItemID="2211762" /> <Track playQueueItemID="2211762" />
... ...
</MediaContainer> </MediaContainer>
```
### Clear a play queue [DELETE /playQueues/{playQueue}/items] ### Clear a play queue [DELETE /playQueues/{playQueue}/items]
Deletes all items in the play queue, and increases the version of the play queue. Deletes all items in the play queue, and increases the version of the play queue.
@@ -105,10 +105,10 @@ Deletes all items in the play queue, and increases the version of the play queue
+ playQueue: 101 (string) - The ID of the play queue. + playQueue: 101 (string) - The ID of the play queue.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="0" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueTotalCount="0" playQueueVersion="1"> <MediaContainer size="0" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueTotalCount="0" playQueueVersion="1">
</MediaContainer> </MediaContainer>
```
### Move an item in a play queue [PUT /playQueues/{playQueue}/items/{playQueueItemID}/move{?after}] ### Move an item in a play queue [PUT /playQueues/{playQueue}/items/{playQueueItemID}/move{?after}]
Moves an item in a play queue, and increases the version of the play queue. Returns the modified play queue. Moves an item in a play queue, and increases the version of the play queue. Returns the modified play queue.
@@ -119,12 +119,12 @@ Moves an item in a play queue, and increases the version of the play queue. Retu
+ after: 123 (string, optional) - the play queue item ID to insert the new item after. If not present, moves to the beginning. + after: 123 (string, optional) - the play queue item ID to insert the new item after. If not present, moves to the beginning.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1"> <MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1">
<Track playQueueItemID="2211762" /> <Track playQueueItemID="2211762" />
... ...
</MediaContainer> </MediaContainer>
```
### Shuffle a play queue [PUT /playQueues/{playQueue}/shuffle] ### Shuffle a play queue [PUT /playQueues/{playQueue}/shuffle]
Shuffle a play queue (or reshuffles if already shuffled). The currently selected item is maintained. Note that this is currently only supported for play queues *without* an Up Next area. Returns the modified play queue. Shuffle a play queue (or reshuffles if already shuffled). The currently selected item is maintained. Note that this is currently only supported for play queues *without* an Up Next area. Returns the modified play queue.
@@ -133,12 +133,12 @@ Shuffle a play queue (or reshuffles if already shuffled). The currently selected
+ playQueue: 101 (string) - The ID of the play queue. + playQueue: 101 (string) - The ID of the play queue.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1"> <MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1">
<Track playQueueItemID="2211762" /> <Track playQueueItemID="2211762" />
... ...
</MediaContainer> </MediaContainer>
```
### Unshuffle a play queue [PUT /playQueues/{playQueue}/unshuffle] ### Unshuffle a play queue [PUT /playQueues/{playQueue}/unshuffle]
Unshuffles a play queue and restores "natural order". Note that this is currently only supported for play queues *without* an Up Next area. Returns the modified play queue. Unshuffles a play queue and restores "natural order". Note that this is currently only supported for play queues *without* an Up Next area. Returns the modified play queue.
@@ -147,8 +147,9 @@ Unshuffles a play queue and restores "natural order". Note that this is currentl
+ playQueue: 101 (string) - The ID of the play queue. + playQueue: 101 (string) - The ID of the play queue.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1"> <MediaContainer size="21" playQueueID="9631" playQueueSelectedItemID="2211762" playQueueSelectedItemOffset="0" playQueueSelectedMetadataItemID="1941458" playQueueShuffled="0" playQueueSourceURI="library://2d8ea42e-7845-498b-b349-095ecaa3c451/item/%2Flibrary%2Fmetadata%2F1906642" playQueueTotalCount="22" playQueueVersion="1">
<Track playQueueItemID="2211762" /> <Track playQueueItemID="2211762" />
... ...
</MediaContainer> </MediaContainer>
```

View File

@@ -22,12 +22,12 @@ Gets a list of playlists and playlist folders for a user. General filters are pe
+ smart: `0` (boolean, optional) - optional, type of playlists to return (default is all). + smart: `0` (boolean, optional) - optional, type of playlists to return (default is all).
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="2"> <MediaContainer size="2">
<Playlist ratingKey="2561805" key="/playlists/2561805/items" type="playlist" title="Background videos" summary="" smart="0" playlistType="video" composite="/playlists/2561805/composite/1485900004" viewCount="8" lastViewedAt="1484680617" duration="1512000" leafCount="8" addedAt="1476942219" updatedAt="1485900004"></Playlist> <Playlist ratingKey="2561805" key="/playlists/2561805/items" type="playlist" title="Background videos" summary="" smart="0" playlistType="video" composite="/playlists/2561805/composite/1485900004" viewCount="8" lastViewedAt="1484680617" duration="1512000" leafCount="8" addedAt="1476942219" updatedAt="1485900004"></Playlist>
<Playlist ratingKey="1956389" key="/playlists/1956389/items" type="playlist" title="Fairly Recent" summary="" smart="1" playlistType="audio" composite="/playlists/1956389/composite/1486498661" duration="938507000" leafCount="3934" addedAt="1428993345" updatedAt="1486498661"></Playlist> <Playlist ratingKey="1956389" key="/playlists/1956389/items" type="playlist" title="Fairly Recent" summary="" smart="1" playlistType="audio" composite="/playlists/1956389/composite/1486498661" duration="938507000" leafCount="3934" addedAt="1428993345" updatedAt="1486498661"></Playlist>
</MediaContainer> </MediaContainer>
```
### Create a Playlist [POST /playlists?{title,type,smart,uri,playQueueID}] ### Create a Playlist [POST /playlists?{title,type,smart,uri,playQueueID}]
Create a new playlist. By default the playlist is blank. To create a playlist along with a first item, pass: Create a new playlist. By default the playlist is blank. To create a playlist along with a first item, pass:
@@ -45,11 +45,11 @@ If you're creating a smart playlist, you must pass `smart=1` and use the `uri=..
+ playQueueID: `123` (integer, optional) - the play queue to copy to a playlist. + playQueueID: `123` (integer, optional) - the play queue to copy to a playlist.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Playlist ratingKey="2561805" key="/playlists/2561805/items" type="playlist" title="Background videos" summary="" smart="0" playlistType="video" composite="/playlists/2561805/composite/1485900004" viewCount="8" lastViewedAt="1484680617" duration="1512000" leafCount="8" addedAt="1476942219" updatedAt="1485900004"></Playlist> <Playlist ratingKey="2561805" key="/playlists/2561805/items" type="playlist" title="Background videos" summary="" smart="0" playlistType="video" composite="/playlists/2561805/composite/1485900004" viewCount="8" lastViewedAt="1484680617" duration="1512000" leafCount="8" addedAt="1476942219" updatedAt="1485900004"></Playlist>
</MediaContainer> </MediaContainer>
```
### Retrieve Playlist [GET /playlists/{playlistID}] ### Retrieve Playlist [GET /playlists/{playlistID}]
Gets detailed metadata for a playlist. A playlist for many purposes (rating, editing metadata, tagging), can be treated like a regular metadata item: Gets detailed metadata for a playlist. A playlist for many purposes (rating, editing metadata, tagging), can be treated like a regular metadata item:
@@ -60,11 +60,11 @@ Smart playlist details contain the `content` attribute. This is the content URI
+ playlistID: `123` (integer) - the ID of the playlist. + playlistID: `123` (integer) - the ID of the playlist.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Playlist content="library://22d0bfe3-21ce-4a67-9065-ccaf470cb3c2/directory/%2Flibrary%2Fsections%2F1224%2Fall%3Ftrack%2EaddedAt%3E%3D-12mon%26album%2Egenre!%3DPodcast%26album%2Egenre!%3DBooks%2520%2526%2520Spoken%26artist%2Etitle!%3DAOL%2520Music" ratingKey="1956389" key="/playlists/1956389/items" guid="com.plexapp.plugins.itunes://9F7B78609597F45F" type="playlist" title="Fairly Recent" summary="" smart="1" playlistType="audio" composite="/playlists/1956389/composite/1486764293" duration="957684000" leafCount="4015" addedAt="1428993345" updatedAt="1486764293"></Playlist> <Playlist content="library://22d0bfe3-21ce-4a67-9065-ccaf470cb3c2/directory/%2Flibrary%2Fsections%2F1224%2Fall%3Ftrack%2EaddedAt%3E%3D-12mon%26album%2Egenre!%3DPodcast%26album%2Egenre!%3DBooks%2520%2526%2520Spoken%26artist%2Etitle!%3DAOL%2520Music" ratingKey="1956389" key="/playlists/1956389/items" guid="com.plexapp.plugins.itunes://9F7B78609597F45F" type="playlist" title="Fairly Recent" summary="" smart="1" playlistType="audio" composite="/playlists/1956389/composite/1486764293" duration="957684000" leafCount="4015" addedAt="1428993345" updatedAt="1486764293"></Playlist>
</MediaContainer> </MediaContainer>
```
### Retrieve Playlist Contents [GET /playlists/{playlistID}/items{?type}] ### Retrieve Playlist Contents [GET /playlists/{playlistID}/items{?type}]
Gets the contents if a playlist. Should be paged by clients via standard mechanisms. By default leaves are returned (e.g. episodes, movies). In order to return other types you can use the `type` parameter. For example, you could use this to display a list of recently added albums vis a smart playlist. Note that for dumb playlists, items have a `playlistItemID` attribute which is used for deleting or moving items. Gets the contents if a playlist. Should be paged by clients via standard mechanisms. By default leaves are returned (e.g. episodes, movies). In order to return other types you can use the `type` parameter. For example, you could use this to display a list of recently added albums vis a smart playlist. Note that for dumb playlists, items have a `playlistItemID` attribute which is used for deleting or moving items.
@@ -74,11 +74,11 @@ Gets the contents if a playlist. Should be paged by clients via standard mechani
+ type: `8` (integer) - the metadata type of the item to return. + type: `8` (integer) - the metadata type of the item to return.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="100"> <MediaContainer size="100">
<Video ... playlistItemID="123" /> <Video ... playlistItemID="123" />
</MediaContainer> </MediaContainer>
```
### Delete a Playlist [DELETE /playlists/{playlistID}] ### Delete a Playlist [DELETE /playlists/{playlistID}]
Deletes a playlist. Deletes a playlist.
@@ -114,11 +114,11 @@ Clears a playlist, only works with dumb playlists. Returns the playlist.
+ playlistID: `123` (integer) - the ID of the playlist. + playlistID: `123` (integer) - the ID of the playlist.
+ Response 200 + Response 200
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Playlist ratingKey="2561805" key="/playlists/2561805/items" type="playlist" title="Background videos" summary="" smart="0" playlistType="video" composite="/playlists/2561805/composite/1485900004" viewCount="8" lastViewedAt="1484680617" duration="1512000" leafCount="0" addedAt="1476942219" updatedAt="1485900004"></Playlist> <Playlist ratingKey="2561805" key="/playlists/2561805/items" type="playlist" title="Background videos" summary="" smart="0" playlistType="video" composite="/playlists/2561805/composite/1485900004" viewCount="8" lastViewedAt="1484680617" duration="1512000" leafCount="0" addedAt="1476942219" updatedAt="1485900004"></Playlist>
</MediaContainer> </MediaContainer>
```
### Adding to a Playlist [PUT /playlists/{playlistID}/items?{uri,playQueueID}] ### Adding to a Playlist [PUT /playlists/{playlistID}/items?{uri,playQueueID}]
Adds a generator to a playlist, same parameters as the POST above. With a dumb playlist, this adds the specified items to the playlist. With a smart playlist, passing a new `uri` parameter replaces the rules for the playlist. Returns the playlist. Adds a generator to a playlist, same parameters as the POST above. With a dumb playlist, this adds the specified items to the playlist. With a smart playlist, passing a new `uri` parameter replaces the rules for the playlist. Returns the playlist.
@@ -128,11 +128,11 @@ Adds a generator to a playlist, same parameters as the POST above. With a dumb p
+ playQueueID: `123` (integer, optional) - the play queue to add to a playlist. + playQueueID: `123` (integer, optional) - the play queue to add to a playlist.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Playlist ratingKey="2561805" key="/playlists/2561805/items" type="playlist" title="Background videos" summary="" smart="0" playlistType="video" composite="/playlists/2561805/composite/1485900004" viewCount="8" lastViewedAt="1484680617" duration="1512000" leafCount="8" addedAt="1476942219" updatedAt="1485900004"></Playlist> <Playlist ratingKey="2561805" key="/playlists/2561805/items" type="playlist" title="Background videos" summary="" smart="0" playlistType="video" composite="/playlists/2561805/composite/1485900004" viewCount="8" lastViewedAt="1484680617" duration="1512000" leafCount="8" addedAt="1476942219" updatedAt="1485900004"></Playlist>
</MediaContainer> </MediaContainer>
```
### Moving items in a playlist [PUT /playlists/{playlistID}/items/{playlistItemID}/move{?after}] ### Moving items in a playlist [PUT /playlists/{playlistID}/items/{playlistItemID}/move{?after}]
Moves an item in a playlist. Only works with dumb playlists. Moves an item in a playlist. Only works with dumb playlists.

View File

@@ -22,7 +22,7 @@ This request is intended to be very fast, and called as the user types.
+ Default: `3` + Default: `3`
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="12"> <MediaContainer size="12">
<Hub type="show" hubIdentifier="show" size="1" title="Shows" more="0"> <Hub type="show" hubIdentifier="show" size="1" title="Shows" more="0">
<Directory title="The Simpsons" titleSort="Simpsons" type="show" ... /> <Directory title="The Simpsons" titleSort="Simpsons" type="show" ... />
@@ -31,7 +31,7 @@ This request is intended to be very fast, and called as the user types.
<Video type="movie" title="The Simpsons Movie" ... /> <Video type="movie" title="The Simpsons Movie" ... />
</Hub> </Hub>
</MediaContainer> </MediaContainer>
```
### Perform a search tailored to voice input [GET /hubs/search/voice{?query,type,limit}] ### Perform a search tailored to voice input [GET /hubs/search/voice{?query,type,limit}]
This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint. It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint. Whenever possible, clients should limit the search to the appropriate type. This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint. It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint. Whenever possible, clients should limit the search to the appropriate type.
@@ -45,7 +45,7 @@ Results, as well as their containing per-type hubs, contain a `distance` attribu
+ Default: `3` + Default: `3`
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="2"> <MediaContainer size="2">
<Hub distance="3" type="movie" hubIdentifier="results.search.1" size="2" title="movie"> <Hub distance="3" type="movie" hubIdentifier="results.search.1" size="2" title="movie">
<Video distance="3" type="movie" title="Deadpool" /> <Video distance="3" type="movie" title="Deadpool" />
@@ -55,3 +55,4 @@ Results, as well as their containing per-type hubs, contain a `distance` attribu
<Directory distance="4" type="show" title="Deadwood" /> <Directory distance="4" type="show" title="Deadwood" />
</Hub> </Hub>
</MediaContainer> </MediaContainer>
```

View File

@@ -32,7 +32,7 @@ Returns details for the library. This can be thought of as an interstitial endpo
+ Default: `0` + Default: `0`
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="20" allowSync="0" art="/:/resources/movie-fanart.jpg" content="secondary" identifier="com.plexapp.plugins.library" librarySectionID="1" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1484125920" sortAsc="1" thumb="/:/resources/movie.png" title1="Movies" viewGroup="secondary" viewMode="65592"> <MediaContainer size="20" allowSync="0" art="/:/resources/movie-fanart.jpg" content="secondary" identifier="com.plexapp.plugins.library" librarySectionID="1" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1484125920" sortAsc="1" thumb="/:/resources/movie.png" title1="Movies" viewGroup="secondary" viewMode="65592">
<Directory key="all" title="All Movies"/> <Directory key="all" title="All Movies"/>
<Directory key="unwatched" title="Unwatched"/> <Directory key="unwatched" title="Unwatched"/>
@@ -75,3 +75,4 @@ Returns details for the library. This can be thought of as an interstitial endpo
<Sort defaultDirection="desc" descKey="duration:desc" key="duration" title="Duration"/> <Sort defaultDirection="desc" descKey="duration:desc" key="duration" title="Duration"/>
</Type> </Type>
</MediaContainer> </MediaContainer>
```

View File

@@ -48,13 +48,17 @@ Additional child elements include:
+ Body + Body
Normal response: Normal response:
```xml
<MediaContainer size="0" /> <MediaContainer size="0" />
```
Admin terminated session: Admin terminated session:
```xml
<MediaContainer size="0" terminationCode="2006" terminationText="Admin terminated playback with reason: Go Away" /> <MediaContainer size="0" terminationCode="2006" terminationText="Admin terminated playback with reason: Go Away" />
```
Bandwidth changes included: Bandwidth changes included:
<MediaContainer size="1"> ```xml
<MediaContainer size="1">
<Bandwidths> <Bandwidths>
<Bandwidth time="0" bandwidth="15000" resolution="1080p" /> <Bandwidth time="0" bandwidth="15000" resolution="1080p" />
<Bandwidth time="1050008" bandwidth="12000" resolution="1080p" /> <Bandwidth time="1050008" bandwidth="12000" resolution="1080p" />
@@ -70,6 +74,7 @@ Additional child elements include:
<Bandwidth time="1122038" bandwidth="10000" resolution="1080p" /> <Bandwidth time="1122038" bandwidth="10000" resolution="1080p" />
</Bandwidths> </Bandwidths>
</MediaContainer> </MediaContainer>
```
### Marking items watched [GET /:/scrobble{?key,uri,identifier}] ### Marking items watched [GET /:/scrobble{?key,uri,identifier}]

View File

@@ -15,14 +15,14 @@ Once you have configured devices and picked a lineup, you can create a DVR.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="1"> "<MediaContainer size="1">
<Dvr key="28" language="eng" lineup="lineup://tv.plex.providers.epg.onconnect/USA-HI51418-X" uuid="811e2e8a-f98f-4d1f-a26a-8bc26e4999a7"> <Dvr key="28" language="eng" lineup="lineup://tv.plex.providers.epg.onconnect/USA-HI51418-X" uuid="811e2e8a-f98f-4d1f-a26a-8bc26e4999a7">
<Device key="17" lastSeenAt="1463297728" make="Silicondust" model="HDHomeRun EXTEND" modelNumber="HDTC-2US" protocol="livetv" sources="0,1" state="1" status="1" tuners="2" uri="http://10.0.0.42" uuid="device://tv.plex.grabbers.hdhomerun/1053C0CA"> <Device key="17" lastSeenAt="1463297728" make="Silicondust" model="HDHomeRun EXTEND" modelNumber="HDTC-2US" protocol="livetv" sources="0,1" state="1" status="1" tuners="2" uri="http://10.0.0.42" uuid="device://tv.plex.grabbers.hdhomerun/1053C0CA">
<ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c634df507001fefcad0" deviceIdentifier="46.3" enabled="1" lineupIdentifier="002" /> <ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c634df507001fefcad0" deviceIdentifier="46.3" enabled="1" lineupIdentifier="002" />
<ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3d20d30eca001db32922" deviceIdentifier="48.1" enabled="1" lineupIdentifier="009" /> <ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3d20d30eca001db32922" deviceIdentifier="48.1" enabled="1" lineupIdentifier="009" />
</Device> </Device>
</Dvr> </Dvr>
</MediaContainer> </MediaContainer>"
### Get a single DVR [GET /livetv/dvrs/{dvr}] ### Get a single DVR [GET /livetv/dvrs/{dvr}]
@@ -31,9 +31,9 @@ Once you have configured devices and picked a lineup, you can create a DVR.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="1"> "<MediaContainer size="1">
<Dvr /> <Dvr />
</MediaContainer> </MediaContainer>"
### Delete a DVR [DELETE /livetv/dvrs/{dvr}] ### Delete a DVR [DELETE /livetv/dvrs/{dvr}]
@@ -50,9 +50,9 @@ Once you have configured devices and picked a lineup, you can create a DVR.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="1"> "<MediaContainer size="1">
<Dvr /> <Dvr />
</MediaContainer> </MediaContainer>"
### Remove a device from an existing DVR [DELETE /livetv/dvrs/{dvr}/devices/{device}"] ### Remove a device from an existing DVR [DELETE /livetv/dvrs/{dvr}/devices/{device}"]
@@ -62,9 +62,9 @@ Once you have configured devices and picked a lineup, you can create a DVR.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="1"> "<MediaContainer size="1">
<Dvr /> <Dvr />
</MediaContainer> </MediaContainer>"
### Set DVR preferences [PUT /livetv/dvrs/{dvr}/prefs{?name}] ### Set DVR preferences [PUT /livetv/dvrs/{dvr}/prefs{?name}]
@@ -74,13 +74,13 @@ Once you have configured devices and picked a lineup, you can create a DVR.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="1"> "<MediaContainer size="1">
<Dvr key="28" language="eng" lineup="lineup://tv.plex.providers.epg.onconnect/USA-HI51418-X" uuid="811e2e8a-f98f-4d1f-a26a-8bc26e4999a7"> <Dvr key="28" language="eng" lineup="lineup://tv.plex.providers.epg.onconnect/USA-HI51418-X" uuid="811e2e8a-f98f-4d1f-a26a-8bc26e4999a7">
<Device key="17" lastSeenAt="1463896924" make="Silicondust" model="HDHomeRun EXTEND" modelNumber="HDTC-2US" parentID="28" protocol="livetv" sources="0,1" state="1" status="1" tuners="2" uri="http://10.0.0.42" uuid="device://tv.plex.grabbers.hdhomerun/1053C0CA"> <Device key="17" lastSeenAt="1463896924" make="Silicondust" model="HDHomeRun EXTEND" modelNumber="HDTC-2US" parentID="28" protocol="livetv" sources="0,1" state="1" status="1" tuners="2" uri="http://10.0.0.42" uuid="device://tv.plex.grabbers.hdhomerun/1053C0CA">
<ChannelMapping deviceIdentifier="46.1" enabled="1" /> <ChannelMapping deviceIdentifier="46.1" enabled="1" />
</Device> </Device>
</Dvr> </Dvr>
</MediaContainer> </MediaContainer>"
### Tell a DVR to reload program guide [POST /livetv/dvrs/{dvr}/reloadGuide] ### Tell a DVR to reload program guide [POST /livetv/dvrs/{dvr}/reloadGuide]

View File

@@ -7,7 +7,7 @@
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="1"> "<MediaContainer size="1">
<Device key="6" lastSeenAt="1461737032" make="Silicondust" model="HDHomeRun EXPAND" modelNumber="HDHR3-4DC" protocol="livetv" sources="Cable" state="1" status="1" tuners="4" uri="http://home.techconnect.nl:8822" uuid="141007E7"> <Device key="6" lastSeenAt="1461737032" make="Silicondust" model="HDHomeRun EXPAND" modelNumber="HDHR3-4DC" protocol="livetv" sources="Cable" state="1" status="1" tuners="4" uri="http://home.techconnect.nl:8822" uuid="141007E7">
<ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c634df507001fefcad0" deviceIdentifier="46.3" enabled="1" lineupIdentifier="002" /> <ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c634df507001fefcad0" deviceIdentifier="46.3" enabled="1" lineupIdentifier="002" />
<ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3d20d30eca001db32922" deviceIdentifier="48.9" enabled="0" lineupIdentifier="004" /> <ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3d20d30eca001db32922" deviceIdentifier="48.9" enabled="0" lineupIdentifier="004" />
@@ -15,7 +15,7 @@
<ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c63de29da001cf021c2" deviceIdentifier="49.3" enabled="0" lineupIdentifier="008" /> <ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c63de29da001cf021c2" deviceIdentifier="49.3" enabled="0" lineupIdentifier="008" />
<ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c63e3ef4d001d05ba70" deviceIdentifier="10.4" enabled="1" /> <ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c63e3ef4d001d05ba70" deviceIdentifier="10.4" enabled="1" />
</Device> </Device>
</MediaContainer> </MediaContainer>"
### Enable or disable a device [PUT /media/grabbers/devices/{device}{?enabled}] ### Enable or disable a device [PUT /media/grabbers/devices/{device}{?enabled}]
@@ -25,7 +25,7 @@
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer message="" size="0" status="0" /> "<MediaContainer message="" size="0" status="0" />"
### Set device preferences [PUT /media/grabbers/devices/{device}/prefs{?name}] ### Set device preferences [PUT /media/grabbers/devices/{device}/prefs{?name}]
@@ -42,10 +42,10 @@
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="48"> "<MediaContainer size="48">
<DeviceChannel drm="0" hd="0" identifier="46.1" name="KPXO HD" /> <DeviceChannel drm="0" hd="0" identifier="46.1" name="KPXO HD" />
<DeviceChannel drm="0" hd="0" identifier="46.3" name="KHON HD" /> <DeviceChannel drm="0" hd="0" identifier="46.3" name="KHON HD" />
</MediaContainer> </MediaContainer>"
### Set a device's channel mapping [PUT /media/grabbers/devices/{device}/channelmap{?channelMapping,channelsEnabled}] ### Set a device's channel mapping [PUT /media/grabbers/devices/{device}/channelmap{?channelMapping,channelsEnabled}]
@@ -57,7 +57,7 @@
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer message="" size="0" status="0" /> "<MediaContainer message="" size="0" status="0" />"
### Tell a device to scan for channels [POST /media/grabbers/devices/{device}/scan{?source}] ### Tell a device to scan for channels [POST /media/grabbers/devices/{device}/scan{?source}]
@@ -73,7 +73,7 @@
+ Body + Body
<MediaContainer message="" size="0" status="0" /> "<MediaContainer message="" size="0" status="0" />"
### Tell a device to stop scanning for channels [DELETE /media/grabbers/devices/{device}/scan] ### Tell a device to stop scanning for channels [DELETE /media/grabbers/devices/{device}/scan]
@@ -82,4 +82,4 @@
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer message="" size="0" status="0" /> "<MediaContainer message="" size="0" status="0" />"

View File

@@ -12,11 +12,11 @@ This endpoint returns a list of countries which EPG data is available for. There
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="3"> "<MediaContainer size="3">
<Country key="aia/tv.plex.providers.epg.onconnect/lineups" type="country" title="Anguilla" code="aia" language="eng" languageTitle="English" example="AI-2640" flavor="2"/> <Country key="aia/tv.plex.providers.epg.onconnect/lineups" type="country" title="Anguilla" code="aia" language="eng" languageTitle="English" example="AI-2640" flavor="2"/>
<Country key="atg/tv.plex.providers.epg.onconnect/lineups" type="country" title="Antigua and Barbuda" code="atg" language="eng" languageTitle="English" example="AG" flavor="2"/> <Country key="atg/tv.plex.providers.epg.onconnect/lineups" type="country" title="Antigua and Barbuda" code="atg" language="eng" languageTitle="English" example="AG" flavor="2"/>
<Country key="arg/tv.plex.providers.epg.onconnect/lineups" type="country" title="Argentina" code="arg" language="spa" languageTitle="Español" example="A4190" flavor="1"/> <Country key="arg/tv.plex.providers.epg.onconnect/lineups" type="country" title="Argentina" code="arg" language="spa" languageTitle="Español" example="A4190" flavor="1"/>
</MediaContainer> </MediaContainer>"
### Get all languages [GET /livetv/epg/languages] ### Get all languages [GET /livetv/epg/languages]
@@ -24,11 +24,11 @@ Returns a list of all possible languages for EPG data.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="3"> "<MediaContainer size="3">
<Language code="aar" title="Afaraf"/> <Language code="aar" title="Afaraf"/>
<Language code="abk" title="аҧсуа"/> <Language code="abk" title="аҧсуа"/>
<Language code="afr" title="Afrikaans"/> <Language code="afr" title="Afrikaans"/>
</MediaContainer> </MediaContainer>"
### Get regions for a country [GET /livetv/epg/countries/{country}/{epgIdentifier}/regions] ### Get regions for a country [GET /livetv/epg/countries/{country}/{epgIdentifier}/regions]
@@ -38,10 +38,10 @@ Returns a list of all possible languages for EPG data.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="2"> "<MediaContainer size="2">
<Region key="132718/lineups" type="region" title="Bruxelles"/> <Region key="132718/lineups" type="region" title="Bruxelles"/>
<Region key="116043/lineups" type="region" title="Région wallonne"/> <Region key="116043/lineups" type="region" title="Région wallonne"/>
</MediaContainer> </MediaContainer>"
### Get lineups for a region [GET /livetv/epg/countries/{country}/{epgIdentifier}/regions/{region}/lineups{?country,region}] ### Get lineups for a region [GET /livetv/epg/countries/{country}/{epgIdentifier}/regions/{region}/lineups{?country,region}]
@@ -60,9 +60,9 @@ Returns the list of lineups for a given country, EPG provider, and region. There
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="1" uuid="lineup-group://tv.plex.providers.epg.eyeq/bhr/134535"> "<MediaContainer size="1" uuid="lineup-group://tv.plex.providers.epg.eyeq/bhr/134535">
<Lineup uuid="lineup://tv.plex.providers.epg.eyeq/410357488-CE9BE5630D077FE397F3B42E984AC8DD/bhr#OSN" type="lineup" title="OSN" lineupType="2"/> <Lineup uuid="lineup://tv.plex.providers.epg.eyeq/410357488-CE9BE5630D077FE397F3B42E984AC8DD/bhr#OSN" type="lineup" title="OSN" lineupType="2"/>
</MediaContainer> </MediaContainer>"
### Get lineups for a country via postal code [GET /livetv/epg/countries/{country}/{epgIdentifier}/lineups{?postalCode}] ### Get lineups for a country via postal code [GET /livetv/epg/countries/{country}/{epgIdentifier}/lineups{?postalCode}]
@@ -75,11 +75,11 @@ Returns a list of lineups for a given country, EPG provider and postal code.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="3" uuid="lineup-group://tv.plex.providers.epg.onconnect/aia/AI-2640"> "<MediaContainer size="3" uuid="lineup-group://tv.plex.providers.epg.onconnect/aia/AI-2640">
<Lineup uuid="lineup://tv.plex.providers.epg.onconnect/AIA-0000040-DEFAULT#Caribbean%20Cable%20Communications%20-%20Anguilla" type="lineup" title="Caribbean Cable Communications - Anguilla" lineupType="1" location="The Valley"/> <Lineup uuid="lineup://tv.plex.providers.epg.onconnect/AIA-0000040-DEFAULT#Caribbean%20Cable%20Communications%20-%20Anguilla" type="lineup" title="Caribbean Cable Communications - Anguilla" lineupType="1" location="The Valley"/>
<Lineup uuid="lineup://tv.plex.providers.epg.onconnect/AIA-0000040-X#Caribbean%20Cable%20Communications%20-%20Anguilla%20-%20Digital" type="lineup" title="Caribbean Cable Communications - Anguilla - Digital" lineupType="1" location="The Valley"/> <Lineup uuid="lineup://tv.plex.providers.epg.onconnect/AIA-0000040-X#Caribbean%20Cable%20Communications%20-%20Anguilla%20-%20Digital" type="lineup" title="Caribbean Cable Communications - Anguilla - Digital" lineupType="1" location="The Valley"/>
<Lineup uuid="lineup://tv.plex.providers.epg.onconnect/AIA-0002293-X#DirecTV%20Anguilla%20-%20Digital" type="lineup" title="DirecTV Anguilla - Digital" lineupType="1" location="The Valley"/> <Lineup uuid="lineup://tv.plex.providers.epg.onconnect/AIA-0002293-X#DirecTV%20Anguilla%20-%20Digital" type="lineup" title="DirecTV Anguilla - Digital" lineupType="1" location="The Valley"/>
</MediaContainer> </MediaContainer>"
### Get channels for a lineup [GET /livetv/epg/channels{?lineup}] ### Get channels for a lineup [GET /livetv/epg/channels{?lineup}]
@@ -88,10 +88,10 @@ Returns a list of lineups for a given country, EPG provider and postal code.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="2"> "<MediaContainer size="2">
<Channel callSign="BBC1SCO" identifier="001" thumb="http://plex.tmsimg.com/h3/NowShowing/21439/s21439_h3_aa.png" /> <Channel callSign="BBC1SCO" identifier="001" thumb="http://plex.tmsimg.com/h3/NowShowing/21439/s21439_h3_aa.png" />
<Channel callSign="BBC2SCO" identifier="002" /> <Channel callSign="BBC2SCO" identifier="002" />
</MediaContainer> </MediaContainer>"
### Compute the best channel map, given device and lineup [GET /livetv/epg/channelmap{?device,lineup}] ### Compute the best channel map, given device and lineup [GET /livetv/epg/channelmap{?device,lineup}]
@@ -101,9 +101,9 @@ Returns a list of lineups for a given country, EPG provider and postal code.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="1"> "<MediaContainer size="1">
<ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c634df507001fefcad0" deviceIdentifier="48.9" lineupIdentifier="103" /> <ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c634df507001fefcad0" deviceIdentifier="48.9" lineupIdentifier="103" />
</MediaContainer> </MediaContainer>"
### Compute the best lineup, given lineup group and device [GET /livetv/epg/lineup{?device,lineupGroup}] ### Compute the best lineup, given lineup group and device [GET /livetv/epg/lineup{?device,lineupGroup}]
@@ -119,5 +119,5 @@ Returns a list of lineups for a given country, EPG provider and postal code.
+ Body + Body
<MediaContainer /> "<MediaContainer />"

View File

@@ -20,7 +20,7 @@ Note that when successfully started, the reply will also include an Activity hea
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="1"> "<MediaContainer size="1">
<MediaSubscription key="886" title="This Episode" type="4"> <MediaSubscription key="886" title="This Episode" type="4">
<MediaGrabOperation deviceID="334" grabberIdentifier="tv.plex.grabbers.hdhomerun" grabberProtocol="livetv" key="/media/grabbers/operations/005-555wew" mediaIndex="0" mediaSubscriptionID="886" rolling="1" status="inprogress"> <MediaGrabOperation deviceID="334" grabberIdentifier="tv.plex.grabbers.hdhomerun" grabberProtocol="livetv" key="/media/grabbers/operations/005-555wew" mediaIndex="0" mediaSubscriptionID="886" rolling="1" status="inprogress">
<Video genuineMediaAnalysis="1" grandparentTitle="Live TV" key="/livetv/sessions/c1e26483-946b-4f8a-8120-bd498bd31386" live="1" title="Live Session 555wew"> <Video genuineMediaAnalysis="1" grandparentTitle="Live TV" key="/livetv/sessions/c1e26483-946b-4f8a-8120-bd498bd31386" live="1" title="Live Session 555wew">
@@ -55,7 +55,7 @@ Note that when successfully started, the reply will also include an Activity hea
</Video> </Video>
</AlsoAiring> </AlsoAiring>
</MediaSubscription> </MediaSubscription>
</MediaContainer> </MediaContainer>"
### Cancel an existing grab [DELETE /media/grabbers/operations/{uuid}] ### Cancel an existing grab [DELETE /media/grabbers/operations/{uuid}]
@@ -72,7 +72,7 @@ This endpoint cancels an existing media grab (recording). It can be used to reso
+ Response 200 (application/xml) + Response 200 (application/xml)
<?xml version="1.0" encoding="UTF-8"?> "<?xml version="1.0" encoding="UTF-8"?>
<MediaContainer size="1"> <MediaContainer size="1">
<Video genuineMediaAnalysis="1" live="1"> <Video genuineMediaAnalysis="1" live="1">
<Media uuid="dc30f95e-6379-44f7-8168-172ffc820496"> <Media uuid="dc30f95e-6379-44f7-8168-172ffc820496">
@@ -82,7 +82,7 @@ This endpoint cancels an existing media grab (recording). It can be used to reso
</Part> </Part>
</Media> </Media>
</Video> </Video>
</MediaContainer> </MediaContainer>"
### Get particular session [GET /livetv/sessions/{session}] ### Get particular session [GET /livetv/sessions/{session}]

View File

@@ -9,29 +9,29 @@ Media grabbers provide ways for media to be obtained for a given protocol. The s
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="3"> "<MediaContainer size="3">
<MediaGrabber identifier="tv.plex.grabbers.hdhomerun" protocol="livetv" title="HDHomerun" /> <MediaGrabber identifier="tv.plex.grabbers.hdhomerun" protocol="livetv" title="HDHomerun" />
<MediaGrabber identifier="tv.plex.grabbers.stream" protocol="stream" title="Stream" /> <MediaGrabber identifier="tv.plex.grabbers.stream" protocol="stream" title="Stream" />
<MediaGrabber identifier="tv.plex.grabbers.download" protocol="download" title="Download" /> <MediaGrabber identifier="tv.plex.grabbers.download" protocol="download" title="Download" />
</MediaContainer> </MediaContainer>"
### Get all devices [GET /media/grabbers/devices] ### Get all devices [GET /media/grabbers/devices]
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="2"> "<MediaContainer size="2">
<Device key="1053C0CA" lastSeenAt="1461450473" make="Silicondust" model="HDHomeRun EXTEND" modelNumber="HDTC-2US" protocol="livetv" tuners="2" sources="Antenna,Cable" uri="http://10.0.0.164" uuid="1053C0CA" /> <Device key="1053C0CA" lastSeenAt="1461450473" make="Silicondust" model="HDHomeRun EXTEND" modelNumber="HDTC-2US" protocol="livetv" tuners="2" sources="Antenna,Cable" uri="http://10.0.0.164" uuid="1053C0CA" />
<Device key="141007E7" lastSeenAt="1461450479" make="Silicondust" model="HDHomeRun EXPAND" modelNumber="HDHR3-4DC" protocol="livetv" tuners="4" sources="Cable" uri="http://home.techconnect.nl:8822" uuid="141007E7" /> <Device key="141007E7" lastSeenAt="1461450479" make="Silicondust" model="HDHomeRun EXPAND" modelNumber="HDHR3-4DC" protocol="livetv" tuners="4" sources="Cable" uri="http://home.techconnect.nl:8822" uuid="141007E7" />
</MediaContainer> </MediaContainer>"
### Tell grabbers to discover devices [POST /media/grabbers/devices/discover] ### Tell grabbers to discover devices [POST /media/grabbers/devices/discover]
+ Response 200 (application/xml) + Response 200 (application/xml)
<?xml version="1.0" encoding="UTF-8"?> "<?xml version="1.0" encoding="UTF-8"?>
<MediaContainer size="1"> <MediaContainer size="1">
<Device key="1053C0CA" lastSeenAt="1461450473" make="Silicondust" model="HDHomeRun EXTEND" modelNumber="HDTC-2US" protocol="livetv" tuners="2" uri="http://10.0.0.164" uuid="1053C0CA" /> <Device key="1053C0CA" lastSeenAt="1461450473" make="Silicondust" model="HDHomeRun EXTEND" modelNumber="HDTC-2US" protocol="livetv" tuners="2" uri="http://10.0.0.164" uuid="1053C0CA" />
</MediaContainer> </MediaContainer>"
### Add a device [POST /media/grabbers/devices{?uri}] ### Add a device [POST /media/grabbers/devices{?uri}]
@@ -42,9 +42,9 @@ This endpoint adds a device to an existing grabber. The device is identified, an
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="1"> "<MediaContainer size="1">
<Device key="1053C0CA" lastSeenAt="1461450473" make="Silicondust" model="HDHomeRun EXTEND" modelNumber="HDTC-2US" protocol="livetv" tuners="2" uri="http://10.0.0.5" uuid="1053C0CA" /> <Device key="1053C0CA" lastSeenAt="1461450473" make="Silicondust" model="HDHomeRun EXTEND" modelNumber="HDTC-2US" protocol="livetv" tuners="2" uri="http://10.0.0.5" uuid="1053C0CA" />
</MediaContainer> </MediaContainer>"
### Remove a device [DELETE /media/grabbers/devices/{device}] ### Remove a device [DELETE /media/grabbers/devices/{device}]
@@ -53,7 +53,7 @@ This endpoint adds a device to an existing grabber. The device is identified, an
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer message="" size="0" status="0" /> "<MediaContainer message="" size="0" status="0" />"
+ Response 404 + Response 404
@@ -67,7 +67,7 @@ This endpoint adds a device to an existing grabber. The device is identified, an
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="1"> "<MediaContainer size="1">
<Device key="6" lastSeenAt="1461737032" make="Silicondust" model="HDHomeRun EXPAND" modelNumber="HDHR3-4DC" protocol="livetv" sources="Cable" state="1" status="1" tuners="4" uri="http://home.techconnect.nl:8822" uuid="141007E7"> <Device key="6" lastSeenAt="1461737032" make="Silicondust" model="HDHomeRun EXPAND" modelNumber="HDHR3-4DC" protocol="livetv" sources="Cable" state="1" status="1" tuners="4" uri="http://home.techconnect.nl:8822" uuid="141007E7">
<ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c634df507001fefcad0" deviceIdentifier="46.3" enabled="1" lineupIdentifier="002" /> <ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c634df507001fefcad0" deviceIdentifier="46.3" enabled="1" lineupIdentifier="002" />
<ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3d20d30eca001db32922" deviceIdentifier="48.9" enabled="0" lineupIdentifier="004" /> <ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3d20d30eca001db32922" deviceIdentifier="48.9" enabled="0" lineupIdentifier="004" />
@@ -75,7 +75,7 @@ This endpoint adds a device to an existing grabber. The device is identified, an
<ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c63de29da001cf021c2" deviceIdentifier="49.3" enabled="0" lineupIdentifier="008" /> <ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c63de29da001cf021c2" deviceIdentifier="49.3" enabled="0" lineupIdentifier="008" />
<ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c63e3ef4d001d05ba70" deviceIdentifier="10.4" enabled="1" /> <ChannelMapping channelKey="5cc83d73af4a72001e9b16d7-5cab3c63e3ef4d001d05ba70" deviceIdentifier="10.4" enabled="1" />
</Device> </Device>
</MediaContainer> </MediaContainer>"
### Enable or disable a device [PUT /media/grabbers/devices/{device}{?enabled}] ### Enable or disable a device [PUT /media/grabbers/devices/{device}{?enabled}]
@@ -84,7 +84,7 @@ This endpoint adds a device to an existing grabber. The device is identified, an
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer message="" size="0" status="0" /> "<MediaContainer message="" size="0" status="0" />"
### Get a device's channels [GET /media/grabbers/devices/{device}/channels] ### Get a device's channels [GET /media/grabbers/devices/{device}/channels]
@@ -93,10 +93,10 @@ This endpoint adds a device to an existing grabber. The device is identified, an
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer size="48"> "<MediaContainer size="48">
<DeviceChannel drm="0" hd="0" identifier="46.1" name="KPXO HD" /> <DeviceChannel drm="0" hd="0" identifier="46.1" name="KPXO HD" />
<DeviceChannel drm="0" hd="0" identifier="46.3" name="KHON HD" /> <DeviceChannel drm="0" hd="0" identifier="46.3" name="KHON HD" />
</MediaContainer> </MediaContainer>"
### Get metadata item for tuned channel [GET /media/grabbers/devices/{device}/channels/{channel}] ### Get metadata item for tuned channel [GET /media/grabbers/devices/{device}/channels/{channel}]
@@ -108,7 +108,7 @@ This endpoint can be used with the transcoder start and decision endpoints.
+ Response 200 (application/xml) + Response 200 (application/xml)
<?xml version="1.0" encoding="UTF-8"?> "<?xml version="1.0" encoding="UTF-8"?>
<MediaContainer size="1"> <MediaContainer size="1">
<Video genuineMediaAnalysis="1" live="1"> <Video genuineMediaAnalysis="1" live="1">
<Media uuid="dc30f95e-6379-44f7-8168-172ffc820496"> <Media uuid="dc30f95e-6379-44f7-8168-172ffc820496">
@@ -118,7 +118,7 @@ This endpoint can be used with the transcoder start and decision endpoints.
</Part> </Part>
</Media> </Media>
</Video> </Video>
</MediaContainer> </MediaContainer>"
+ Response 404: Channel not currently tuned + Response 404: Channel not currently tuned
@@ -141,7 +141,7 @@ This endpoint can be used with the transcoder start and decision endpoints.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer message="" size="0" status="0" /> "<MediaContainer message="" size="0" status="0" />"
### Tell a device to scan for channels [POST /media/grabbers/devices/{device}/scan{?source}] ### Tell a device to scan for channels [POST /media/grabbers/devices/{device}/scan{?source}]
@@ -157,7 +157,7 @@ This endpoint can be used with the transcoder start and decision endpoints.
+ Body + Body
<MediaContainer message="" size="0" status="0" /> "<MediaContainer message="" size="0" status="0" />"
### Tell a device to stop scanning for channels [DELETE /media/grabbers/devices/{device}/scan] ### Tell a device to stop scanning for channels [DELETE /media/grabbers/devices/{device}/scan]
@@ -166,4 +166,4 @@ This endpoint can be used with the transcoder start and decision endpoints.
+ Response 200 (application/xml) + Response 200 (application/xml)
<MediaContainer message="" size="0" status="0" /> "<MediaContainer message="" size="0" status="0" />"

View File

@@ -6,7 +6,7 @@
+ type: `2` - The type of the thing we're subscribing too (e.g. show, season). + type: `2` - The type of the thing we're subscribing too (e.g. show, season).
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="7"> <MediaContainer size="7">
<Setting id="newnessPolicy" label="" default="0" summary="" type="int" value="-1" hidden="0" advanced="0" group=""/> <Setting id="newnessPolicy" label="" default="0" summary="" type="int" value="-1" hidden="0" advanced="0" group=""/>
<Setting id="replacementPolicy" label="" default="0" summary="" type="int" value="-1" hidden="0" advanced="0" group=""/> <Setting id="replacementPolicy" label="" default="0" summary="" type="int" value="-1" hidden="0" advanced="0" group=""/>
@@ -16,6 +16,7 @@
<Setting id="endOffsetSeconds" label="" default="0" summary="" type="int" value="-1" hidden="0" advanced="0" group=""/> <Setting id="endOffsetSeconds" label="" default="0" summary="" type="int" value="-1" hidden="0" advanced="0" group=""/>
<Setting id="recordPartials" label="" default="true" summary="" type="bool" value="false" hidden="0" advanced="0" group=""/> <Setting id="recordPartials" label="" default="true" summary="" type="bool" value="false" hidden="0" advanced="0" group=""/>
</MediaContainer> </MediaContainer>
```
### Create a subscription [POST /media/subscriptions/{?targetLibrarySectionID,targetSectionLocationID,type,hints,prefs}] ### Create a subscription [POST /media/subscriptions/{?targetLibrarySectionID,targetSectionLocationID,type,hints,prefs}]
@@ -30,7 +31,7 @@
+ `params[source]=server://0123456789abcdef0123456789abcdef01234567/com.plexapp.plugins.library`: Required for downloads to indicate the source of the downloaded content. + `params[source]=server://0123456789abcdef0123456789abcdef01234567/com.plexapp.plugins.library`: Required for downloads to indicate the source of the downloaded content.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<MediaSubscription key="18" metadataType="2" targetLibrarySectionID="2" title="Family Guy"> <MediaSubscription key="18" metadataType="2" targetLibrarySectionID="2" title="Family Guy">
<MediaGrabOperation beginsAt="1465814100" endsAt="1465815900" grandparentTitle="Family Guy" index="1" mediaSubscriptionID="19" parentIndex="1" status="1" title="Death Has a Shadow"> <MediaGrabOperation beginsAt="1465814100" endsAt="1465815900" grandparentTitle="Family Guy" index="1" mediaSubscriptionID="19" parentIndex="1" status="1" title="Death Has a Shadow">
@@ -50,20 +51,20 @@
<Setting advanced="0" default="true" group="" hidden="0" id="recordPartials" label="Record partial media" summary="" type="bool" value="true" /> <Setting advanced="0" default="true" group="" hidden="0" id="recordPartials" label="Record partial media" summary="" type="bool" value="true" />
</MediaSubscription> </MediaSubscription>
</MediaContainer> </MediaContainer>
```
### Get all subscriptions [GET /media/subscriptions/{?includeGrabs}] ### Get all subscriptions [GET /media/subscriptions/{?includeGrabs}]
+ Parameters + Parameters
+ includeGrabs: `1` (optional) - Whether or not to include all the scheduled grabs for each subcription. + includeGrabs: `1` (optional) - Whether or not to include all the scheduled grabs for each subcription.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<MediaSubscription key="1" metadataType="2" targetLibrarySectionID="2" title="fresh off the boat"> <MediaSubscription key="1" metadataType="2" targetLibrarySectionID="2" title="fresh off the boat">
<Setting advanced="0" default="0" enumValues="0:all episodes|1:only new episodes" group="" hidden="0" id="newnessPolicy" label="Record" summary="" type="int" value="0" /> <Setting advanced="0" default="0" enumValues="0:all episodes|1:only new episodes" group="" hidden="0" id="newnessPolicy" label="Record" summary="" type="int" value="0" />
</MediaSubscription> </MediaSubscription>
</MediaContainer> </MediaContainer>
```
### Get a single subscription [GET /media/subscriptions/{subscription}{?includeGrabs}] ### Get a single subscription [GET /media/subscriptions/{subscription}{?includeGrabs}]
+ Parameters + Parameters
@@ -71,13 +72,13 @@
+ includeGrabs: `1` (optional) - Whether or not to include all the scheduled grabs for each subcription. + includeGrabs: `1` (optional) - Whether or not to include all the scheduled grabs for each subcription.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<MediaSubscription key="1" metadataType="2" targetLibrarySectionID="2" title="fresh off the boat"> <MediaSubscription key="1" metadataType="2" targetLibrarySectionID="2" title="fresh off the boat">
<Setting advanced="0" default="0" enumValues="0:all episodes|1:only new episodes" group="" hidden="0" id="newnessPolicy" label="Record" summary="" type="int" value="0" /> <Setting advanced="0" default="0" enumValues="0:all episodes|1:only new episodes" group="" hidden="0" id="newnessPolicy" label="Record" summary="" type="int" value="0" />
</MediaSubscription> </MediaSubscription>
</MediaContainer> </MediaContainer>
```
### Delete a subscription [DELETE /media/subscriptions/{subscription}] ### Delete a subscription [DELETE /media/subscriptions/{subscription}]
+ Parameters + Parameters
@@ -91,17 +92,17 @@
+ prefs: `prefs[minVideoQuality]=720` (array) - Subscription preferences. + prefs: `prefs[minVideoQuality]=720` (array) - Subscription preferences.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<MediaSubscription key="1" metadataType="2" targetLibrarySectionID="2" title="fresh off the boat"> <MediaSubscription key="1" metadataType="2" targetLibrarySectionID="2" title="fresh off the boat">
<Setting advanced="0" default="0" enumValues="0:all episodes|1:only new episodes" group="" hidden="0" id="newnessPolicy" label="Record" summary="" type="int" value="0" /> <Setting advanced="0" default="0" enumValues="0:all episodes|1:only new episodes" group="" hidden="0" id="newnessPolicy" label="Record" summary="" type="int" value="0" />
</MediaSubscription> </MediaSubscription>
</MediaContainer> </MediaContainer>
```
### Get all scheduled recordings [GET /media/subscriptions/scheduled] ### Get all scheduled recordings [GET /media/subscriptions/scheduled]
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<MediaGrabOperation beginsAt="1466060400" endsAt="1466062200" grandparentTitle="Fresh Off the Boat" index="5" mediaSubscriptionID="1" parentIndex="2" status="1" title="Miracle on Dead Street"> <MediaGrabOperation beginsAt="1466060400" endsAt="1466062200" grandparentTitle="Fresh Off the Boat" index="5" mediaSubscriptionID="1" parentIndex="2" status="1" title="Miracle on Dead Street">
<Video addedAt="1464994564" contentRating="TV-PG" duration="1800000" grandparentTitle="Fresh Off the Boat" index="5" key="/tv.plex.providers.epg.onconnect-811e2e8a-f98f-4d1f-a26a-8bc26e4999a7/metadata/2543" originallyAvailableAt="2015-10-27" parentIndex="2" parentKey="/tv.plex.providers.epg.onconnect-811e2e8a-f98f-4d1f-a26a-8bc26e4999a7/metadata/2542" parentRatingKey="2542" ratingKey="com.gracenote.onconnect://episode/EP019218760019" summary="Louis wants to make his street a prime trick-or-treat destination." title="Miracle on Dead Street" type="episode" year="2015"> <Video addedAt="1464994564" contentRating="TV-PG" duration="1800000" grandparentTitle="Fresh Off the Boat" index="5" key="/tv.plex.providers.epg.onconnect-811e2e8a-f98f-4d1f-a26a-8bc26e4999a7/metadata/2543" originallyAvailableAt="2015-10-27" parentIndex="2" parentKey="/tv.plex.providers.epg.onconnect-811e2e8a-f98f-4d1f-a26a-8bc26e4999a7/metadata/2542" parentRatingKey="2542" ratingKey="com.gracenote.onconnect://episode/EP019218760019" summary="Louis wants to make his street a prime trick-or-treat destination." title="Miracle on Dead Street" type="episode" year="2015">
@@ -112,7 +113,7 @@
</Video> </Video>
</MediaGrabOperation> </MediaGrabOperation>
</MediaContainer> </MediaContainer>
```
### Process all subscriptions [POST /media/subscriptions/process] ### Process all subscriptions [POST /media/subscriptions/process]
+ Response 200 + Response 200

View File

@@ -47,7 +47,7 @@ The response consists of a list of devices, with the following attributes:
- `enumValues`: A pipe-separated list of options for the preference. Each option is a colon-separated entry with the form of `value:display-string`. - `enumValues`: A pipe-separated list of options for the preference. Each option is a colon-separated entry with the form of `value:display-string`.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Device key="123123" make="Silicondust" model="HDHomeRun CONNECT" modelNumber="HDHR4-2DT" <Device key="123123" make="Silicondust" model="HDHomeRun CONNECT" modelNumber="HDHR4-2DT"
protocol="livetv" status="alive" title="HDHomeRun CONNECT" tuners="1" protocol="livetv" status="alive" title="HDHomeRun CONNECT" tuners="1"
@@ -58,7 +58,7 @@ The response consists of a list of devices, with the following attributes:
default="0" value="0" enumValues="0:720|1:1080" /> default="0" value="0" enumValues="0:720|1:1080" />
</Device> </Device>
</MediaContainer> </MediaContainer>
```
### Device Probe [POST /devices/probe{?uri}] ### Device Probe [POST /devices/probe{?uri}]
Probes a specific URI for a network device, and returns a device, if it exists at the given URI. Probes a specific URI for a network device, and returns a device, if it exists at the given URI.
@@ -67,11 +67,11 @@ Probes a specific URI for a network device, and returns a device, if it exists a
+ uri: http://10.0.0.100:10000 (string) - URI for the device. Can be either HTTP or HTTPS. + uri: http://10.0.0.100:10000 (string) - URI for the device. Can be either HTTP or HTTPS.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Device ... /> <Device ... />
</MediaContainer> </MediaContainer>
```
### Get identity and capabilities [GET /devices/{devicekey}] ### Get identity and capabilities [GET /devices/{devicekey}]
Returns the identity, capabilities, and current status of the devices and each of its tuners. Returns the identity, capabilities, and current status of the devices and each of its tuners.
@@ -98,7 +98,7 @@ Returns the identity, capabilities, and current status of the devices and each o
+ devicekey: 12323213 (string, required) - key referring to tuner device, as originally reported in the `/devices/discover` endpoint. + devicekey: 12323213 (string, required) - key referring to tuner device, as originally reported in the `/devices/discover` endpoint.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Device key="dvb%23hdhr%230%23305174604" make="Silicondust" model="hdhomerun4_dvbt" <Device key="dvb%23hdhr%230%23305174604" make="Silicondust" model="hdhomerun4_dvbt"
modelNumber="HDHR4-2DT" protocol="livetv" status="alive" modelNumber="HDHR4-2DT" protocol="livetv" status="alive"
@@ -109,7 +109,7 @@ Returns the identity, capabilities, and current status of the devices and each o
<Tuner index="2" status="scanning" progress="50" channelsFound="10"/> <Tuner index="2" status="scanning" progress="50" channelsFound="10"/>
</Device> </Device>
</MediaContainer> </MediaContainer>
```
### Get a device's channels [GET /devices/{devicekey}/channels] ### Get a device's channels [GET /devices/{devicekey}/channels]
Returns the current channels. This list is updated after a complete channel scan, and should not be assumed to persist beyond that. Returns the current channels. This list is updated after a complete channel scan, and should not be assumed to persist beyond that.
@@ -132,12 +132,12 @@ The response contains zero or more channels, with the following attributes:
+ devicekey: 12323213 (string, required) - key referring to tuner device, as originally reported in the `/devices/discover` endpoint. + devicekey: 12323213 (string, required) - key referring to tuner device, as originally reported in the `/devices/discover` endpoint.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Channel drm="0" channelIdentifier="triplet://10:1123:201" name="NOS 1 HD" origin="Canal Digitaal" <Channel drm="0" channelIdentifier="triplet://10:1123:201" name="NOS 1 HD" origin="Canal Digitaal"
param="xxxxxxx" number="10" type="tv|radio" /> param="xxxxxxx" number="10" type="tv|radio" />
</MediaContainer> </MediaContainer>
```
### Get channel scan providers [GET /devices/{devicekey}/scanners{?type}] ### Get channel scan providers [GET /devices/{devicekey}/scanners{?type}]
Before scanning a device for channels, it must be queried to ascertain which type of scanners are supported. Each scanner may have custom configuration which is passed back in the form of preferences. These preferences must be shown the user, and the values round-tripped back when the scan is kicked off. The response includes one or more scanners, defined below. Before scanning a device for channels, it must be queried to ascertain which type of scanners are supported. Each scanner may have custom configuration which is passed back in the form of preferences. These preferences must be shown the user, and the values round-tripped back when the scan is kicked off. The response includes one or more scanners, defined below.
@@ -149,7 +149,7 @@ If the response's media container has `simultaneousScanners="1"`, this implies t
+ type: 5 (string, optional) - The filter on broadcast standard type, which can be: `0` (atsc), `1` (cqam), `2` (dvb-s), `3` (iptv), `4` (virtual), `5` (dvb-t), `6` (dvb-c), `7` (isdbt) + type: 5 (string, optional) - The filter on broadcast standard type, which can be: `0` (atsc), `1` (cqam), `2` (dvb-s), `3` (iptv), `4` (virtual), `5` (dvb-t), `6` (dvb-c), `7` (isdbt)
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="3" simultaneousScanners="1"> <MediaContainer size="3" simultaneousScanners="1">
<Scanner type="dvb-t"> <Scanner type="dvb-t">
<Setting id="provider" enumValues="1:DVB-T Netherlands|2:Digitenne (DVB-T, Netherlands)..." /> <Setting id="provider" enumValues="1:DVB-T Netherlands|2:Digitenne (DVB-T, Netherlands)..." />
@@ -163,7 +163,7 @@ If the response's media container has `simultaneousScanners="1"`, this implies t
<Setting id="lnbType" enumValues="ku_linear:Ku-linear|ku_circular:Ku-circular..." /> <Setting id="lnbType" enumValues="ku_linear:Ku-linear|ku_circular:Ku-circular..." />
</Scanner> </Scanner>
</MediaContainer> </MediaContainer>
```
#### Scanners #### Scanners
Defines a scanner that can be used to search for channels. They will have the following attributes: Defines a scanner that can be used to search for channels. They will have the following attributes:
@@ -185,12 +185,12 @@ In some cases, channel scanning is a two-step process, where the first stage con
+ devicekey: 12323213 (string, required) - key referring to tuner device, as originally reported in the `/devices/discover` endpoint. + devicekey: 12323213 (string, required) - key referring to tuner device, as originally reported in the `/devices/discover` endpoint.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="2"> <MediaContainer size="2">
<Network key="43136" title="Noord Holland" /> <Network key="43136" title="Noord Holland" />
<Network key="43138" title="Flevoland" /> <Network key="43138" title="Flevoland" />
</MediaContainer> </MediaContainer>
```
### Start a channel scan for network [POST /devices/{devicekey}/scan{?network,source,provider}] ### Start a channel scan for network [POST /devices/{devicekey}/scan{?network,source,provider}]
Starts a background channel scan. Updates are received via querying the device details endpoint (`/devices/x`). The response will have the following attributes: Starts a background channel scan. Updates are received via querying the device details endpoint (`/devices/x`). The response will have the following attributes:
@@ -204,9 +204,9 @@ Starts a background channel scan. Updates are received via querying the device d
+ provider: 1 (integer) - the key of the scanner to use when scanning. + provider: 1 (integer) - the key of the scanner to use when scanning.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer status="0" message="..."> <MediaContainer status="0" message="...">
```
### Cancel channel scan [DELETE /devices/{devicekey}/scan] ### Cancel channel scan [DELETE /devices/{devicekey}/scan]
Cancels an ongoing background channel scan. Cancels an ongoing background channel scan.
@@ -215,9 +215,9 @@ Cancels an ongoing background channel scan.
+ devicekey: 12323213 (string, required) - key referring to tuner device, as originally reported in the `/devices/discover` endpoint. + devicekey: 12323213 (string, required) - key referring to tuner device, as originally reported in the `/devices/discover` endpoint.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer status="0" message="..." /> <MediaContainer status="0" message="..." />
```
### Stream media from a tuner [GET /devices/{devicekey}/media/{channel}{?param}] ### Stream media from a tuner [GET /devices/{devicekey}/media/{channel}{?param}]
+ Parameters + Parameters
@@ -244,7 +244,7 @@ These preferences are originally provided by the device in the `/devices/discove
Network tuners can present themselves on the network using the Simple Service Discovery Protocol and Plex Media Server will discover them. The following XML is an example of the data returned from SSDP. The `deviceType`, `serviceType`, and `serviceId` values must remain as they are in the example in order for PMS to properly discover the device. Other less-obvious fields are described in the parameters section below. Network tuners can present themselves on the network using the Simple Service Discovery Protocol and Plex Media Server will discover them. The following XML is an example of the data returned from SSDP. The `deviceType`, `serviceType`, and `serviceId` values must remain as they are in the example in order for PMS to properly discover the device. Other less-obvious fields are described in the parameters section below.
+ Example SSDP output + Example SSDP output
```xml
<root xmlns="urn:schemas-upnp-org:device-1-0"> <root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion> <specVersion>
<major>1</major> <major>1</major>
@@ -269,7 +269,7 @@ Network tuners can present themselves on the network using the Simple Service Di
</serviceList> </serviceList>
</device> </device>
</root> </root>
```
+ Parameters + Parameters
+ UDN: (string) A UUID for the device. This should be unique across models of a device at minimum. + UDN: (string) A UUID for the device. This should be unique across models of a device at minimum.
+ URLBase: (string) The base HTTP URL for the device from which all of the other endpoints are hosted. + URLBase: (string) The base HTTP URL for the device from which all of the other endpoints are hosted.

View File

@@ -9,9 +9,9 @@ This endpoint provides the caller with a temporary token with the same access le
+ scope: `all` - This is the only supported `scope` parameter. + scope: `all` - This is the only supported `scope` parameter.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="0" token="transient-90904684-f91a-4391-8bf7-e0dfa7240285"></MediaContainer> <MediaContainer size="0" token="transient-90904684-f91a-4391-8bf7-e0dfa7240285"></MediaContainer>
```
### Get Source Connection Information [GET /security/resources{?source}] ### Get Source Connection Information [GET /security/resources{?source}]
If a caller requires connection details and a transient token for a source that is known to the server, for example a cloud media provider or shared PMS, then this endpoint can be called. This endpoint is only accessible with either an admin token or a valid transient token generated from an admin token. If a caller requires connection details and a transient token for a source that is known to the server, for example a cloud media provider or shared PMS, then this endpoint can be called. This endpoint is only accessible with either an admin token or a valid transient token generated from an admin token.
@@ -22,7 +22,7 @@ Note: requires Plex Media Server >= 1.15.4.
+ source: `server://client-identifier` or `provider://provider-identifier` - The source identifier with an included prefix. + source: `server://client-identifier` or `provider://provider-identifier` - The source identifier with an included prefix.
+ Response 200 (application/xml) + Response 200 (application/xml)
```xml
<MediaContainer size="1"> <MediaContainer size="1">
<Device name="PlexCorp (plex-corp)" clientIdentifier="243b471948ace337a8f92f129ec97d1902fcb1df" accessToken="transient-fa75f159-b9d2-42b6-8fbd-1761c7a4195a"> <Device name="PlexCorp (plex-corp)" clientIdentifier="243b471948ace337a8f92f129ec97d1902fcb1df" accessToken="transient-fa75f159-b9d2-42b6-8fbd-1761c7a4195a">
<Connection protocol="https" address="10.0.2.123" uri="https://10-0-2-123.93b10b279ff8456686414add109854cd.plex.direct:32400" port="32400" local="1" /> <Connection protocol="https" address="10.0.2.123" uri="https://10-0-2-123.93b10b279ff8456686414add109854cd.plex.direct:32400" port="32400" local="1" />
@@ -30,3 +30,4 @@ Note: requires Plex Media Server >= 1.15.4.
<Connection protocol="https" address="139.162.158.105" uri="https://139-162-158-105.93b10b279ff8456686414add109854cd.plex.direct:8443" port="8443" local="0" relay="1" /> <Connection protocol="https" address="139.162.158.105" uri="https://139-162-158-105.93b10b279ff8456686414add109854cd.plex.direct:8443" port="8443" local="0" relay="1" />
</Device> </Device>
</MediaContainer> </MediaContainer>
```