diff --git a/plex-api-spec.yaml b/plex-api-spec.yaml index 4a42ed85..7d9a140a 100644 --- a/plex-api-spec.yaml +++ b/plex-api-spec.yaml @@ -15,7 +15,7 @@ servers: description: A `-` separated string of the IPv4 or IPv6 address components default: 1-2-3-4 port: - description: The Port number configured on the PMS. Typically (`32400`). + description: The Port number configured on the PMS. Typically (`32400`). default: '32400' - url: "{protocol}://{host}:{port}" variables: @@ -23,16 +23,10 @@ servers: description: The network protocol to use. Typically (`http` or `https`) default: http host: - description: | - The Host of the PMS. - If using on a local network, this is the internal IP address of the server hosting the PMS. - If using on an external network, this is the external IP address for your network, and requires port forwarding. - If using a reverse proxy, this would be the external DNS domain for your network, and requires the proxy handle port forwarding. + description: "The Host of the PMS.\nIf using on a local network, this is the internal IP address of the server hosting the PMS.\nIf using on an external network, this is the external IP address for your network, and requires port forwarding.\nIf using a reverse proxy, this would be the external DNS domain for your network, and requires the proxy handle port forwarding. \n" default: localhost port: - description: | - The Port number configured on the PMS. Typically (`32400`). - If using a reverse proxy, this would be the port number configured on the proxy. + description: "The Port number configured on the PMS. Typically (`32400`). \nIf using a reverse proxy, this would be the port number configured on the proxy.\n" default: '32400' - url: "{server_url}" variables: @@ -136,13 +130,7 @@ tags: - name: Log description: Logging mechanism to allow clients to log to the server - name: Play Queue - description: |- - The playqueue feature within a media provider - A play queue represents the current list of media for playback. Although queues are persisted by the server, they should be regarded by the user as a fairly lightweight, an ephemeral list of items queued up for playback in a session. There is generally one active queue for each type of media (music, video, photos) that can be added to or destroyed and replaced with a fresh queue. - Play Queues has a region, which we refer to in this doc (partially for historical reasons) as "Up Next". This region is defined by `playQueueLastAddedItemID` existing on the media container. This follows iTunes' terminology. It is a special region after the currently playing item but before the originally-played items. This enables "Party Mode" listening/viewing, where items can be added on-the-fly, and normal queue playback resumed when completed. - You can visualize the play queue as a sliding window in the complete list of media queued for playback. This model is important when scaling to larger play queues (e.g. shuffling 40,000 audio tracks). The client only needs visibility into small areas of the queue at any given time, and the server can optimize access in this fashion. - All created play queues will have an empty "Up Next" area - unless the item is an album and no `key` is provided. In this case the "Up Next" area will be populated by the contents of the album. This is to allow queueing of multiple albums - since the 'Add to Up Next' will insert after all the tracks. This means that If you're creating a PQ from an album, you can only shuffle it if you set `key`. This is due to the above implicit queueing of albums when no `key` is provided as well as the current limitation that you cannot shuffle a PQ with an "Up Next" area. - The play queue window advances as the server receives timeline requests. The client needs to retrieve the play queue as the “now playing” item changes. There is no play queue API to update the playing item. + description: "The playqueue feature within a media provider\nA play queue represents the current list of media for playback. Although queues are persisted by the server, they should be regarded by the user as a fairly lightweight, an ephemeral list of items queued up for playback in a session. There is generally one active queue for each type of media (music, video, photos) that can be added to or destroyed and replaced with a fresh queue.\nPlay Queues has a region, which we refer to in this doc (partially for historical reasons) as \"Up Next\". This region is defined by `playQueueLastAddedItemID` existing on the media container. This follows iTunes' terminology. It is a special region after the currently playing item but before the originally-played items. This enables \"Party Mode\" listening/viewing, where items can be added on-the-fly, and normal queue playback resumed when completed. \nYou can visualize the play queue as a sliding window in the complete list of media queued for playback. This model is important when scaling to larger play queues (e.g. shuffling 40,000 audio tracks). The client only needs visibility into small areas of the queue at any given time, and the server can optimize access in this fashion.\nAll created play queues will have an empty \"Up Next\" area - unless the item is an album and no `key` is provided. In this case the \"Up Next\" area will be populated by the contents of the album. This is to allow queueing of multiple albums - since the 'Add to Up Next' will insert after all the tracks. This means that If you're creating a PQ from an album, you can only shuffle it if you set `key`. This is due to the above implicit queueing of albums when no `key` is provided as well as the current limitation that you cannot shuffle a PQ with an \"Up Next\" area.\nThe play queue window advances as the server receives timeline requests. The client needs to retrieve the play queue as the “now playing” item changes. There is no play queue API to update the playing item." - name: Playlist description: Media playlists that can be created and played back - name: Preferences @@ -212,7 +200,7 @@ paths: /: get: summary: Get PMS info - operationId: getSlash + operationId: getInfo description: Information about this PMS setup and configuration tags: - General @@ -237,7 +225,7 @@ paths: /:/eventsource/notifications: get: summary: Connect to Eventsource - operationId: eventsourceGetSlash + operationId: getNotifications description: Connect to the event source to get a stream of events tags: - Events @@ -276,7 +264,7 @@ paths: /:/prefs: get: summary: Get all preferences - operationId: preferencesGetSlash + operationId: getAll description: Get the list of all preferences tags: - Preferences @@ -289,7 +277,7 @@ paths: $ref: '#/components/schemas/MediaContainerWithSettings' put: summary: Set preferences - operationId: preferencesPutSlash + operationId: set description: Set a set of preferences in query parameters tags: - Preferences @@ -327,7 +315,7 @@ paths: /:/prefs/get: get: summary: Get a preferences - operationId: preferencesGetGet + operationId: get description: Get a single preference and value tags: - Preferences @@ -361,7 +349,7 @@ paths: /:/rate: put: summary: Rate an item - operationId: putRate + operationId: setRating description: |- Set the rating on an item. This API does respond to the GET verb but applications should use PUT @@ -418,7 +406,7 @@ paths: /:/scrobble: put: summary: Mark an item as played - operationId: putScrobble + operationId: markPlayed description: |- Mark an item as played. Note, this does not create any view history of this item but rather just sets the state as played. The client must provide either the `key` or `uri` query parameter This API does respond to the GET verb but applications should use PUT @@ -467,7 +455,7 @@ paths: /:/timeline: post: summary: Report media timeline - operationId: timelinePostSlash + operationId: report description: | This endpoint is hit during media playback for an item. It must be hit whenever the play state changes, or in the absence of a play state change, in a regular fashion (generally this means every 10 seconds on a LAN/WAN, and every 20 seconds over cellular). tags: @@ -528,10 +516,7 @@ paths: description: When state is `stopped`, a flag indicating whether or not the client is going to continue playing anothe item. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: updated description: Used when a sync client comes online and is syncing media timelines, holds the time at which the playback state was last updated. @@ -543,10 +528,7 @@ paths: description: Also used by sync clients, used to indicate that a timeline is being synced from being offline, as opposed to being "live". in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: timeToFirstFrame description: Time in seconds till first frame is displayed. Sent only on the first playing timeline request. @@ -631,7 +613,7 @@ paths: /:/unscrobble: put: summary: Mark an item as unplayed - operationId: putUnscrobble + operationId: unscrobble description: |- Mark an item as unplayed. The client must provide either the `key` or `uri` query parameter This API does respond to the GET verb but applications should use PUT @@ -680,7 +662,7 @@ paths: /:/websocket/notifications: get: summary: Connect to WebSocket - operationId: websocketGetSlash + operationId: connectWebSocket description: Connect to the web socket to get a stream of events tags: - Events @@ -719,7 +701,7 @@ paths: /activities: get: summary: Get all activities - operationId: activitiesGetSlash + operationId: list description: List all activities on the server. Admins can see all activities but other users can only see their own tags: - Activities @@ -774,7 +756,7 @@ paths: /butler: delete: summary: Stop all Butler tasks - operationId: butlerDeleteSlash + operationId: stopTasks description: This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue. tags: - Butler @@ -786,7 +768,7 @@ paths: $ref: '#/components/responses/200' get: summary: Get all Butler tasks - operationId: butlerGetSlash + operationId: getTasks description: | Get the list of butler tasks and their scheduling tags: @@ -830,7 +812,7 @@ paths: type: object post: summary: Start all Butler tasks - operationId: butlerPostSlash + operationId: post description: | This endpoint will attempt to start all Butler tasks that are enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria: @@ -849,7 +831,7 @@ paths: /downloadQueue: post: summary: Create download queue - operationId: downloadQueuePost + operationId: create description: | Available: 0.2.0 @@ -895,7 +877,7 @@ paths: /hubs: get: summary: Get global hubs - operationId: hubsGetSlash + operationId: getAll description: Get the global hubs in this PMS tags: - Hubs @@ -915,10 +897,7 @@ paths: description: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added) in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: identifier description: If provided, limit to only specified hubs in: query @@ -951,7 +930,7 @@ paths: /hubs/continueWatching: get: summary: Get the continue watching hub - operationId: hubsGetContinueWatching + operationId: getContinueWatching description: Get the global continue watching hub tags: - Hubs @@ -992,7 +971,7 @@ paths: /hubs/items: get: summary: Get a hub's items - operationId: hubsGetItems + operationId: getItems description: Get the items within a single hub specified by identifier tags: - Hubs @@ -1038,7 +1017,7 @@ paths: /hubs/promoted: get: summary: Get the hubs which are promoted - operationId: hubsGetPromoted + operationId: getPromoted description: Get the global hubs which are promoted (should be displayed on the home screen) tags: - Hubs @@ -1079,7 +1058,7 @@ paths: /hubs/search: get: summary: Search Hub - operationId: hubsGetSearch + operationId: hubs description: | Perform a search and get the result as hubs @@ -1158,7 +1137,7 @@ paths: /hubs/search/voice: get: summary: Voice Search Hub - operationId: hubsSearchGetVoice + operationId: getVoice description: | Perform a search tailored to voice input and get the result as hubs @@ -1250,7 +1229,7 @@ paths: /library/all: get: summary: Get all items in library - operationId: libraryGetAll + operationId: getAllItems description: Request all metadata items according to a query. tags: - Library @@ -1285,7 +1264,7 @@ paths: /library/caches: delete: summary: Delete library caches - operationId: libraryDeleteCaches + operationId: deleteCaches description: Delete the hub caches so they are recomputed on next request tags: - Library @@ -1298,7 +1277,7 @@ paths: /library/clean/bundles: put: summary: Clean bundles - operationId: libraryPutCleanBundles + operationId: cleanBundles description: Clean out any now unused bundles. Bundles can become unused when media is deleted tags: - Library @@ -1311,7 +1290,7 @@ paths: /library/collections: post: summary: Create collection - operationId: libraryCollectionPostSlash + operationId: create description: Create a collection in the library tags: - Collections @@ -1354,7 +1333,7 @@ paths: /library/file: post: summary: Ingest a transient item - operationId: libraryPostFile + operationId: postFile description: |- This endpoint takes a file path specified in the `url` parameter, matches it using the scanner's match mechanism, downloads rich metadata, and then ingests the item as a transient item (without a library section). In the case where the file represents an episode, the entire tree (show, season, and episode) is added as transient items. At this time, movies and episodes are the only supported types, which are gleaned automatically from the file path. Note that any of the parameters passed to the metadata details endpoint (e.g. `includeExtras=1`) work here. @@ -1388,19 +1367,13 @@ paths: description: Whether or not to compute Plex and OpenSubtitle hashes for the file. Defaults to 0. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: ingestNonMatches description: Whether or not non matching media should be stored. Defaults to 0. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 responses: '200': @@ -1421,7 +1394,7 @@ paths: /library/matches: get: summary: Get library matches - operationId: libraryGetMatches + operationId: getMatches description: |- The matches endpoint is used to match content external to the library with content inside the library. This is done by passing a series of semantic "hints" about the content (its type, name, or release year). Each type (e.g. movie) has a canonical set of minimal required hints. This ability to match content is useful in a variety of scenarios. For example, in the DVR, the EPG uses the endpoint to match recording rules against airing content. And in the cloud, the UMP uses the endpoint to match up a piece of media with rich metadata. @@ -1446,26 +1419,17 @@ paths: in: query schema: description: Whether or not to include full metadata on a positive match. When set, and the best match exceeds a score threshold of 85, metadata as rich as possible is sent back. - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: includeAncestorMetadata in: query schema: description: Whether or not to include metadata for the item's ancestor (e.g. show and season data for an episode). - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: includeAlternateMetadataSources in: query schema: description: Whether or not to return all sources for each metadata field, which results in a different structure being passed back. - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: guid description: Used for movies, shows, artists, albums, and tracks. Allowed for various URI schemes, to be defined. in: query @@ -1531,7 +1495,7 @@ paths: /library/optimize: put: summary: Optimize the Database - operationId: libraryPutOptimize + operationId: optimize description: Initiate optimize on the database. tags: - Library @@ -1553,17 +1517,14 @@ paths: description: If set, don't wait for completion but return an activity in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' /library/randomArtwork: get: summary: Get random artwork - operationId: libraryGetRandomArtwork + operationId: getRandomArtwork description: | Get random artwork across sections. This is commonly used for a screensaver. @@ -1602,7 +1563,7 @@ paths: /library/sections/all: get: summary: Get library sections (main Media Provider Only) - operationId: libraryGetSections + operationId: getSections description: |- A library section (commonly referred to as just a library) is a collection of media. Libraries are typed, and depending on their type provide either a flat or a hierarchical view of the media. For example, a music library has an artist > albums > tracks structure, whereas a movie library is flat. Libraries have features beyond just being a collection of media; for starters, they include information about supported types, filters and sorts. This allows a client to provide a rich interface around the media (e.g. allow sorting movies by release year). @@ -1637,7 +1598,7 @@ paths: type: object post: summary: Add a library section - operationId: libraryPostSection + operationId: addSection description: Add a new library section to the server tags: - Library @@ -1712,18 +1673,12 @@ paths: description: If set, paths are relative to `Media Upload` path in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: importFromiTunes description: If set, import media from iTunes. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/slash-get-responses-200' @@ -1734,7 +1689,7 @@ paths: /library/sections/all/refresh: delete: summary: Stop refresh - operationId: libraryDeleteSectionsAllRefresh + operationId: stopAllRefreshes description: Stop all refreshes across all sections tags: - Library @@ -1747,7 +1702,7 @@ paths: /library/sections/prefs: get: summary: Get section prefs - operationId: libraryGetSectionsPrefs + operationId: getSectionsPrefs description: Get a section's preferences for a metadata type tags: - Library @@ -1786,7 +1741,7 @@ paths: /library/sections/refresh: post: summary: Refresh all sections - operationId: libraryPostSectionsRefresh + operationId: refreshSections description: Tell PMS to refresh all section metadata tags: - Library @@ -1819,7 +1774,7 @@ paths: /library/tags: get: summary: Get all library tags of a type - operationId: libraryGetTags + operationId: getTags description: Get all library tags of a type tags: - Library @@ -1873,7 +1828,7 @@ paths: /livetv/dvrs: get: summary: Get DVRs - operationId: livetvDvrGetSlash + operationId: list description: Get the list of all available DVRs tags: - DVRs @@ -1918,7 +1873,7 @@ paths: type: object post: summary: Create a DVR - operationId: livetvDvrPostSlash + operationId: create description: Creation of a DVR, after creation of a devcie and a lineup is selected tags: - DVRs @@ -1962,7 +1917,7 @@ paths: /livetv/epg/channelmap: get: summary: Compute the best channel map - operationId: livetvEpgGetChannelmap + operationId: computeChannelMap description: Compute the best channel map, given device and lineup tags: - EPG @@ -2037,7 +1992,7 @@ paths: /livetv/epg/channels: get: summary: Get channels for a lineup - operationId: livetvEpgGetChannels + operationId: getChannels description: Get channels for a lineup within an EPG provider tags: - EPG @@ -2091,7 +2046,7 @@ paths: /livetv/epg/countries: get: summary: Get all countries - operationId: livetvEpgGetCountries + operationId: getCountries description: This endpoint returns a list of countries which EPG data is available for. There are three flavors, as specfied by the `flavor` attribute tags: - EPG @@ -2152,7 +2107,7 @@ paths: /livetv/epg/languages: get: summary: Get all languages - operationId: livetvEpgGetLanguages + operationId: getAllLanguages description: Returns a list of all possible languages for EPG data. tags: - EPG @@ -2191,7 +2146,7 @@ paths: /livetv/epg/lineup: get: summary: Compute the best lineup - operationId: livetvEpgGetLineup + operationId: getLineup description: Compute the best lineup, given lineup group and device tags: - EPG @@ -2237,7 +2192,7 @@ paths: /livetv/epg/lineupchannels: get: summary: Get the channels for mulitple lineups - operationId: livetvEpgGetLineupchannels + operationId: getLineupChannels description: Get the channels across multiple lineups tags: - EPG @@ -2291,7 +2246,7 @@ paths: /livetv/sessions: get: summary: Get all sessions - operationId: livetvSessionsGetSlash + operationId: getSessions description: Get all livetv sessions and metadata tags: - Live TV @@ -2314,7 +2269,7 @@ paths: /log: post: summary: Logging a multi-line message to the Plex Media Server log - operationId: logPostSlash + operationId: write description: | This endpoint will write multiple lines to the main Plex Media Server log in a single request. It takes a set of query strings as would normally sent to the above PUT endpoint as a linefeed-separated block of POST data. The parameters for each query string match as above. tags: @@ -2323,6 +2278,7 @@ paths: - api_key: - admin requestBody: + required: true description: Line separated list of log items content: text/plain: {} @@ -2333,7 +2289,7 @@ paths: $ref: '#/components/responses/400' put: summary: Logging a single-line message to the Plex Media Server log - operationId: logPutSlash + operationId: writeMessage description: | This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log. @@ -2387,7 +2343,7 @@ paths: /log/networked: post: summary: Enabling Papertrail - operationId: logPostPapertrail + operationId: postNetworked description: | This endpoint will enable all Plex Media Serverlogs to be sent to the Papertrail networked logging site for a period of time @@ -2423,7 +2379,7 @@ paths: /media/grabbers: get: summary: Get available grabbers - operationId: mediaGrabberGetSlash + operationId: getGrabbers description: Get available grabbers visible to the server tags: - Devices @@ -2480,7 +2436,7 @@ paths: /media/grabbers/devices: get: summary: Get all devices - operationId: mediaGrabberGetDevices + operationId: getAll description: Get the list of all devices present tags: - Devices @@ -2505,7 +2461,7 @@ paths: $ref: '#/components/schemas/MediaContainerWithDevice' post: summary: Add a device - operationId: mediaGrabberPostDevices + operationId: add description: This endpoint adds a device to an existing grabber. The device is identified, and added to the correct grabber. tags: - Devices @@ -2541,7 +2497,7 @@ paths: /media/grabbers/devices/discover: post: summary: Tell grabbers to discover devices - operationId: mediaGrabberPostDeviceDiscover + operationId: discover description: Tell grabbers to discover devices tags: - Devices @@ -2558,7 +2514,7 @@ paths: /media/providers: get: summary: Get the list of available media providers - operationId: getMediaProviders + operationId: getProviders description: Get the list of all available media providers for this PMS. This will generally include the library provider and possibly EPG if DVR is set up. tags: - Provider @@ -2604,7 +2560,7 @@ paths: type: object post: summary: Add a media provider - operationId: postMediaProviders + operationId: add description: This endpoint registers a media provider with the server. Once registered, the media server acts as a reverse proxy to the provider, allowing both local and remote providers to work. tags: - Provider @@ -2633,7 +2589,7 @@ paths: /media/providers/refresh: post: summary: Refresh media providers - operationId: postMediaProvidersRefresh + operationId: refresh description: Refresh all known media providers. This is useful in case a provider has updated features. tags: - Provider @@ -2643,7 +2599,7 @@ paths: /media/subscriptions: get: summary: Get all subscriptions - operationId: mediaSubscriptionsGetSlash + operationId: getAll description: Get all subscriptions and potentially the grabs too tags: - Subscriptions @@ -2662,18 +2618,12 @@ paths: description: Indicates whether the active grabs should be included as well in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: includeStorage description: Compute the storage of recorded items desired by this subscription in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: OK @@ -2696,7 +2646,7 @@ paths: text/html: {} post: summary: Create a subscription - operationId: mediaSubscriptionsPostSlash + operationId: create description: Create a subscription. The query parameters should be mostly derived from the [template](#tag/Subscriptions/operation/mediaSubscriptionsGetTemplate) tags: - Subscriptions @@ -2795,7 +2745,7 @@ paths: /media/subscriptions/process: post: summary: Process all subscriptions - operationId: mediaSubscriptionsPostProcess + operationId: process description: Process all subscriptions asynchronously tags: - Subscriptions @@ -2816,7 +2766,7 @@ paths: /media/subscriptions/scheduled: get: summary: Get all scheduled recordings - operationId: mediaSubscriptionsGetScheduled + operationId: getScheduled description: Get all scheduled recordings across all subscriptions tags: - Subscriptions @@ -2853,7 +2803,7 @@ paths: /media/subscriptions/template: get: summary: Get the subscription template - operationId: mediaSubscriptionsGetTemplate + operationId: getTemplate description: Get the templates for a piece of media which could include fetching one airing, season, the whole show, etc. tags: - Subscriptions @@ -2936,7 +2886,7 @@ paths: /photo/:/transcode: get: summary: Transcode an image - operationId: imageTranscode + operationId: transcode description: Transcode an image, possibly changing format or size tags: - Transcoder @@ -2998,28 +2948,19 @@ paths: in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: minSize description: Indicates if image should be scaled to fit the smaller dimension. By default (false) the image is scaled to fit within the width/height specified but if this parameter is true, it will allow overflowing one dimension to fit the other. Essentially it is making the width/height minimum sizes of the image or sizing the image to fill the entire width/height even if it overflows one dimension. in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: rotate description: Obey the rotation values specified in EXIF data. Defaults to true. in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: blur description: Apply a blur to the image, Defaults to 0 (none) in: query @@ -3091,7 +3032,7 @@ paths: /playlists: get: summary: List playlists - operationId: playlistGetSlash + operationId: list description: Gets a list of playlists and playlist folders for a user. General filters are permitted, such as `sort=lastViewedAt:desc`. A flat playlist list can be retrieved using `type=15` to limit the collection to just playlists. tags: - Playlist @@ -3134,7 +3075,7 @@ paths: $ref: '#/components/schemas/MediaContainerWithPlaylistMetadata' post: summary: Create a Playlist - operationId: playlistPostSlash + operationId: create description: Create a new playlist. By default the playlist is blank. tags: - Library Playlists @@ -3171,7 +3112,7 @@ paths: /playlists/upload: post: summary: Upload - operationId: playlistPostUpload + operationId: upload description: Imports m3u playlists by passing a path on the server to scan for m3u-formatted playlist files, or a path to a single playlist file. tags: - Library Playlists @@ -3199,10 +3140,7 @@ paths: description: Force overwriting of duplicate playlists. By default, a playlist file uploaded with the same path will overwrite the existing playlist. The `force` argument is used to disable overwriting. If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' @@ -3215,7 +3153,7 @@ paths: /playQueues: post: summary: Create a play queue - operationId: playQueuePostSlash + operationId: create description: |- Makes a new play queue for a device. The source of the playqueue can either be a URI, or a playlist. The response is a media container with the initial items in the queue. Each item in the queue will be a regular item but with `playQueueItemID` - a unique ID since the queue could have repeated items with the same `ratingKey`. Note: Either `uri` or `playlistID` must be specified @@ -3261,26 +3199,17 @@ paths: description: Whether to shuffle the playlist, defaults to 0. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: repeat description: If the PQ is bigger than the window, fill any empty space with wraparound items, defaults to 0. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: continuous description: Whether to create a continuous play queue (e.g. from an episode), defaults to 0. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: extrasPrefixCount description: Number of trailers to prepend a movie with not including the pre-roll. If omitted the pre-roll will not be returned in the play queue. When resuming a movie `extrasPrefixCount` should be omitted as a parameter instead of passing 0. in: query @@ -3290,18 +3219,12 @@ paths: description: Only applies to queues of type photo, whether to retrieve all descendent photos from an album or section, defaults to 1. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: onDeck description: Only applies to queues of type show or seasons, whether to return a queue that is started on the On Deck episode if one exists. Otherwise begins the play queue on the beginning of the show or season. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: OK @@ -3356,7 +3279,7 @@ paths: /security/resources: get: summary: Get Source Connection Information - operationId: securityGetResources + operationId: getResources description: 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. tags: - General @@ -3381,10 +3304,7 @@ paths: description: Force refresh in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: OK @@ -3437,7 +3357,7 @@ paths: /security/token: post: summary: Get Transient Tokens - operationId: securityPostToken + operationId: createToken description: |- This endpoint provides the caller with a temporary token with the same access level as the caller's token. These tokens are valid for up to 48 hours and are destroyed if the server instance is restarted. Note: This endpoint responds to all HTTP verbs but POST in preferred @@ -3497,7 +3417,7 @@ paths: /services/ultrablur/colors: get: summary: Get UltraBlur Colors - operationId: ultraBlurGetColors + operationId: getColors description: Retrieves the four colors extracted from an image for clients to use to generate an ultrablur image. tags: - UltraBlur @@ -3559,7 +3479,7 @@ paths: /services/ultrablur/image: get: summary: Get UltraBlur Image - operationId: ultraBlurGetImage + operationId: getImage description: Retrieves a server-side generated UltraBlur image based on the provided color inputs. Clients should always call this via the photo transcoder endpoint. tags: - UltraBlur @@ -3618,10 +3538,7 @@ paths: description: Whether to add noise to the ouput image. Noise can reduce color banding with the gradients. Image sizes with noise will be larger. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 responses: '200': @@ -3638,7 +3555,7 @@ paths: /status/sessions: get: summary: List Sessions - operationId: statusGetSlash + operationId: listSessions description: List all current playbacks on this server tags: - Status @@ -3683,7 +3600,7 @@ paths: /status/sessions/background: get: summary: Get background tasks - operationId: statusGetBackground + operationId: getBackgroundTasks description: Get the list of all background tasks tags: - Status @@ -3741,7 +3658,7 @@ paths: /status/sessions/history/all: get: summary: List Playback History - operationId: statusGetHistoryAll + operationId: listPlaybackHistory description: |- List all playback history (Admin can see all users, others can only see their own). Pagination should be used on this endpoint. Additionally this endpoint supports `includeFields`, `excludeFields`, `includeElements`, and `excludeElements` parameters. @@ -3849,7 +3766,7 @@ paths: /status/sessions/terminate: post: summary: Terminate a session - operationId: statusPostTerminate + operationId: terminateSession description: Terminate a playback session kicking off the user tags: - Status @@ -3898,7 +3815,7 @@ paths: /updater/apply: put: summary: Applying updates - operationId: updaterPutApply + operationId: apply description: Apply any downloaded updates. Note that the two parameters `tonight` and `skip` are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed. tags: - Updater @@ -3920,18 +3837,12 @@ paths: description: Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install immediately. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: skip description: Indicate that the latest version should be marked as skipped. The entry for this version will have the `state` set to `skipped`. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: The update process started correctly @@ -3948,7 +3859,7 @@ paths: /updater/check: put: summary: Checking for updates - operationId: updaterPutCheck + operationId: check description: Perform an update check and potentially download tags: - Updater @@ -3970,17 +3881,14 @@ paths: description: Indicate that you want to start download any updates found. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' /updater/status: get: summary: Querying status of updates - operationId: updaterGetStatus + operationId: getStatus description: Get the status of updating the server tags: - Updater @@ -4061,7 +3969,7 @@ paths: /{transcodeType}/:/transcode/universal/decision: get: summary: Make a decision on media playback - operationId: transcodeDecision + operationId: makeDecision description: Make a decision on media playback based on client profile, and requested settings such as bandwidth and resolution. tags: - Transcoder @@ -4078,17 +3986,7 @@ paths: - $ref: "#/components/parameters/X-Plex-Marketplace" - $ref: '#/components/parameters/transcodeType' - $ref: '#/components/parameters/transcodeSessionId' - - name: advancedSubtitles - description: | - 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 - in: query - schema: - type: string - enum: - - burn - - text - - unknown - example: burn + - $ref: '#/components/parameters/advancedSubtitles' - name: audioBoost description: Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) in: query @@ -4108,64 +4006,43 @@ paths: description: Indicates the client supports ABR. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: autoAdjustSubtitle description: Indicates if the server should adjust subtitles based on Voice Activity Data. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: directPlay description: Indicates the client supports direct playing the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: directStream description: Indicates the client supports direct streaming the video of the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: directStreamAudio description: Indicates the client supports direct streaming the audio of the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: disableResolutionRotation description: Indicates if resolution should be adjusted for orientation. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: hasMDE description: 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 in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: location description: Network type of the client, can be used to help determine target bitrate. @@ -4346,7 +4223,7 @@ paths: /{transcodeType}/:/transcode/universal/fallback: post: summary: Manually trigger a transcoder fallback - operationId: transcodeFallback + operationId: triggerFallback description: 'Manually trigger a transcoder fallback ex: HEVC to h.264 or hw to sw' tags: - Transcoder @@ -4381,7 +4258,7 @@ paths: /{transcodeType}/:/transcode/universal/subtitles: get: summary: Transcode subtitles - operationId: transcodeSubtitles + operationId: getSubtitles description: Only transcode subtitle streams. tags: - Transcoder @@ -4398,17 +4275,7 @@ paths: - $ref: "#/components/parameters/X-Plex-Marketplace" - $ref: '#/components/parameters/transcodeType' - $ref: '#/components/parameters/transcodeSessionId' - - name: advancedSubtitles - description: | - 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 - in: query - schema: - type: string - enum: - - burn - - text - - unknown - example: burn + - $ref: '#/components/parameters/advancedSubtitles' - name: audioBoost description: Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) in: query @@ -4428,64 +4295,43 @@ paths: description: Indicates the client supports ABR. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: autoAdjustSubtitle description: Indicates if the server should adjust subtitles based on Voice Activity Data. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: directPlay description: Indicates the client supports direct playing the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: directStream description: Indicates the client supports direct streaming the video of the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: directStreamAudio description: Indicates the client supports direct streaming the audio of the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: disableResolutionRotation description: Indicates if resolution should be adjusted for orientation. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: hasMDE description: 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 in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: location description: Network type of the client, can be used to help determine target bitrate. @@ -4661,56 +4507,7 @@ paths: description: Transcoded subtitle file content: text/srt: - example: | - 1 - 00:00:02,499 --> 00:00:06,416 - [SERENE MUSIC] - - 2 - 00:00:11,791 --> 00:00:13,958 - [BROOK BABBLES] - [FLY BUZZES] - - 3 - 00:00:16,166 --> 00:00:17,666 - [BIRD TWEETS] - - 4 - 00:00:17,666 --> 00:00:18,708 - [WINGS FLAP] - - 5 - 00:00:19,833 --> 00:00:20,374 - [BIRD TWEETS] - [WINGS FLAP] - - 6 - 00:00:20,374 --> 00:00:21,041 - [THUD] - - 7 - 00:00:21,374 --> 00:00:22,249 - [THUD] - - 8 - 00:00:22,249 --> 00:00:23,083 - [SQUIRREL LAUGHS] - - 9 - 00:00:26,249 --> 00:00:27,541 - [SNORES] - - 10 - 00:00:29,416 --> 00:00:30,708 - [SNORES] - - 11 - 00:00:32,749 --> 00:00:34,041 - [BUNNY SNORES] - - 12 - 00:00:35,916 --> 00:00:37,249 - [BUNNY SNORES] + example: "1\n00:00:02,499 --> 00:00:06,416\n[SERENE MUSIC]\n\n2\n00:00:11,791 --> 00:00:13,958\n[BROOK BABBLES] \n[FLY BUZZES]\n\n3\n00:00:16,166 --> 00:00:17,666\n[BIRD TWEETS]\n\n4\n00:00:17,666 --> 00:00:18,708\n[WINGS FLAP]\n\n5\n00:00:19,833 --> 00:00:20,374\n[BIRD TWEETS] \n[WINGS FLAP]\n\n6\n00:00:20,374 --> 00:00:21,041\n[THUD]\n\n7\n00:00:21,374 --> 00:00:22,249\n[THUD]\n\n8\n00:00:22,249 --> 00:00:23,083\n[SQUIRREL LAUGHS]\n\n9\n00:00:26,249 --> 00:00:27,541\n[SNORES]\n\n10\n00:00:29,416 --> 00:00:30,708\n[SNORES]\n\n11\n00:00:32,749 --> 00:00:34,041\n[BUNNY SNORES]\n\n12\n00:00:35,916 --> 00:00:37,249\n[BUNNY SNORES]\n" '400': $ref: '#/components/responses/400' '403': @@ -4720,7 +4517,7 @@ paths: /activities/{activityId}: delete: summary: Cancel a running activity - operationId: activitiesDeleteActivity + operationId: delete description: Cancel a running activity. Admins can cancel all activities but other users can only cancel their own tags: - Activities @@ -4759,7 +4556,7 @@ paths: /butler/{task}: delete: summary: Stop a single Butler task - operationId: butlerDeleteTask + operationId: deleteTask description: | This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists tags: @@ -4816,7 +4613,7 @@ paths: text/html: {} post: summary: Start a single Butler task - operationId: butlerPostTask + operationId: startTask description: | This endpoint will attempt to start a specific Butler task by name. tags: @@ -4880,7 +4677,7 @@ paths: /downloadQueue/{queueId}: get: summary: Get a download queue - operationId: downloadQueueGetQueue + operationId: get description: | Available: 0.2.0 @@ -4943,7 +4740,7 @@ paths: /downloadQueue/{queueId}/add: post: summary: Add to download queue - operationId: downloadQueuePostQueueAdd + operationId: add description: | Available: 0.2.0 @@ -5031,7 +4828,7 @@ paths: /downloadQueue/{queueId}/items: get: summary: Get download queue items - operationId: downloadQueueGetQueueItems + operationId: getItems description: | Available: 0.2.0 @@ -5130,7 +4927,7 @@ paths: /hubs/metadata/{metadataId}: get: summary: Get hubs for section by metadata item - operationId: hubsGetMetadataMetadata + operationId: getMetadata description: Get the hubs for a section by metadata item. Currently only for music sections tags: - Hubs @@ -5156,10 +4953,7 @@ paths: description: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added) in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/responses-200' @@ -5170,7 +4964,7 @@ paths: /hubs/metadata/{metadataId}/postplay: get: summary: Get postplay hubs - operationId: hubsGetMetadataMetadataPostplay + operationId: getPostplay description: Get the hubs for a metadata to be displayed in post play tags: - Hubs @@ -5196,10 +4990,7 @@ paths: description: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added) in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/responses-200' @@ -5210,7 +5001,7 @@ paths: /hubs/metadata/{metadataId}/related: get: summary: Get related hubs - operationId: hubsGetMetadataMetadataRelated + operationId: getRelated description: Get the hubs for a metadata related to the provided metadata item tags: - Hubs @@ -5236,10 +5027,7 @@ paths: description: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added) in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/responses-200' @@ -5250,7 +5038,7 @@ paths: /hubs/sections/{sectionId}: get: summary: Get section hubs - operationId: hubsGetSection + operationId: getSection description: Get the hubs for a single section tags: - Hubs @@ -5276,10 +5064,7 @@ paths: description: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added) in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: OK @@ -5313,7 +5098,7 @@ paths: /hubs/sections/{sectionId}/manage: delete: summary: Reset hubs to defaults - operationId: hubsSectionsSectionManageDeleteSlash + operationId: resetSectionDefaults description: Reset hubs for this section to defaults and delete custom hubs tags: - Hubs @@ -5348,7 +5133,7 @@ paths: text/html: {} get: summary: Get hubs - operationId: hubsSectionsSectionManageGetSlash + operationId: manageSections description: Get the list of hubs including both built-in and custom tags: - Hubs @@ -5453,7 +5238,7 @@ paths: text/html: {} post: summary: Create a custom hub - operationId: hubsSectionsSectionManagePostSlash + operationId: createCustomHub description: Create a custom hub based on a metadata item tags: - Hubs @@ -5487,26 +5272,17 @@ paths: description: Whether this hub should be displayed in recommended in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: promotedToOwnHome description: Whether this hub should be displayed in admin's home in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: promotedToSharedHome description: Whether this hub should be displayed in shared user's home in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' @@ -5523,7 +5299,7 @@ paths: /hubs/sections/{sectionId}/manage/move: put: summary: Move Hub - operationId: hubsSectionsSectionManagePutMove + operationId: move description: Changed the ordering of a hub among others hubs tags: - Hubs @@ -5570,7 +5346,7 @@ paths: /library/collections/{collectionId}/items: get: summary: Get items in a collection - operationId: libraryCollectionCollectionGetItems + operationId: getCollectionItems description: Get items in a collection. Note if this collection contains more than 100 items, paging must be used. tags: - Content @@ -5604,7 +5380,7 @@ paths: text/html: {} put: summary: Add items to a collection - operationId: libraryCollectionCollectionPutItems + operationId: addItems description: Add items to a collection by uri tags: - Library Collections @@ -5648,7 +5424,7 @@ paths: /library/metadata/{ids}: delete: summary: Delete a metadata item - operationId: libraryMetadataDeleteSlash + operationId: delete description: Delete a single metadata item from the library, deleting media as well tags: - Library @@ -5675,10 +5451,7 @@ paths: description: Whether proxy items, such as media optimized versions, should also be deleted. Defaults to false. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' @@ -5688,7 +5461,7 @@ paths: text/html: {} get: summary: Get a metadata item - operationId: libraryMetadataGetSlash + operationId: getMetadata description: Get one or more metadata items. tags: - Content @@ -5714,66 +5487,42 @@ paths: description: Determines if file check should be performed asynchronously. An activity is created to indicate progress. Default is false. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: asyncRefreshLocalMediaAgent description: Determines if local media agent refresh should be performed asynchronously. An activity is created to indicate progress. Default is false. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: asyncRefreshAnalysis description: Determines if analysis refresh should be performed asynchronously. An activity is created to indicate progress. Default is false. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: checkFiles description: Determines if file check should be performed synchronously. Specifying `asyncCheckFiles` will cause this option to be ignored. Default is false. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: skipRefresh description: Determines if synchronous local media agent and analysis refresh should be skipped. Specifying async versions will cause synchronous versions to be skipped. Default is false. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: checkFileAvailability description: Determines if file existence check should be performed synchronously. Specifying `checkFiles` will imply this option. Default is false. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: asyncAugmentMetadata description: Add metadata augmentations. An activity is created to indicate progress. Option will be ignored if specified by non-admin or if multiple metadata items are requested. Default is false. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: augmentCount description: Number of augmentations to add. Requires `asyncAugmentMetadata` to be specified. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: OK @@ -5792,7 +5541,7 @@ paths: $ref: '#/components/schemas/MediaContainerWithMetadata' put: summary: Edit a metadata item - operationId: libraryMetadataPutSlash + operationId: editMetadata description: Edit metadata items setting fields tags: - Library @@ -5832,7 +5581,7 @@ paths: /library/metadata/{ids}/addetect: put: summary: Ad-detect an item - operationId: libraryMetadataPutAddetect + operationId: detectAds description: Start the detection of ads in a metadata item tags: - Library @@ -5861,7 +5610,7 @@ paths: /library/metadata/{ids}/allLeaves: get: summary: Get the leaves of an item - operationId: libraryMetadataGetAllLeaves + operationId: getAllLeaves description: Get the leaves for a metadata item such as the episodes in a show tags: - Library @@ -5900,7 +5649,7 @@ paths: /library/metadata/{ids}/analyze: put: summary: Analyze an item - operationId: libraryMetadataPutAnalyze + operationId: analyzeMetadata description: Start the analysis of a metadata item tags: - Library @@ -5941,7 +5690,7 @@ paths: /library/metadata/{ids}/chapterThumbs: put: summary: Generate thumbs of chapters for an item - operationId: libraryMetadataPutChapterThumbs + operationId: putChapterThumbs description: Start the chapter thumb generation for an item tags: - Library @@ -5968,17 +5717,14 @@ paths: in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' /library/metadata/{ids}/credits: put: summary: Credit detect a metadata item - operationId: libraryMetadataPutCredits + operationId: startCreditDetection description: Start credit detection on a metadata item tags: - Library @@ -6005,25 +5751,19 @@ paths: in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: manual in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' /library/metadata/{ids}/extras: get: summary: Get an item's extras - operationId: libraryMetadataGetExtras + operationId: getExtras description: Get the extras for a metadata item tags: - Library @@ -6061,7 +5801,7 @@ paths: $ref: '#/components/schemas/MediaContainerWithMetadata' post: summary: Add to an item's extras - operationId: libraryMetadataPostExtras + operationId: addExtras description: Add an extra to a metadata item tags: - Library @@ -6103,7 +5843,7 @@ paths: /library/metadata/{ids}/file: get: summary: Get a file from a metadata or media bundle - operationId: libraryMetadataGetFile + operationId: getFile description: Get a bundle file for a metadata or media item. This is either an image or a mp3 (for a show's theme) tags: - Library @@ -6143,7 +5883,7 @@ paths: /library/metadata/{ids}/index: put: summary: Start BIF generation of an item - operationId: libraryMetadataPutIndex + operationId: startBifGeneration description: Start the indexing (BIF generation) of an item tags: - Library @@ -6170,17 +5910,14 @@ paths: in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' /library/metadata/{ids}/intro: put: summary: Intro detect an item - operationId: libraryMetadataPutIntro + operationId: putMetadataIntro description: Start the detection of intros in a metadata item tags: - Library @@ -6208,10 +5945,7 @@ paths: in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: threshold description: The threshold for determining if content is an intro or not in: query @@ -6224,7 +5958,7 @@ paths: /library/metadata/{ids}/marker: post: summary: Create a marker - operationId: libraryMetadataPostMarker + operationId: createMarker description: Create a marker for this user on the metadata item tags: - Library @@ -6308,7 +6042,7 @@ paths: /library/metadata/{ids}/match: put: summary: Match a metadata item - operationId: libraryMetadataPutMatch + operationId: matchMetadata description: Match a metadata item to a guid tags: - Library @@ -6351,7 +6085,7 @@ paths: /library/metadata/{ids}/matches: put: summary: Get metadata matches for an item - operationId: libraryMetadataGetMatches + operationId: putMetadataMatches description: Get the list of metadata matches for a metadata item tags: - Library @@ -6402,10 +6136,7 @@ paths: in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: OK @@ -6416,7 +6147,7 @@ paths: /library/metadata/{ids}/merge: put: summary: Merge a metadata item - operationId: libraryMetadataPutMerge + operationId: mergeMetadata description: Merge a metadata item with other items tags: - Library @@ -6452,7 +6183,7 @@ paths: /library/metadata/{ids}/nearest: get: summary: Get nearest tracks to metadata item - operationId: libraryMetadataGetNearest + operationId: getNearest description: Get the nearest tracks, sonically, to the provided track tags: - Library @@ -6502,7 +6233,7 @@ paths: /library/metadata/{ids}/prefs: put: summary: Set metadata preferences - operationId: libraryMetadataPutPrefs + operationId: setMetadataPrefs description: Set the preferences on a metadata item tags: - Library @@ -6535,7 +6266,7 @@ paths: /library/metadata/{ids}/refresh: put: summary: Refresh a metadata item - operationId: libraryMetadataPutRefresh + operationId: refreshMetadata description: Refresh a metadata item from the agent tags: - Library @@ -6567,17 +6298,14 @@ paths: in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' /library/metadata/{ids}/related: get: summary: Get related items - operationId: libraryMetadataGetRelated + operationId: getRelated description: Get a hub of related items to a metadata item tags: - Library @@ -6617,7 +6345,7 @@ paths: /library/metadata/{ids}/similar: get: summary: Get similar items - operationId: libraryMetadataGetSimilar + operationId: getSimilar description: Get a list of similar items to a metadata item tags: - Library @@ -6648,7 +6376,7 @@ paths: /library/metadata/{ids}/split: put: summary: Split a metadata item - operationId: libraryMetadataPutSplit + operationId: splitMetadata description: Split a metadata item into multiple items tags: - Library @@ -6677,7 +6405,7 @@ paths: /library/metadata/{ids}/subtitles: get: summary: Add subtitles - operationId: libraryMetadataPostSubtitles + operationId: addSubtitles description: Add a subtitle to a metadata item tags: - Library @@ -6730,25 +6458,19 @@ paths: in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: hearingImpaired in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' /library/metadata/{ids}/tree: get: summary: Get metadata items as a tree - operationId: libraryMetadataGetTree + operationId: tree description: Get a tree of metadata items, such as the seasons/episodes of a show tags: - Library @@ -6778,7 +6500,7 @@ paths: /library/metadata/{ids}/unmatch: put: summary: Unmatch a metadata item - operationId: libraryMetadataPutUnmatch + operationId: unmatch description: Unmatch a metadata item to info fetched from the agent tags: - Library @@ -6807,7 +6529,7 @@ paths: /library/metadata/{ids}/users/top: get: summary: Get metadata top users - operationId: libraryMetadataGetUsersTop + operationId: getMetadataTopUsers description: Get the list of users which have played this item starting with the most tags: - Library @@ -6855,7 +6577,7 @@ paths: /library/metadata/{ids}/voiceActivity: put: summary: Detect voice activity - operationId: libraryMetadataPutVoiceActivity + operationId: detectVoiceActivity description: Start the detection of voice in a metadata item tags: - Library @@ -6883,26 +6605,20 @@ paths: in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: manual description: Indicate whether detection is manually run in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' /library/metadata/augmentations/{augmentationId}: get: summary: Get augmentation status - operationId: libraryGetMetadataAugmentationsAugmentation + operationId: getAugmentationStatus description: Get augmentation status and potentially wait for completion tags: - Library @@ -6927,10 +6643,7 @@ paths: description: Wait for augmentation completion before returning in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '204': $ref: '#/components/responses/204' @@ -6945,7 +6658,7 @@ paths: /library/parts/{partId}: put: summary: Set stream selection - operationId: libraryPutPartsPart + operationId: setStreamSelection description: Set which streams (audio/subtitle) are selected by this user tags: - Library @@ -6980,10 +6693,7 @@ paths: description: Perform the same for all parts of this media selecting similar streams in each in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' @@ -6994,7 +6704,7 @@ paths: /library/people/{personId}: get: summary: Get person details - operationId: libraryGetPeoplePerson + operationId: getPeople description: Get details for a single actor. tags: - Library @@ -7037,7 +6747,7 @@ paths: /library/people/{personId}/media: get: summary: Get media for a person - operationId: libraryGetPeoplePersonMedia + operationId: getPersonMedia description: Get all the media for a single actor. tags: - Library @@ -7070,7 +6780,7 @@ paths: /library/sections/{sectionId}: delete: summary: Delete a library section - operationId: libraryDeleteSection + operationId: deleteSection description: Delete a library section by id tags: - Library @@ -7098,16 +6808,13 @@ paths: description: If set, response will return an activity with the actual deletion process. Otherwise request will return when deletion is complete in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' get: summary: Get a library section by id - operationId: librarySectionGetSection + operationId: getSection description: 'Returns details for the library. This can be thought of as an interstitial endpoint because it contains information about the library, rather than content itself. It often contains a list of `Directory` metadata objects: These used to be used by clients to build a menuing system.' tags: - Library @@ -7132,10 +6839,7 @@ paths: description: Whether or not to include details for a section (types, filters, and sorts). Only exists for backwards compatibility, media providers other than the server libraries have it on always. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: OK @@ -7183,7 +6887,7 @@ paths: type: object put: summary: Edit a library section - operationId: librarySectionPutSection + operationId: editSection description: Edit a library section by id setting parameters tags: - Library @@ -7262,7 +6966,7 @@ paths: /library/sections/{sectionId}/albums: get: summary: Set section albums - operationId: librarySectionGetAlbums + operationId: getAlbums description: Get all albums in a music section tags: - Content @@ -7338,7 +7042,7 @@ paths: /library/sections/{sectionId}/all: get: summary: Get items in the section - operationId: librarySectionGetAll + operationId: getSectionAll description: Get the items in a section, potentially filtering them tags: - Content @@ -7378,7 +7082,7 @@ paths: $ref: '#/components/schemas/MediaContainerWithMetadata' put: summary: Set the fields of the filtered items - operationId: librarySectionPutAll + operationId: putSectionAll description: |- This endpoint takes an large possible set of values. Here are some examples. - **Parameters, extra documentation** @@ -7462,10 +7166,7 @@ paths: description: Set the specified field to locked (or unlocked if set to 0) in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: title.value description: This field is treated specially by albums or artists and may be used for implicit reparenting. in: query @@ -7529,7 +7230,7 @@ paths: /library/sections/{sectionId}/allLeaves: get: summary: Set section leaves - operationId: librarySectionGetAllLeaves + operationId: getAllLeaves description: Get all leaves in a section (such as episodes in a show section) tags: - Content @@ -7639,7 +7340,7 @@ paths: /library/sections/{sectionId}/analyze: put: summary: Analyze a section - operationId: librarySectionPutAnalyze + operationId: putSectionAnalyze description: Start analysis of all items in a section. If BIF generation is enabled, this will also be started on this section tags: - Library @@ -7669,7 +7370,7 @@ paths: /library/sections/{sectionId}/arts: get: summary: Set section artwork - operationId: librarySectionGetArts + operationId: getArts description: Get artwork for a library section tags: - Content @@ -7700,7 +7401,7 @@ paths: /library/sections/{sectionId}/autocomplete: get: summary: Get autocompletions for search - operationId: librarySectionGetAutocomplete + operationId: autocomplete description: |- The field to autocomplete on is specified by the {field}.query parameter. For example `genre.query` or `title.query`. Returns a set of items from the filtered items whose {field} starts with {field}.query. In the results, a {field}.queryRange will be present to express the range of the match @@ -7757,7 +7458,7 @@ paths: /library/sections/{sectionId}/categories: get: summary: Set section categories - operationId: librarySectionGetCategories + operationId: getCategories description: Get categories in a library section tags: - Content @@ -7788,7 +7489,7 @@ paths: /library/sections/{sectionId}/cluster: get: summary: Set section clusters - operationId: librarySectionGetCluster + operationId: getSectionCluster description: Get clusters in a library section (typically for photos) tags: - Content @@ -7819,7 +7520,7 @@ paths: /library/sections/{sectionId}/collections: get: summary: Get collections in a section - operationId: librarySectionGetCollections + operationId: getCollections description: Get all collections in a section tags: - Library @@ -7860,7 +7561,7 @@ paths: /library/sections/{sectionId}/common: get: summary: Get common fields for items - operationId: librarySectionGetCommon + operationId: getCommon description: |- Represents a "Common" item. It contains only the common attributes of the items selected by the provided filter Fields which are not common will be expressed in the `mixedFields` field @@ -7912,7 +7613,7 @@ paths: /library/sections/{sectionId}/computePath: get: summary: Similar tracks to transition from one to another - operationId: librarySectionGetComputePath + operationId: getComputePath description: Get a list of audio tracks starting at one and ending at another which are similar across the path tags: - Content @@ -7961,7 +7662,7 @@ paths: /library/sections/{sectionId}/emptyTrash: put: summary: Empty section trash - operationId: librarySectionPutEmptyTrash + operationId: emptyTrash description: Empty trash in the section, permanently deleting media/metadata for missing media tags: - Library @@ -7991,7 +7692,7 @@ paths: /library/sections/{sectionId}/filters: get: summary: Get section filters - operationId: librarySectionGetFilters + operationId: getSectionFilters description: Get common filters on a section tags: - Library @@ -8035,7 +7736,7 @@ paths: /library/sections/{sectionId}/firstCharacters: get: summary: Get list of first characters - operationId: librarySectionGetFirstCharaters + operationId: getFirstCharacters description: Get list of first characters in this section tags: - Library @@ -8095,7 +7796,7 @@ paths: /library/sections/{sectionId}/indexes: delete: summary: Delete section indexes - operationId: librarySectionDeleteIndexes + operationId: deleteIndexes description: Delete all the indexes in a section tags: - Library @@ -8125,7 +7826,7 @@ paths: /library/sections/{sectionId}/intros: delete: summary: Delete section intro markers - operationId: librarySectionDeleteIntros + operationId: deleteIntros description: Delete all the intro markers in a section tags: - Library @@ -8155,7 +7856,7 @@ paths: /library/sections/{sectionId}/location: get: summary: Get all folder locations - operationId: librarySectionGetLocations + operationId: getLocations description: Get all folder locations of the media in a section tags: - Content @@ -8203,7 +7904,7 @@ paths: /library/sections/{sectionId}/moment: get: summary: Set section moments - operationId: librarySectionGetMoment + operationId: getMoment description: Get moments in a library section (typically for photos) tags: - Content @@ -8234,7 +7935,7 @@ paths: /library/sections/{sectionId}/nearest: get: summary: The nearest audio tracks - operationId: librarySectionGetNearest + operationId: getNearest description: Get the nearest audio tracks to a particular analysis tags: - Content @@ -8291,7 +7992,7 @@ paths: /library/sections/{sectionId}/prefs: get: summary: Get section prefs - operationId: librarySectionGetPrefs + operationId: getPrefs description: Get the prefs for a section by id and potentially overriding the agent tags: - Library @@ -8325,7 +8026,7 @@ paths: $ref: '#/components/schemas/MediaContainerWithSettings' put: summary: Set section prefs - operationId: librarySectionPutPrefs + operationId: setSectionPrefs description: Set the prefs for a section by id tags: - Library @@ -8363,7 +8064,7 @@ paths: /library/sections/{sectionId}/refresh: delete: summary: Cancel section refresh - operationId: librarySectionDeleteRefresh + operationId: cancelRefresh description: Cancel the refresh of a section tags: - Library @@ -8392,7 +8093,7 @@ paths: $ref: '#/components/responses/200' post: summary: Refresh section - operationId: librarySectionPostRefresh + operationId: refreshSection description: Start a refresh of this section tags: - Library @@ -8420,10 +8121,7 @@ paths: description: Whether the update of metadata and items should be performed even if modification dates indicate the items have not change in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: path description: Restrict refresh to the specified path in: query @@ -8435,7 +8133,7 @@ paths: /library/sections/{sectionId}/sorts: get: summary: Get a section sorts - operationId: librarySectionGetSorts + operationId: getSorts description: Get the sort mechanisms available in a section tags: - Library @@ -8476,7 +8174,7 @@ paths: /library/streams/{streamId}/levels: get: summary: Get loudness about a stream in json - operationId: libraryGetStreamsStreamLevels + operationId: getStreamLevels description: The the loudness of a stream in db, one entry per 100ms tags: - Library @@ -8533,7 +8231,7 @@ paths: /library/streams/{streamId}/loudness: get: summary: Get loudness about a stream - operationId: libraryGetStreamsStreamLoudness + operationId: getStreamLoudness description: The the loudness of a stream in db, one number per line, one entry per 100ms tags: - Library @@ -8577,7 +8275,7 @@ paths: /livetv/dvrs/{dvrId}: delete: summary: Delete a single DVR - operationId: livetvDvrDeleteDVR + operationId: delete description: Delete a single DVR by its id (key) tags: - DVRs @@ -8606,7 +8304,7 @@ paths: $ref: '#/components/responses/200' get: summary: Get a single DVR - operationId: livetvDvrGetDVR + operationId: get description: Get a single DVR by its id (key) tags: - DVRs @@ -8669,7 +8367,7 @@ paths: /livetv/dvrs/{dvrId}/lineups: delete: summary: Delete a DVR Lineup - operationId: livetvDvrDeleteLineup + operationId: deleteLineup description: Deletes a DVR device's lineup. tags: - DVRs @@ -8740,7 +8438,7 @@ paths: type: object put: summary: Add a DVR Lineup - operationId: livetvDvrPutLineup + operationId: addLineup description: Add a lineup to a DVR device's set of lineups. tags: - DVRs @@ -8812,7 +8510,7 @@ paths: /livetv/dvrs/{dvrId}/prefs: put: summary: Set DVR preferences - operationId: livetvDvrPutPrefs + operationId: setPreferences description: Set DVR preferences by name avd value tags: - DVRs @@ -8883,7 +8581,7 @@ paths: /livetv/dvrs/{dvrId}/reloadGuide: delete: summary: Tell a DVR to stop reloading program guide - operationId: livetvDvrDeleteReloadGuide + operationId: stopReloadGuide description: Tell a DVR to stop reloading program guide tags: - DVRs @@ -8912,7 +8610,7 @@ paths: $ref: '#/components/responses/200' post: summary: Tell a DVR to reload program guide - operationId: livetvDvrPostReloadGuide + operationId: reloadGuide description: Tell a DVR to reload program guide tags: - DVRs @@ -8949,7 +8647,7 @@ paths: /livetv/sessions/{sessionId}: get: summary: Get a single session - operationId: livetvSessionsGetSession + operationId: getSession description: Get a single livetv session and metadata tags: - Live TV @@ -8989,7 +8687,7 @@ paths: /media/grabbers/devices/{deviceId}: delete: summary: Remove a device - operationId: mediaGrabberDevicesDeviceDeleteSlash + operationId: delete description: Remove a devices by its id along with its channel mappings tags: - Devices @@ -9045,7 +8743,7 @@ paths: text/html: {} get: summary: Get device details - operationId: mediaGrabberDevicesDeviceGetSlash + operationId: getDetails description: Get a device's details by its id tags: - Devices @@ -9082,7 +8780,7 @@ paths: text/html: {} put: summary: Enable or disable a device - operationId: mediaGrabberDevicesDevicePutSlash + operationId: modifyDevice description: Enable or disable a device by its id tags: - Devices @@ -9110,10 +8808,7 @@ paths: description: Whether to enable the device in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: OK @@ -9147,7 +8842,7 @@ paths: /media/grabbers/devices/{deviceId}/channelmap: put: summary: Set a device's channel mapping - operationId: mediaGrabberDevicesDevicePutChannelmap + operationId: setChannelmap description: Set a device's channel mapping tags: - Devices @@ -9204,7 +8899,7 @@ paths: /media/grabbers/devices/{deviceId}/channels: get: summary: Get a device's channels - operationId: mediaGrabberDevicesDeviceGetChannels + operationId: getChannels description: Get a device's channels by its id tags: - Devices @@ -9279,7 +8974,7 @@ paths: /media/grabbers/devices/{deviceId}/prefs: put: summary: Set device preferences - operationId: mediaGrabberDevicesDevicePutPrefs + operationId: putPreferences description: Set device preferences by its id tags: - Devices @@ -9314,7 +9009,7 @@ paths: /media/grabbers/devices/{deviceId}/scan: delete: summary: Tell a device to stop scanning for channels - operationId: mediaGrabberDeleteDevicesDeviceScan + operationId: stopScan description: Tell a device to stop scanning for channels tags: - Devices @@ -9344,7 +9039,7 @@ paths: $ref: '#/components/schemas/MediaContainerWithDevice' post: summary: Tell a device to scan for channels - operationId: mediaGrabberDevicesDevicePostScan + operationId: scan description: Tell a device to scan for channels tags: - Devices @@ -9386,7 +9081,7 @@ paths: /media/grabbers/operations/{operationId}: delete: summary: Cancel an existing grab - operationId: mediaGrabberDeleteOperationsOperation + operationId: cancelGrab description: |- Cancels an existing media grab (recording). It can be used to resolve a conflict which exists for a rolling subscription. Note: This cancellation does not persist across a server restart, but neither does a rolling subscription itself. @@ -9421,7 +9116,7 @@ paths: /media/providers/{provider}: delete: summary: Delete a media provider - operationId: deleteMediaProvider + operationId: delete description: Deletes a media provider with the given id tags: - Provider @@ -9454,7 +9149,7 @@ paths: /media/subscriptions/{subscriptionId}: delete: summary: Delete a subscription - operationId: mediaSubscriptionsDeleteSubscription + operationId: delete description: Delete a subscription, cancelling all of its grabs as well tags: - Subscriptions @@ -9487,7 +9182,7 @@ paths: $ref: '#/components/responses/404' get: summary: Get a single subscription - operationId: mediaSubscriptionsGetSubscription + operationId: get description: Get a single subscription and potentially the grabs too tags: - Subscriptions @@ -9511,18 +9206,12 @@ paths: description: Indicates whether the active grabs should be included as well in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: includeStorage description: Compute the storage of recorded items desired by this subscription in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: OK @@ -9540,7 +9229,7 @@ paths: $ref: '#/components/responses/404' put: summary: Edit a subscription - operationId: mediaSubscriptionsPutSubscription + operationId: editPreferences description: Edit a subscription's preferences tags: - Subscriptions @@ -9585,7 +9274,7 @@ paths: /media/subscriptions/{subscriptionId}/move: put: summary: Re-order a subscription - operationId: mediaSubscriptionsPutSubscriptionMove + operationId: reorder description: Re-order a subscription to change its priority tags: - Subscriptions @@ -9631,7 +9320,7 @@ paths: /playlists/{playlistId}: delete: summary: Delete a Playlist - operationId: playlistDeletePlaylist + operationId: delete description: Deletes a playlist by provided id tags: - Library Playlists @@ -9661,7 +9350,7 @@ paths: text/html: {} get: summary: Retrieve Playlist - operationId: playlistGetPlaylist + operationId: get description: |- Gets detailed metadata for a playlist. A playlist for many purposes (rating, editing metadata, tagging), can be treated like a regular metadata item: Smart playlist details contain the `content` attribute. This is the content URI for the generator. This can then be parsed by a client to provide smart playlist editing. @@ -9697,7 +9386,7 @@ paths: text/html: {} put: summary: Editing a Playlist - operationId: playlistPutPlaylist + operationId: update description: Edits a playlist in the same manner as [editing metadata](#tag/Provider/operation/metadataPutItem) tags: - Library Playlists @@ -9728,7 +9417,7 @@ paths: /playlists/{playlistId}/generators: get: summary: Get a playlist's generators - operationId: playlistGetGenerators + operationId: getGenerators description: Get all the generators in a playlist tags: - Library Playlists @@ -9797,7 +9486,7 @@ paths: /playlists/{playlistId}/items: delete: summary: Clearing a playlist - operationId: playlistDeleteItems + operationId: clearItems description: Clears a playlist, only works with dumb playlists. Returns the playlist. tags: - Library Playlists @@ -9829,7 +9518,7 @@ paths: text/html: {} get: summary: Retrieve Playlist Contents - operationId: playlistGetItems + operationId: getItems description: 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. tags: - Playlist @@ -9880,7 +9569,7 @@ paths: text/html: {} put: summary: Adding to a Playlist - operationId: playlistPutItems + operationId: addItems description: 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. tags: - Library Playlists @@ -9923,7 +9612,7 @@ paths: /playQueues/{playQueueId}: get: summary: Retrieve a play queue - operationId: playQueueQueueGetSlash + operationId: get description: 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. tags: - Play Queue @@ -9948,10 +9637,7 @@ paths: description: If the server should transfer ownership to the requesting client (used in remote control scenarios). in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: center description: The play queue item ID for the center of the window - this doesn't change the current selected item. in: query @@ -9966,18 +9652,12 @@ paths: description: Whether to include the items before the center (if 0, center is not included either), defaults to 1. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: includeAfter description: Whether to include the items after the center (if 0, center is not included either), defaults to 1. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/slash-post-responses-200' @@ -9989,7 +9669,7 @@ paths: text/html: {} put: summary: Add a generator or playlist to a play queue - operationId: playQueueQueuePutSlash + operationId: addItem description: 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. tags: - Play Queue @@ -10024,10 +9704,7 @@ paths: description: Play this item next (defaults to 0 - queueing at the end of manually queued items). in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/slash-post-responses-200' @@ -10040,7 +9717,7 @@ paths: /playQueues/{playQueueId}/items: delete: summary: Clear a play queue - operationId: playQueueQueueDeleteItems + operationId: clear description: Deletes all items in the play queue, and increases the version of the play queue. tags: - Play Queue @@ -10071,7 +9748,7 @@ paths: /playQueues/{playQueueId}/reset: put: summary: Reset a play queue - operationId: playQueuePlayQueueReset + operationId: reset description: Reset a play queue to the first item being the current item tags: - Play Queue @@ -10104,7 +9781,7 @@ paths: /playQueues/{playQueueId}/shuffle: put: summary: Shuffle a play queue - operationId: playQueueQueuePutItemsShuffle + operationId: shuffle description: 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. tags: - Play Queue @@ -10141,7 +9818,7 @@ paths: /playQueues/{playQueueId}/unshuffle: put: summary: Unshuffle a play queue - operationId: playQueueQueuePutItemsUnshuffle + operationId: unshuffle description: 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. tags: - Play Queue @@ -10174,7 +9851,7 @@ paths: /status/sessions/history/{historyId}: delete: summary: Delete Single History Item - operationId: statusDeleteHistory + operationId: deleteHistory description: Delete a single history item by id tags: - Status @@ -10220,7 +9897,7 @@ paths: text/html: {} get: summary: Get Single History Item - operationId: statusGetHistory + operationId: getHistoryItem description: Get a single history item by id tags: - Status @@ -10254,7 +9931,7 @@ paths: /{transcodeType}/:/transcode/universal/start.{extension}: get: summary: Start A Transcoding Session - operationId: transcodeStart + operationId: start description: Starts the transcoder and returns the corresponding streaming resource document. tags: - Transcoder @@ -10272,8 +9949,7 @@ paths: - $ref: '#/components/parameters/transcodeType' - $ref: '#/components/parameters/transcodeSessionId' - name: extension - description: | - Extension + description: "Extension \n" in: path required: true schema: @@ -10281,17 +9957,7 @@ paths: enum: - m3u8 - mpd - - name: advancedSubtitles - description: | - 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 - in: query - schema: - type: string - enum: - - burn - - text - - unknown - example: burn + - $ref: '#/components/parameters/advancedSubtitles' - name: audioBoost description: Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) in: query @@ -10311,64 +9977,43 @@ paths: description: Indicates the client supports ABR. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: autoAdjustSubtitle description: Indicates if the server should adjust subtitles based on Voice Activity Data. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: directPlay description: Indicates the client supports direct playing the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: directStream description: Indicates the client supports direct streaming the video of the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: directStreamAudio description: Indicates the client supports direct streaming the audio of the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: disableResolutionRotation description: Indicates if resolution should be adjusted for orientation. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: hasMDE description: 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 in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 - name: location description: Network type of the client, can be used to help determine target bitrate. @@ -10589,7 +10234,7 @@ paths: /downloadQueue/{queueId}/item/{itemId}/decision: get: summary: Grab download queue item decision - operationId: downloadQueueGetQueueItemItemDecision + operationId: getItemDecision description: | Available: 0.2.0 @@ -10634,7 +10279,7 @@ paths: /downloadQueue/{queueId}/item/{itemId}/media: get: summary: Grab download queue media - operationId: downloadQueueGetQueueItemItemMedia + operationId: getMedia description: | Available: 0.2.0 @@ -10681,7 +10326,7 @@ paths: /downloadQueue/{queueId}/items/{itemId}: delete: summary: Delete download queue items - operationId: downloadQueueDeleteQueueItemsItem + operationId: deleteItem description: delete items from a download queue tags: - Download Queue @@ -10720,7 +10365,7 @@ paths: $ref: '#/components/responses/200' get: summary: Get download queue items - operationId: downloadQueueGetQueueItemsItem + operationId: getItems description: | Available: 0.2.0 @@ -10832,7 +10477,7 @@ paths: /downloadQueue/{queueId}/items/{itemId}/restart: post: summary: Restart processing of items from the decision - operationId: downloadQueuePostQueueItemsItemRestart + operationId: restartItem description: | Available: 0.2.0 @@ -10875,7 +10520,7 @@ paths: /hubs/sections/{sectionId}/manage/{identifier}: delete: summary: Delete a custom hub - operationId: hubsSectionsSectionManageDeleteIdentifier + operationId: deleteCustom description: Delete a custom hub from the server tags: - Hubs @@ -10920,7 +10565,7 @@ paths: text/html: {} put: summary: Change hub visibility - operationId: hubsSectionsSectionManagePutIdentifier + operationId: updateVisibility description: Changed the visibility of a hub for both the admin and shared users tags: - Hubs @@ -10954,26 +10599,17 @@ paths: description: Whether this hub should be displayed in recommended in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: promotedToOwnHome description: Whether this hub should be displayed in admin's home in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" - name: promotedToSharedHome description: Whether this hub should be displayed in shared user's home in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' @@ -10986,7 +10622,7 @@ paths: /library/collections/{collectionId}/composite/{updatedAt}: get: summary: Get a collection's image - operationId: libraryCollectionCollectionGetComposite + operationId: getComposite description: Get an image for the collection based on the items within tags: - Content @@ -11029,7 +10665,7 @@ paths: /library/collections/{collectionId}/items/{itemId}: put: summary: Delete an item from a collection - operationId: libraryCollectionCollectionPutItemsItem + operationId: deleteItem description: Delete an item from a collection tags: - Library Collections @@ -11077,7 +10713,7 @@ paths: /library/collections/{collectionId}/items/{itemId}/move: put: summary: Reorder an item in the collection - operationId: libraryCollectionCollectionPutItemsItemMove + operationId: moveItem description: Reorder items in a collection with one item after another tags: - Library Collections @@ -11130,7 +10766,7 @@ paths: /library/media/{mediaId}/chapterImages/{chapter}: get: summary: Get a chapter image - operationId: libraryGetMediaMediaChapterImagesChapter + operationId: getChapterImages description: Get a single chapter image for a piece of media tags: - Library @@ -11172,7 +10808,7 @@ paths: /library/metadata/{ids}/{element}: post: summary: Set an item's artwork, theme, etc - operationId: libraryMetadataPostElement + operationId: createElement description: |- Set the artwork, thumb, element for a metadata item Generally only the admin can perform this action. The exception is if the metadata is a playlist created by the user @@ -11216,7 +10852,7 @@ paths: $ref: '#/components/responses/200' put: summary: Set an item's artwork, theme, etc - operationId: libraryMetadataPutElement + operationId: setElement description: |- Set the artwork, thumb, element for a metadata item Generally only the admin can perform this action. The exception is if the metadata is a playlist created by the user @@ -11261,7 +10897,7 @@ paths: /library/metadata/{ids}/marker/{marker}: delete: summary: Delete a marker - operationId: libraryMetadataDeleteMarkerMarker + operationId: deleteMarker description: Delete a marker for this user on the metadata item tags: - Library @@ -11299,7 +10935,7 @@ paths: text/html: {} put: summary: Edit a marker - operationId: libraryMetadataPutMarkerMarker + operationId: putMarker description: Edit a marker for this user on the metadata item tags: - Library @@ -11362,7 +10998,7 @@ paths: /library/metadata/{ids}/media/{mediaItem}: delete: summary: Delete a media item - operationId: libraryMetadataDeleteMediaMediaItem + operationId: deleteMediaItem description: Delete a single media from a metadata item in the library tags: - Library @@ -11394,10 +11030,7 @@ paths: description: Whether proxy items, such as media optimized versions, should also be deleted. Defaults to false. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': $ref: '#/components/responses/200' @@ -11412,7 +11045,7 @@ paths: /library/parts/{partId}/indexes/{index}: get: summary: Get BIF index for a part - operationId: libraryGetPartsPartIndexesIndex + operationId: getPartIndex description: Get BIF index for a part by index type tags: - Library @@ -11461,7 +11094,7 @@ paths: /library/sections/{sectionId}/collection/{collectionId}: delete: summary: Delete a collection - operationId: librarySectionDeleteCollectionCollection + operationId: deleteCollection description: Delete a library collection from the PMS tags: - Library @@ -11501,7 +11134,7 @@ paths: /library/sections/{sectionId}/composite/{updatedAt}: get: summary: Get a section composite image - operationId: librarySectionGetComposite + operationId: getSectionComposite description: Get a composite image of images in this section tags: - Library @@ -11539,7 +11172,7 @@ paths: /library/streams/{streamId}.{ext}: delete: summary: Delete a stream - operationId: libraryDeleteStreamsStream + operationId: deleteStream description: Delete a stream. Only applies to downloaded subtitle streams or a sidecar subtitle when media deletion is enabled. tags: - Library @@ -11579,7 +11212,7 @@ paths: text/html: {} get: summary: Get a stream - operationId: libraryGetStreamsStream + operationId: getStream description: Get a stream (such a a sidecar subtitle stream) tags: - Library @@ -11623,10 +11256,7 @@ paths: in: query required: false schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: The stream in the requested format. @@ -11644,7 +11274,7 @@ paths: text/html: {} put: summary: Set a stream offset - operationId: libraryPutStreamsStream + operationId: setOffset description: Set a stream offset in ms. This may not be respected by all clients tags: - Library @@ -11687,7 +11317,7 @@ paths: /livetv/dvrs/{dvrId}/channels/{channel}/tune: post: summary: Tune a channel on a DVR - operationId: livetvDvrPostChannelsChannelTune + operationId: tuneChannel description: Tune a channel on a DVR to the provided channel tags: - DVRs @@ -11738,7 +11368,7 @@ paths: /livetv/dvrs/{dvrId}/devices/{deviceId}: delete: summary: Remove a device from an existing DVR - operationId: livetvDvrDeleteDvrDevice + operationId: removeDevice description: Remove a device from an existing DVR tags: - DVRs @@ -11809,7 +11439,7 @@ paths: type: object put: summary: Add a device to an existing DVR - operationId: livetvDvrPutDvrDevice + operationId: addDevice description: Add a device to an existing DVR tags: - DVRs @@ -11881,7 +11511,7 @@ paths: /livetv/epg/countries/{country}/{epgId}/lineups: get: summary: Get lineups for a country via postal code - operationId: livetvEpgGetCountriesCountryLineups + operationId: getCountriesLineups description: Returns a list of lineups for a given country, EPG provider and postal code tags: - EPG @@ -11927,7 +11557,7 @@ paths: /livetv/epg/countries/{country}/{epgId}/regions: get: summary: Get regions for a country - operationId: livetvEpgGetCountriesCountryRegions + operationId: getCountryRegions description: Get regions for a country within an EPG provider tags: - EPG @@ -11996,7 +11626,7 @@ paths: /livetv/sessions/{sessionId}/{consumerId}/index.m3u8: get: summary: Get a session playlist index - operationId: livetvSessionsGetSessionConsumerIndex + operationId: getSessionPlaylistIndex description: Get a playlist index for playing this session tags: - Live TV @@ -12033,7 +11663,7 @@ paths: /media/grabbers/devices/{deviceId}/thumb/{version}: get: summary: Get device thumb - operationId: mediaGrabberDevicesDeviceGetThumbVersion + operationId: getThumb description: Get a device's thumb for display to the user tags: - Devices @@ -12075,7 +11705,7 @@ paths: /playlists/{playlistId}/items/{generatorId}: delete: summary: Delete a Generator - operationId: playlistDeleteItemsGenerator + operationId: deleteGenerator description: Deletes an item from a playlist. Only works with dumb playlists. tags: - Library Playlists @@ -12113,7 +11743,7 @@ paths: text/html: {} get: summary: Get a playlist generator - operationId: playlistGetItemsGenerator + operationId: getGenerator description: Get a playlist's generator. Only used for optimized versions tags: - Library Playlists @@ -12288,7 +11918,7 @@ paths: text/html: {} put: summary: Modify a Generator - operationId: playlistPutItemsGenerator + operationId: modifyGenerator description: Modify a playlist generator. Only used for optimizer tags: - Library Playlists @@ -12344,10 +11974,7 @@ paths: - all - count unwatched: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" target: type: string targetTagID: @@ -12380,7 +12007,7 @@ paths: /playlists/{playlistId}/items/{generatorId}/items: get: summary: Get a playlist generator's items - operationId: playlistGetItemsGeneratorItems + operationId: getItems description: Get a playlist generator's items tags: - Library Playlists @@ -12460,7 +12087,7 @@ paths: /playlists/{playlistId}/items/{playlistItemId}/move: put: summary: Moving items in a playlist - operationId: playlistPutItemsMove + operationId: moveItem description: Moves an item in a playlist. Only works with dumb playlists. tags: - Library Playlists @@ -12504,7 +12131,7 @@ paths: /playQueues/{playQueueId}/items/{playQueueItemId}: delete: summary: Delete an item from a play queue - operationId: playQueueQueueDeleteItemsItem + operationId: deleteItem description: Deletes an item in a play queue. Increments the version of the play queue. Returns the modified play queue. tags: - Play Queue @@ -12543,7 +12170,7 @@ paths: /playQueues/{playQueueId}/items/{playQueueItemId}/move: put: summary: Move an item in a play queue - operationId: playQueueQueuePutItemsMove + operationId: moveItem description: Moves an item in a play queue, and increases the version of the play queue. Returns the modified play queue. tags: - Play Queue @@ -12587,7 +12214,7 @@ paths: /library/metadata/{ids}/{element}/{timestamp}: get: summary: Get an item's artwork, theme, etc - operationId: libraryMetadataGetElement + operationId: getMetadataElement description: Get the artwork, thumb, element for a metadata item tags: - Library @@ -12640,7 +12267,7 @@ paths: /library/parts/{partId}/{changestamp}/{filename}: get: summary: Get a media part - operationId: libraryGetPartsPartChangestampFilename + operationId: getMediaPart description: | Get a media part for streaming or download. - streaming: This is the default scenario. Bandwidth usage on this endpoint will be guaranteed (on the server's end) to be at least the bandwidth reservation given in the decision. If no decision exists, an ad-hoc decision will be created if sufficient bandwidth exists. Clients should not rely on ad-hoc decisions being made as this may be removed in the future. @@ -12680,10 +12307,7 @@ paths: description: Whether this is a file download in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" responses: '200': description: OK @@ -12711,7 +12335,7 @@ paths: /library/parts/{partId}/indexes/{index}/{offset}: get: summary: Get an image from part BIF - operationId: libraryGetPartsPartIndexesIndexOffset + operationId: getImageFromBif description: Extract an image from the BIF for a part at a particular offset tags: - Library @@ -12761,7 +12385,7 @@ paths: /livetv/epg/countries/{country}/{epgId}/regions/{region}/lineups: get: summary: Get lineups for a region - operationId: livetvEpgGetCountriesCountryRegionsRegionLineups + operationId: getLineups description: Get lineups for a region within an EPG provider tags: - EPG @@ -12817,7 +12441,7 @@ paths: /livetv/sessions/{sessionId}/{consumerId}/{segmentId}: get: summary: Get a single session segment - operationId: livetvSessionsGetSessionConsumerSegment + operationId: getSessionSegment description: Get a single livetv session segment tags: - Live TV @@ -12858,7 +12482,7 @@ paths: /playlists/{playlistId}/items/{generatorId}/{metadataId}/{action}: put: summary: Reprocess a generator - operationId: playlistPutItemsGeneratorReprocess + operationId: reprocessGenerator description: Make a generator reprocess (refresh) tags: - Library Playlists @@ -12918,7 +12542,7 @@ components: 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) @@ -12930,7 +12554,7 @@ components: advancedSubtitles: name: advancedSubtitles description: | - 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 + 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 in: query schema: type: string @@ -12961,20 +12585,14 @@ components: description: Indicates the client supports ABR. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 autoAdjustSubtitle: name: autoAdjustSubtitle description: Indicates if the server should adjust subtitles based on Voice Activity Data. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 composite: name: composite @@ -13036,50 +12654,35 @@ components: description: Indicates the client supports direct playing the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 directStream: name: directStream description: Indicates the client supports direct streaming the video of the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 directStreamAudio: name: directStreamAudio description: Indicates the client supports direct streaming the audio of the indicated content. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 disableResolutionRotation: name: disableResolutionRotation description: Indicates if resolution should be adjusted for orientation. in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 hasMDE: name: hasMDE description: 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 in: query schema: - type: integer - enum: - - 0 - - 1 + $ref: "#/components/schemas/BoolInt" example: 1 location: name: location @@ -13687,6 +13290,11 @@ components: type: boolean Art: type: string + BoolInt: + type: integer + enum: + - 0 + - 1 Channel: type: object properties: