mirror of
https://github.com/LukeHagar/plex-api-spec.git
synced 2025-12-06 04:20:40 +00:00
Plex Open API Spec
This commit is contained in:
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"yaml.schemas": {
|
||||
"https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json": "file:///Users/luke.hagar/Documents/GitHub/plex-api-spec/paths/root.yaml"
|
||||
}
|
||||
}
|
||||
5
package.json
Normal file
5
package.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"scripts": {
|
||||
"build": "redocly bundle ./referenced/plex-api-spec.yaml -o ./plex-api-spec-dereferenced.yaml -d"
|
||||
}
|
||||
}
|
||||
440
plex-api-spec-dereferenced.yaml
Normal file
440
plex-api-spec-dereferenced.yaml
Normal file
@@ -0,0 +1,440 @@
|
||||
openapi: 3.0.1
|
||||
info:
|
||||
title: Plex-API
|
||||
description: An Open API Spec for interacting with Plex.tv and Plex Servers
|
||||
version: 0.0.1
|
||||
contact:
|
||||
name: Luke Hagar
|
||||
email: Lukeslakemail@gmail.com
|
||||
url: https://www.LukeHagar.com
|
||||
servers:
|
||||
- url: '{Protocol}://{Local IP}:{Port}'
|
||||
variables:
|
||||
Protocol:
|
||||
enum:
|
||||
- http
|
||||
- https
|
||||
default: http
|
||||
description: The protocl to use with your plex server
|
||||
Local IP:
|
||||
default: 10.10.10.47
|
||||
description: The Local IP Address of your plex server
|
||||
Port:
|
||||
default: '32400'
|
||||
description: The port to access your plex server
|
||||
- url: https://plex.tv/api/v2
|
||||
security:
|
||||
- PlexToken: []
|
||||
components:
|
||||
securitySchemes:
|
||||
PlexToken:
|
||||
type: apiKey
|
||||
in: header
|
||||
name: X-Plex-Token
|
||||
schemas:
|
||||
ServerCapabilities:
|
||||
type: object
|
||||
properties: &ref_0
|
||||
MediaContainer:
|
||||
type: object
|
||||
properties:
|
||||
size:
|
||||
type: number
|
||||
allowCameraUpload:
|
||||
type: boolean
|
||||
allowChannelAccess:
|
||||
type: boolean
|
||||
allowMediaDeletion:
|
||||
type: boolean
|
||||
allowSharing:
|
||||
type: boolean
|
||||
allowSync:
|
||||
type: boolean
|
||||
allowTuners:
|
||||
type: boolean
|
||||
backgroundProcessing:
|
||||
type: boolean
|
||||
certificate:
|
||||
type: boolean
|
||||
companionProxy:
|
||||
type: boolean
|
||||
countryCode:
|
||||
type: string
|
||||
diagnostics:
|
||||
type: string
|
||||
eventStream:
|
||||
type: boolean
|
||||
friendlyName:
|
||||
type: string
|
||||
hubSearch:
|
||||
type: boolean
|
||||
itemClusters:
|
||||
type: boolean
|
||||
livetv:
|
||||
type: number
|
||||
machineIdentifier:
|
||||
type: string
|
||||
mediaProviders:
|
||||
type: boolean
|
||||
multiuser:
|
||||
type: boolean
|
||||
musicAnalysis:
|
||||
type: number
|
||||
myPlex:
|
||||
type: boolean
|
||||
myPlexMappingState:
|
||||
type: string
|
||||
myPlexSigninState:
|
||||
type: string
|
||||
myPlexSubscription:
|
||||
type: boolean
|
||||
myPlexUsername:
|
||||
type: string
|
||||
offlineTranscode:
|
||||
type: number
|
||||
ownerFeatures:
|
||||
type: string
|
||||
photoAutoTag:
|
||||
type: boolean
|
||||
platform:
|
||||
type: string
|
||||
platformVersion:
|
||||
type: string
|
||||
pluginHost:
|
||||
type: boolean
|
||||
pushNotifications:
|
||||
type: boolean
|
||||
readOnlyLibraries:
|
||||
type: boolean
|
||||
streamingBrainABRVersion:
|
||||
type: number
|
||||
streamingBrainVersion:
|
||||
type: number
|
||||
sync:
|
||||
type: boolean
|
||||
transcoderActiveVideoSessions:
|
||||
type: number
|
||||
transcoderAudio:
|
||||
type: boolean
|
||||
transcoderLyrics:
|
||||
type: boolean
|
||||
transcoderPhoto:
|
||||
type: boolean
|
||||
transcoderSubtitles:
|
||||
type: boolean
|
||||
transcoderVideo:
|
||||
type: boolean
|
||||
transcoderVideoBitrates:
|
||||
type: string
|
||||
transcoderVideoQualities:
|
||||
type: string
|
||||
transcoderVideoResolutions:
|
||||
type: string
|
||||
updatedAt:
|
||||
type: number
|
||||
updater:
|
||||
type: boolean
|
||||
version:
|
||||
type: string
|
||||
voiceSearch:
|
||||
type: boolean
|
||||
Directory:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
count:
|
||||
type: number
|
||||
key:
|
||||
type: string
|
||||
title:
|
||||
type: string
|
||||
ServerActivities:
|
||||
type: object
|
||||
properties: &ref_1
|
||||
MediaContainer:
|
||||
type: object
|
||||
properties:
|
||||
size:
|
||||
type: number
|
||||
Activity:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
uuid:
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
cancellable:
|
||||
type: boolean
|
||||
userID:
|
||||
type: number
|
||||
title:
|
||||
type: string
|
||||
subtitle:
|
||||
type: string
|
||||
progress:
|
||||
type: number
|
||||
Context:
|
||||
type: object
|
||||
properties:
|
||||
librarySectionID:
|
||||
type: string
|
||||
responses:
|
||||
'401':
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
paths:
|
||||
/:
|
||||
get:
|
||||
tags:
|
||||
- Server
|
||||
summary: Server Capabilities
|
||||
description: Server Capabilities
|
||||
operationId: serverCapabilities
|
||||
responses:
|
||||
'200':
|
||||
description: The Server Capabilities
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_0
|
||||
'401':
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
/activities:
|
||||
get:
|
||||
tags:
|
||||
- Activities
|
||||
summary: Server Activities
|
||||
description: Server Activities
|
||||
operationId: serverActivities
|
||||
responses:
|
||||
'200':
|
||||
description: The Server Activities
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_1
|
||||
'401':
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
/activities/{activityUUID}:
|
||||
delete:
|
||||
tags:
|
||||
- Activities
|
||||
summary: Cancel Server Activities
|
||||
description: Cancel Server Activities
|
||||
operationId: cancelServerActivities
|
||||
parameters:
|
||||
- name: activityUUID
|
||||
description: The UUID of the activity to cancel.
|
||||
in: path
|
||||
schema:
|
||||
type: string
|
||||
example: 25b71ed5-0f9d-461c-baa7-d404e9e10d3e
|
||||
required: true
|
||||
responses:
|
||||
'200':
|
||||
description: The Server Activity was canceled
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_1
|
||||
'401':
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
/updater/status:
|
||||
get:
|
||||
tags:
|
||||
- Updater
|
||||
summary: Querying status of updates
|
||||
description: Querying status of updates
|
||||
operationId: queryingUpdateStatus
|
||||
responses:
|
||||
'200':
|
||||
description: The Server Updates
|
||||
'401':
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
/updater/check:
|
||||
put:
|
||||
tags:
|
||||
- Updater
|
||||
summary: Checking for updates
|
||||
description: Checking for updates
|
||||
operationId: checkingforUpdates
|
||||
parameters:
|
||||
- name: download
|
||||
description: Indicate that you want to start download any updates found.
|
||||
required: false
|
||||
in: query
|
||||
schema:
|
||||
enum:
|
||||
- 0
|
||||
- 1
|
||||
example: 1
|
||||
responses:
|
||||
'200':
|
||||
description: ''
|
||||
'401':
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
/updater/apply:
|
||||
put:
|
||||
tags:
|
||||
- Updater
|
||||
summary: Applying updates
|
||||
description: |
|
||||
Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed
|
||||
operationId: applyingUpdates
|
||||
parameters:
|
||||
- name: tonight
|
||||
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
|
||||
required: false
|
||||
in: query
|
||||
schema:
|
||||
enum:
|
||||
- 0
|
||||
- 1
|
||||
example: 1
|
||||
- name: skip
|
||||
description: Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`.
|
||||
required: false
|
||||
in: query
|
||||
schema:
|
||||
enum:
|
||||
- 0
|
||||
- 1
|
||||
example: 1
|
||||
responses:
|
||||
'200':
|
||||
description: If the update process started correctly
|
||||
'401':
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
'500':
|
||||
description: If the update process failed to start
|
||||
/butler:
|
||||
post:
|
||||
tags:
|
||||
- Butler
|
||||
summary: Start all Butler tasks
|
||||
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:
|
||||
1. Any tasks not scheduled to run on the current day will be skipped.
|
||||
2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
|
||||
3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
|
||||
4. If we are outside the configured window, the task will start immediately.
|
||||
operationId: startAllButlerTasks
|
||||
responses:
|
||||
'200':
|
||||
description: All tasks were started
|
||||
'401':
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
delete:
|
||||
tags:
|
||||
- Butler
|
||||
summary: Stop all Butler tasks
|
||||
description: |
|
||||
This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue.
|
||||
operationId: stopAllButlerTasks
|
||||
responses:
|
||||
'200':
|
||||
description: All tasks were stopped
|
||||
'401':
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
/butler/{taskName}:
|
||||
post:
|
||||
tags:
|
||||
- Butler
|
||||
summary: Start a single Butler task
|
||||
description: |
|
||||
This endpoint will attempt to start a single Butler task that is 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:
|
||||
1. Any tasks not scheduled to run on the current day will be skipped.
|
||||
2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
|
||||
3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
|
||||
4. If we are outside the configured window, the task will start immediately.
|
||||
operationId: startAButlerTasks
|
||||
parameters:
|
||||
- name: taskName
|
||||
description: the name of the task to be started.
|
||||
in: path
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- BackupDatabase
|
||||
- BuildGracenoteCollections
|
||||
- CheckForUpdates
|
||||
- CleanOldBundles
|
||||
- CleanOldCacheFiles
|
||||
- DeepMediaAnalysis
|
||||
- GenerateAutoTags
|
||||
- GenerateChapterThumbs
|
||||
- GenerateMediaIndexFiles
|
||||
- OptimizeDatabase
|
||||
- RefreshLibraries
|
||||
- RefreshLocalMedia
|
||||
- RefreshPeriodicMetadata
|
||||
- UpgradeMediaAnalysis
|
||||
required: true
|
||||
responses:
|
||||
'200':
|
||||
description: The task was started successfully
|
||||
'202':
|
||||
description: The task was already running.
|
||||
'401':
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
delete:
|
||||
tags:
|
||||
- Butler
|
||||
summary: Stop a single Butler task
|
||||
description: |
|
||||
This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists. See the section above for a list of task names for this endpoint.
|
||||
operationId: stopAButlerTasks
|
||||
parameters:
|
||||
- name: taskName
|
||||
description: The name of the task to be started.
|
||||
in: path
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- BackupDatabase
|
||||
- BuildGracenoteCollections
|
||||
- CheckForUpdates
|
||||
- CleanOldBundles
|
||||
- CleanOldCacheFiles
|
||||
- DeepMediaAnalysis
|
||||
- GenerateAutoTags
|
||||
- GenerateChapterThumbs
|
||||
- GenerateMediaIndexFiles
|
||||
- OptimizeDatabase
|
||||
- RefreshLibraries
|
||||
- RefreshLocalMedia
|
||||
- RefreshPeriodicMetadata
|
||||
- UpgradeMediaAnalysis
|
||||
required: true
|
||||
responses:
|
||||
'200':
|
||||
description: The task was stopped
|
||||
'401':
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
'404':
|
||||
description: The task was not running
|
||||
tags:
|
||||
- name: Activities
|
||||
description: |
|
||||
Activities are awesome. They provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints.
|
||||
Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity.
|
||||
Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint. Other details:
|
||||
- They can contain a `progress` (from 0 to 100) marking the percent completion of the activity.
|
||||
- They must contain an `type` which is used by clients to distinguish the specific activity.
|
||||
- They may contain a `Context` object with attributes which associate the activity with various specific entities (items, libraries, etc.)
|
||||
- The may contain a `Response` object which attributes which represent the result of the asynchronous operation.
|
||||
- name: Butler
|
||||
description: |
|
||||
Butler is the task manager of the plex ecosystem.
|
||||
- name: Server
|
||||
description: |
|
||||
Operations against the Plex Media Server System.
|
||||
- name: Updater
|
||||
description: |
|
||||
This describes the API for searching and applying updates to the Plex Media Server.
|
||||
Updates to the status can be observed via the Event API.
|
||||
23
referenced/paths/activities-cancel.yaml
Normal file
23
referenced/paths/activities-cancel.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
delete:
|
||||
tags:
|
||||
- Activities
|
||||
summary: Cancel Server Activities
|
||||
description: Cancel Server Activities
|
||||
operationId: cancelServerActivities
|
||||
parameters:
|
||||
- name: activityUUID
|
||||
description: The UUID of the activity to cancel.
|
||||
in: path
|
||||
schema:
|
||||
type: string
|
||||
example: 25b71ed5-0f9d-461c-baa7-d404e9e10d3e
|
||||
required: true
|
||||
responses:
|
||||
"200":
|
||||
description: The Server Activity was canceled
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "../schemas/ServerActivities.yaml"
|
||||
"401":
|
||||
$ref: "../responses/401.yaml"
|
||||
15
referenced/paths/activities.yaml
Normal file
15
referenced/paths/activities.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
get:
|
||||
tags:
|
||||
- Activities
|
||||
summary: Server Activities
|
||||
description: Server Activities
|
||||
operationId: serverActivities
|
||||
responses:
|
||||
"200":
|
||||
description: The Server Activities
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "../schemas/ServerActivities.yaml"
|
||||
"401":
|
||||
$ref: "../responses/401.yaml"
|
||||
77
referenced/paths/butler-task.yaml
Normal file
77
referenced/paths/butler-task.yaml
Normal file
@@ -0,0 +1,77 @@
|
||||
post:
|
||||
tags:
|
||||
- Butler
|
||||
summary: Start a single Butler task
|
||||
description: |
|
||||
This endpoint will attempt to start a single Butler task that is 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:
|
||||
1. Any tasks not scheduled to run on the current day will be skipped.
|
||||
2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
|
||||
3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
|
||||
4. If we are outside the configured window, the task will start immediately.
|
||||
operationId: startAButlerTasks
|
||||
parameters:
|
||||
- name: taskName
|
||||
description: the name of the task to be started.
|
||||
in: path
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- BackupDatabase
|
||||
- BuildGracenoteCollections
|
||||
- CheckForUpdates
|
||||
- CleanOldBundles
|
||||
- CleanOldCacheFiles
|
||||
- DeepMediaAnalysis
|
||||
- GenerateAutoTags
|
||||
- GenerateChapterThumbs
|
||||
- GenerateMediaIndexFiles
|
||||
- OptimizeDatabase
|
||||
- RefreshLibraries
|
||||
- RefreshLocalMedia
|
||||
- RefreshPeriodicMetadata
|
||||
- UpgradeMediaAnalysis
|
||||
required: true
|
||||
responses:
|
||||
"200":
|
||||
description: The task was started successfully
|
||||
"401":
|
||||
$ref: "../responses/401.yaml"
|
||||
"202":
|
||||
description: The task was already running.
|
||||
|
||||
delete:
|
||||
tags:
|
||||
- Butler
|
||||
summary: Stop a single Butler task
|
||||
description: |
|
||||
This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists. See the section above for a list of task names for this endpoint.
|
||||
operationId: stopAButlerTasks
|
||||
parameters:
|
||||
- name: taskName
|
||||
description: The name of the task to be started.
|
||||
in: path
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- BackupDatabase
|
||||
- BuildGracenoteCollections
|
||||
- CheckForUpdates
|
||||
- CleanOldBundles
|
||||
- CleanOldCacheFiles
|
||||
- DeepMediaAnalysis
|
||||
- GenerateAutoTags
|
||||
- GenerateChapterThumbs
|
||||
- GenerateMediaIndexFiles
|
||||
- OptimizeDatabase
|
||||
- RefreshLibraries
|
||||
- RefreshLocalMedia
|
||||
- RefreshPeriodicMetadata
|
||||
- UpgradeMediaAnalysis
|
||||
required: true
|
||||
responses:
|
||||
"200":
|
||||
description: The task was stopped
|
||||
"401":
|
||||
$ref: "../responses/401.yaml"
|
||||
"404":
|
||||
description: The task was not running
|
||||
29
referenced/paths/butler.yaml
Normal file
29
referenced/paths/butler.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
post:
|
||||
tags:
|
||||
- Butler
|
||||
summary: Start all Butler tasks
|
||||
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:
|
||||
1. Any tasks not scheduled to run on the current day will be skipped.
|
||||
2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
|
||||
3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
|
||||
4. If we are outside the configured window, the task will start immediately.
|
||||
operationId: startAllButlerTasks
|
||||
responses:
|
||||
"200":
|
||||
description: All tasks were started
|
||||
"401":
|
||||
$ref: "../responses/401.yaml"
|
||||
|
||||
delete:
|
||||
tags:
|
||||
- Butler
|
||||
summary: Stop all Butler tasks
|
||||
description: |
|
||||
This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue.
|
||||
operationId: stopAllButlerTasks
|
||||
responses:
|
||||
"200":
|
||||
description: All tasks were stopped
|
||||
"401":
|
||||
$ref: "../responses/401.yaml"
|
||||
15
referenced/paths/root.yaml
Normal file
15
referenced/paths/root.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
get:
|
||||
tags:
|
||||
- Server
|
||||
summary: Server Capabilities
|
||||
description: Server Capabilities
|
||||
operationId: serverCapabilities
|
||||
responses:
|
||||
"200":
|
||||
description: The Server Capabilities
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "../schemas/ServerCapabilities.yaml"
|
||||
"401":
|
||||
$ref: "../responses/401.yaml"
|
||||
33
referenced/paths/updater-apply.yaml
Normal file
33
referenced/paths/updater-apply.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
put:
|
||||
tags:
|
||||
- Updater
|
||||
summary: Applying updates
|
||||
description: |
|
||||
Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed
|
||||
operationId: applyingUpdates
|
||||
parameters:
|
||||
- name: tonight
|
||||
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
|
||||
required: false
|
||||
in: query
|
||||
schema:
|
||||
enum:
|
||||
- 0
|
||||
- 1
|
||||
example: 1
|
||||
- name: skip
|
||||
description: Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`.
|
||||
required: false
|
||||
in: query
|
||||
schema:
|
||||
enum:
|
||||
- 0
|
||||
- 1
|
||||
example: 1
|
||||
responses:
|
||||
"200":
|
||||
description: If the update process started correctly
|
||||
"401":
|
||||
$ref: "../responses/401.yaml"
|
||||
"500":
|
||||
description: If the update process failed to start
|
||||
21
referenced/paths/updater-check.yaml
Normal file
21
referenced/paths/updater-check.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
put:
|
||||
tags:
|
||||
- Updater
|
||||
summary: Checking for updates
|
||||
description: Checking for updates
|
||||
operationId: checkingforUpdates
|
||||
parameters:
|
||||
- name: download
|
||||
description: Indicate that you want to start download any updates found.
|
||||
required: false
|
||||
in: query
|
||||
schema:
|
||||
enum:
|
||||
- 0
|
||||
- 1
|
||||
example: 1
|
||||
responses:
|
||||
"200":
|
||||
description: ""
|
||||
"401":
|
||||
$ref: "../responses/401.yaml"
|
||||
11
referenced/paths/updater-status.yaml
Normal file
11
referenced/paths/updater-status.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
get:
|
||||
tags:
|
||||
- Updater
|
||||
summary: Querying status of updates
|
||||
description: Querying status of updates
|
||||
operationId: queryingUpdateStatus
|
||||
responses:
|
||||
"200":
|
||||
description: The Server Updates
|
||||
"401":
|
||||
$ref: "../responses/401.yaml"
|
||||
75
referenced/plex-api-spec.yaml
Normal file
75
referenced/plex-api-spec.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
openapi: 3.0.1
|
||||
|
||||
info:
|
||||
title: Plex-API
|
||||
description: An Open API Spec for interacting with Plex.tv and Plex Servers
|
||||
version: "0.0.1"
|
||||
contact:
|
||||
name: Luke Hagar
|
||||
email: Lukeslakemail@gmail.com
|
||||
url: "https://www.LukeHagar.com"
|
||||
|
||||
servers:
|
||||
- url: "{Protocol}://{Local IP}:{Port}"
|
||||
variables:
|
||||
Protocol:
|
||||
enum:
|
||||
- http
|
||||
- https
|
||||
default: http
|
||||
description: The protocl to use with your plex server
|
||||
Local IP:
|
||||
default: 10.10.10.47
|
||||
description: The Local IP Address of your plex server
|
||||
Port:
|
||||
default: "32400"
|
||||
description: The port to access your plex server
|
||||
|
||||
security:
|
||||
- PlexToken: []
|
||||
|
||||
components:
|
||||
securitySchemes:
|
||||
PlexToken: # arbitrary name for the security scheme
|
||||
type: apiKey
|
||||
in: header # can be "header", "query" or "cookie"
|
||||
name: X-Plex-Token # name of the header, query parameter or cookie
|
||||
|
||||
paths:
|
||||
/:
|
||||
$ref: "./paths/root.yaml"
|
||||
/activities:
|
||||
$ref: "./paths/activities.yaml"
|
||||
/activities/{activityUUID}:
|
||||
$ref: "./paths/activities-cancel.yaml"
|
||||
/updater/status:
|
||||
$ref: "./paths/updater-status.yaml"
|
||||
/updater/check:
|
||||
$ref: "./paths/updater-check.yaml"
|
||||
/updater/apply:
|
||||
$ref: "./paths/updater-apply.yaml"
|
||||
/butler:
|
||||
$ref: "./paths/butler.yaml"
|
||||
/butler/{taskName}:
|
||||
$ref: "./paths/butler-task.yaml"
|
||||
|
||||
tags:
|
||||
- name: Activities
|
||||
description: |
|
||||
Activities are awesome. They provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints.
|
||||
Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity.
|
||||
Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint. Other details:
|
||||
- They can contain a `progress` (from 0 to 100) marking the percent completion of the activity.
|
||||
- They must contain an `type` which is used by clients to distinguish the specific activity.
|
||||
- They may contain a `Context` object with attributes which associate the activity with various specific entities (items, libraries, etc.)
|
||||
- The may contain a `Response` object which attributes which represent the result of the asynchronous operation.
|
||||
- name: Butler
|
||||
description: |
|
||||
Butler is the task manager of the Plex Media Server Ecosystem.
|
||||
- name: Server
|
||||
description: |
|
||||
Operations against the Plex Media Server System.
|
||||
- name: Updater
|
||||
description: |
|
||||
This describes the API for searching and applying updates to the Plex Media Server.
|
||||
Updates to the status can be observed via the Event API.
|
||||
1
referenced/responses/401.yaml
Normal file
1
referenced/responses/401.yaml
Normal file
@@ -0,0 +1 @@
|
||||
description: Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
31
referenced/schemas/ServerActivities.yaml
Normal file
31
referenced/schemas/ServerActivities.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
type: object
|
||||
properties:
|
||||
MediaContainer:
|
||||
type: object
|
||||
properties:
|
||||
size:
|
||||
type: number
|
||||
Activity:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
uuid:
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
cancellable:
|
||||
type: boolean
|
||||
userID:
|
||||
type: number
|
||||
title:
|
||||
type: string
|
||||
subtitle:
|
||||
type: string
|
||||
progress:
|
||||
type: number
|
||||
Context:
|
||||
type: object
|
||||
properties:
|
||||
librarySectionID:
|
||||
type: string
|
||||
116
referenced/schemas/ServerCapabilities.yaml
Normal file
116
referenced/schemas/ServerCapabilities.yaml
Normal file
@@ -0,0 +1,116 @@
|
||||
type: object
|
||||
properties:
|
||||
MediaContainer:
|
||||
type: object
|
||||
properties:
|
||||
size:
|
||||
type: number
|
||||
allowCameraUpload:
|
||||
type: boolean
|
||||
allowChannelAccess:
|
||||
type: boolean
|
||||
allowMediaDeletion:
|
||||
type: boolean
|
||||
allowSharing:
|
||||
type: boolean
|
||||
allowSync:
|
||||
type: boolean
|
||||
allowTuners:
|
||||
type: boolean
|
||||
backgroundProcessing:
|
||||
type: boolean
|
||||
certificate:
|
||||
type: boolean
|
||||
companionProxy:
|
||||
type: boolean
|
||||
countryCode:
|
||||
type: string
|
||||
diagnostics:
|
||||
type: string
|
||||
eventStream:
|
||||
type: boolean
|
||||
friendlyName:
|
||||
type: string
|
||||
hubSearch:
|
||||
type: boolean
|
||||
itemClusters:
|
||||
type: boolean
|
||||
livetv:
|
||||
type: number
|
||||
machineIdentifier:
|
||||
type: string
|
||||
mediaProviders:
|
||||
type: boolean
|
||||
multiuser:
|
||||
type: boolean
|
||||
musicAnalysis:
|
||||
type: number
|
||||
myPlex:
|
||||
type: boolean
|
||||
myPlexMappingState:
|
||||
type: string
|
||||
myPlexSigninState:
|
||||
type: string
|
||||
myPlexSubscription:
|
||||
type: boolean
|
||||
myPlexUsername:
|
||||
type: string
|
||||
offlineTranscode:
|
||||
type: number
|
||||
ownerFeatures:
|
||||
type: string
|
||||
photoAutoTag:
|
||||
type: boolean
|
||||
platform:
|
||||
type: string
|
||||
platformVersion:
|
||||
type: string
|
||||
pluginHost:
|
||||
type: boolean
|
||||
pushNotifications:
|
||||
type: boolean
|
||||
readOnlyLibraries:
|
||||
type: boolean
|
||||
streamingBrainABRVersion:
|
||||
type: number
|
||||
streamingBrainVersion:
|
||||
type: number
|
||||
sync:
|
||||
type: boolean
|
||||
transcoderActiveVideoSessions:
|
||||
type: number
|
||||
transcoderAudio:
|
||||
type: boolean
|
||||
transcoderLyrics:
|
||||
type: boolean
|
||||
transcoderPhoto:
|
||||
type: boolean
|
||||
transcoderSubtitles:
|
||||
type: boolean
|
||||
transcoderVideo:
|
||||
type: boolean
|
||||
transcoderVideoBitrates:
|
||||
type: string
|
||||
transcoderVideoQualities:
|
||||
type: string
|
||||
transcoderVideoResolutions:
|
||||
type: string
|
||||
updatedAt:
|
||||
type: number
|
||||
updater:
|
||||
type: boolean
|
||||
version:
|
||||
type: string
|
||||
voiceSearch:
|
||||
type: boolean
|
||||
Directory:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
count:
|
||||
type: number
|
||||
key:
|
||||
type: string
|
||||
title:
|
||||
type: string
|
||||
Reference in New Issue
Block a user