Authorizations
The token which identifies the user accessing the PMS. This can be either:
- A traditional access token obtained from plex.tv
- A JWT token obtained through the JWT authentication flow
JWT tokens provide better security with:
- Short-lived tokens (7 days expiration)
- Public-key cryptography (ED25519)
- Better clock synchronization
- Individual device revocation capability
Headers
Indicates the client accepts the indicated media types
application/json, application/xml Unique per client.
The name of the client product
"Plex for Roku"
The version of the client application
"2.4.1"
Client Platform
Client Platform Version
Device the client is running on
Model of the device the client is running on
The device vendor
"Roku"
A friendly name for the client
"Living Room TV"
The marketplace on which the client application is distributed
"googlePlay"
See Profile Augmentations .
Which built in Client Profile to use in the decision. Generally should only be used to specify the Generic profile.
Unique per client playback session. Used if a client can playback multiple items at a time (such as a browser with multiple tabs)
Path Parameters
Type of transcode media
video, music, audio, subtitles Query Parameters
Transcode session UUID
Indicates how incompatible advanced subtitles (such as ass/ssa) should be included: * 'burn' - Burn incompatible advanced text subtitles into the video stream * 'text' - Transcode incompatible advanced text subtitles to a compatible text format, even if some markup is lost
burn, text, unknown Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc)
x >= 1Target video number of audio channels.
1 <= x <= 8Indicates the client supports ABR.
0, 1 Indicates if the server should adjust subtitles based on Voice Activity Data.
0, 1 Indicates the client supports direct playing the indicated content.
0, 1 Indicates the client supports direct streaming the video of the indicated content.
0, 1 Indicates the client supports direct streaming the audio of the indicated content.
0, 1 Indicates if resolution should be adjusted for orientation.
0, 1 Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1
0, 1 Network type of the client, can be used to help determine target bitrate.
lan, wan, cellular Buffer size used in playback (in KB). Clients should specify a lower bound if not known exactly. This value could make the difference between transcoding and direct play on bandwidth constrained networks.
Index of the media to transcode. -1 or not specified indicates let the server choose.
Target bitrate for audio only files (in kbps, used to transcode).
x >= 0Offset from the start of the media (in seconds).
Index of the part to transcode. -1 or not specified indicates the server should join parts together in a transcode
Internal PMS path of the media to transcode.
Maximum bitrate (in kbps) to use in ABR.
x >= 0Target photo resolution.
Indicates the network streaming protocol to be used for the transcode session: * 'http' - include the file in the http response such as MKV streaming * 'hls' - hls stream (RFC 8216) * 'dash' - dash stream (ISO/IEC 23009-1:2022)
http, hls, dash Number of seconds to include in each transcoded segment
Percentage of original subtitle size to use when burning subtitles (100 is equivalent to original size, 50 is half, ect)
x >= 1Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream
auto, burn, none, sidecar, embedded, segmented, unknown Target video bitrate (in kbps).
x >= 0Target photo quality.
0 <= x <= 99Target maximum video resolution.
Response
OK
MediaContainer is commonly found as the root of a response and is a pretty generic container. Common attributes include identifier and things related to paging (offset, size, totalSize).
It is also common for a MediaContainer to contain attributes "hoisted" from its children. If every element in the container would have had the same attribute, then that attribute can be present on the container instead of being repeated on every element. For example, an album's list of tracks might include parentTitle on the container since all of the tracks have the same album title. A container may have a source attribute when all of the items came from the same source. Generally speaking, when looking for an attribute on an item, if the attribute wasn't found then the container should be checked for that attribute as well.
MediaContainer is the root element of most Plex API responses. It serves as a generic container for various types of content (Metadata, Hubs, Directories, etc.) and includes pagination information (offset, size, totalSize) when applicable.
Common attributes: - identifier: Unique identifier for this container - size: Number of items in this response page - totalSize: Total number of items available (for pagination) - offset: Starting index of this page (for pagination)
The container often "hoists" common attributes from its children. For example, if all tracks in a container share the same album title, the parentTitle attribute may appear on the MediaContainer rather than being repeated on each track.