Created
November 16, 2023 14:14
-
-
Save kmcquade/be7a19b5ee320a11e81078758c171261 to your computer and use it in GitHub Desktop.
11/16/2023 download of Jellyfin's Swagger doc. https://api.jellyfin.org/openapi/jellyfin-openapi-stable.json
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"openapi": "3.0.1", | |
"info": { | |
"title": "Jellyfin API", | |
"version": "10.8.12", | |
"x-jellyfin-version": "10.8.12" | |
}, | |
"servers": [ | |
{ | |
"url": "http://localhost" | |
} | |
], | |
"paths": { | |
"/System/ActivityLog/Entries": { | |
"get": { | |
"tags": [ | |
"ActivityLog" | |
], | |
"summary": "Gets activity log entries.", | |
"operationId": "GetLogEntries", | |
"parameters": [ | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minDate", | |
"in": "query", | |
"description": "Optional. The minimum date. Format = ISO.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "hasUserId", | |
"in": "query", | |
"description": "Optional. Filter log entries if it has user id, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Activity log returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ActivityLogEntryQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ActivityLogEntryQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ActivityLogEntryQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Auth/Keys": { | |
"get": { | |
"tags": [ | |
"ApiKey" | |
], | |
"summary": "Get all keys.", | |
"operationId": "GetKeys", | |
"responses": { | |
"200": { | |
"description": "Api keys retrieved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/AuthenticationInfoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/AuthenticationInfoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/AuthenticationInfoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"ApiKey" | |
], | |
"summary": "Create a new api key.", | |
"operationId": "CreateKey", | |
"parameters": [ | |
{ | |
"name": "app", | |
"in": "query", | |
"description": "Name of the app using the authentication key.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Api key created." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Auth/Keys/{key}": { | |
"delete": { | |
"tags": [ | |
"ApiKey" | |
], | |
"summary": "Remove an api key.", | |
"operationId": "RevokeKey", | |
"parameters": [ | |
{ | |
"name": "key", | |
"in": "path", | |
"description": "The access token to delete.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Api key deleted." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Artists": { | |
"get": { | |
"tags": [ | |
"Artists" | |
], | |
"summary": "Gets all artists from a given item, folder, or the entire library.", | |
"operationId": "GetArtists", | |
"parameters": [ | |
{ | |
"name": "minCommunityRating", | |
"in": "query", | |
"description": "Optional filter by minimum community rating.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "searchTerm", | |
"in": "query", | |
"description": "Optional. Search term.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "parentId", | |
"in": "query", | |
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "excludeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "includeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "filters", | |
"in": "query", | |
"description": "Optional. Specify additional filters to apply.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFilter" | |
} | |
} | |
}, | |
{ | |
"name": "isFavorite", | |
"in": "query", | |
"description": "Optional filter by items that are marked as favorite, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "mediaTypes", | |
"in": "query", | |
"description": "Optional filter by MediaType. Allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "genres", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "genreIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "officialRatings", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "tags", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "years", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional, include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional, the max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "person", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified person.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "personIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "personTypes", | |
"in": "query", | |
"description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "studios", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "studioIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "User id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "nameStartsWithOrGreater", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameStartsWith", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameLessThan", | |
"in": "query", | |
"description": "Optional filter by items whose name is equally or lesser than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "sortBy", | |
"in": "query", | |
"description": "Optional. Specify one or more sort orders, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "sortOrder", | |
"in": "query", | |
"description": "Sort Order - Ascending,Descending.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/SortOrder" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional, include image information in output.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
}, | |
{ | |
"name": "enableTotalRecordCount", | |
"in": "query", | |
"description": "Total record count.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Artists returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Artists/{name}": { | |
"get": { | |
"tags": [ | |
"Artists" | |
], | |
"summary": "Gets an artist by name.", | |
"operationId": "GetArtistByName", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Studio name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Artist returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Artists/AlbumArtists": { | |
"get": { | |
"tags": [ | |
"Artists" | |
], | |
"summary": "Gets all album artists from a given item, folder, or the entire library.", | |
"operationId": "GetAlbumArtists", | |
"parameters": [ | |
{ | |
"name": "minCommunityRating", | |
"in": "query", | |
"description": "Optional filter by minimum community rating.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "searchTerm", | |
"in": "query", | |
"description": "Optional. Search term.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "parentId", | |
"in": "query", | |
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "excludeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "includeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "filters", | |
"in": "query", | |
"description": "Optional. Specify additional filters to apply.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFilter" | |
} | |
} | |
}, | |
{ | |
"name": "isFavorite", | |
"in": "query", | |
"description": "Optional filter by items that are marked as favorite, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "mediaTypes", | |
"in": "query", | |
"description": "Optional filter by MediaType. Allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "genres", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "genreIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "officialRatings", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "tags", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "years", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional, include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional, the max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "person", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified person.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "personIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "personTypes", | |
"in": "query", | |
"description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "studios", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "studioIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "User id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "nameStartsWithOrGreater", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameStartsWith", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameLessThan", | |
"in": "query", | |
"description": "Optional filter by items whose name is equally or lesser than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "sortBy", | |
"in": "query", | |
"description": "Optional. Specify one or more sort orders, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "sortOrder", | |
"in": "query", | |
"description": "Sort Order - Ascending,Descending.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/SortOrder" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional, include image information in output.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
}, | |
{ | |
"name": "enableTotalRecordCount", | |
"in": "query", | |
"description": "Total record count.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Album artists returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Audio/{itemId}/stream": { | |
"get": { | |
"tags": [ | |
"Audio" | |
], | |
"summary": "Gets an audio stream.", | |
"operationId": "GetAudioStream", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "container", | |
"in": "query", | |
"description": "The audio container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment length.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamorphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Audio stream returned.", | |
"content": { | |
"audio/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Audio" | |
], | |
"summary": "Gets an audio stream.", | |
"operationId": "HeadAudioStream", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "container", | |
"in": "query", | |
"description": "The audio container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment length.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamorphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Audio stream returned.", | |
"content": { | |
"audio/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Audio/{itemId}/stream.{container}": { | |
"get": { | |
"tags": [ | |
"Audio" | |
], | |
"summary": "Gets an audio stream.", | |
"operationId": "GetAudioStreamByContainer", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "container", | |
"in": "path", | |
"description": "The audio container.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment lenght.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamporphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Audio stream returned.", | |
"content": { | |
"audio/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Audio" | |
], | |
"summary": "Gets an audio stream.", | |
"operationId": "HeadAudioStreamByContainer", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "container", | |
"in": "path", | |
"description": "The audio container.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment lenght.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamporphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Audio stream returned.", | |
"content": { | |
"audio/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Branding/Configuration": { | |
"get": { | |
"tags": [ | |
"Branding" | |
], | |
"summary": "Gets branding configuration.", | |
"operationId": "GetBrandingOptions", | |
"responses": { | |
"200": { | |
"description": "Branding configuration returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BrandingOptions" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BrandingOptions" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BrandingOptions" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Branding/Css": { | |
"get": { | |
"tags": [ | |
"Branding" | |
], | |
"summary": "Gets branding css.", | |
"operationId": "GetBrandingCss", | |
"responses": { | |
"200": { | |
"description": "Branding css returned.", | |
"content": { | |
"text/css": { | |
"schema": { | |
"type": "string" | |
} | |
}, | |
"application/json": { | |
"schema": { | |
"type": "string" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "string" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"204": { | |
"description": "No branding css configured." | |
} | |
} | |
} | |
}, | |
"/Branding/Css.css": { | |
"get": { | |
"tags": [ | |
"Branding" | |
], | |
"summary": "Gets branding css.", | |
"operationId": "GetBrandingCss_2", | |
"responses": { | |
"200": { | |
"description": "Branding css returned.", | |
"content": { | |
"text/css": { | |
"schema": { | |
"type": "string" | |
} | |
}, | |
"application/json": { | |
"schema": { | |
"type": "string" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "string" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"204": { | |
"description": "No branding css configured." | |
} | |
} | |
} | |
}, | |
"/Channels": { | |
"get": { | |
"tags": [ | |
"Channels" | |
], | |
"summary": "Gets available channels.", | |
"operationId": "GetChannels", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "User Id to filter by. Use System.Guid.Empty to not filter by user.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "supportsLatestItems", | |
"in": "query", | |
"description": "Optional. Filter by channels that support getting latest items.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "supportsMediaDeletion", | |
"in": "query", | |
"description": "Optional. Filter by channels that support media deletion.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isFavorite", | |
"in": "query", | |
"description": "Optional. Filter by channels that are favorite.", | |
"schema": { | |
"type": "boolean" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Channels returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Channels/{channelId}/Features": { | |
"get": { | |
"tags": [ | |
"Channels" | |
], | |
"summary": "Get channel features.", | |
"operationId": "GetChannelFeatures", | |
"parameters": [ | |
{ | |
"name": "channelId", | |
"in": "path", | |
"description": "Channel id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Channel features returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ChannelFeatures" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ChannelFeatures" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ChannelFeatures" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Channels/{channelId}/Items": { | |
"get": { | |
"tags": [ | |
"Channels" | |
], | |
"summary": "Get channel items.", | |
"operationId": "GetChannelItems", | |
"parameters": [ | |
{ | |
"name": "channelId", | |
"in": "path", | |
"description": "Channel Id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "folderId", | |
"in": "query", | |
"description": "Optional. Folder Id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. User Id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "sortOrder", | |
"in": "query", | |
"description": "Optional. Sort Order - Ascending,Descending.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/SortOrder" | |
} | |
} | |
}, | |
{ | |
"name": "filters", | |
"in": "query", | |
"description": "Optional. Specify additional filters to apply.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFilter" | |
} | |
} | |
}, | |
{ | |
"name": "sortBy", | |
"in": "query", | |
"description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Channel items returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Channels/Features": { | |
"get": { | |
"tags": [ | |
"Channels" | |
], | |
"summary": "Get all channel features.", | |
"operationId": "GetAllChannelFeatures", | |
"responses": { | |
"200": { | |
"description": "All channel features returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ChannelFeatures" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ChannelFeatures" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ChannelFeatures" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Channels/Items/Latest": { | |
"get": { | |
"tags": [ | |
"Channels" | |
], | |
"summary": "Gets latest channel items.", | |
"operationId": "GetLatestChannelItems", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. User Id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "filters", | |
"in": "query", | |
"description": "Optional. Specify additional filters to apply.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFilter" | |
} | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "channelIds", | |
"in": "query", | |
"description": "Optional. Specify one or more channel id's, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Latest channel items returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/ClientLog/Document": { | |
"post": { | |
"tags": [ | |
"ClientLog" | |
], | |
"summary": "Upload a document.", | |
"operationId": "LogFile", | |
"requestBody": { | |
"content": { | |
"text/plain": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "Document saved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ClientLogDocumentResponseDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ClientLogDocumentResponseDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ClientLogDocumentResponseDto" | |
} | |
} | |
} | |
}, | |
"403": { | |
"description": "Event logging disabled.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"413": { | |
"description": "Upload size too large.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Collections": { | |
"post": { | |
"tags": [ | |
"Collection" | |
], | |
"summary": "Creates a new collection.", | |
"operationId": "CreateCollection", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "query", | |
"description": "The name of the collection.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "ids", | |
"in": "query", | |
"description": "Item Ids to add to the collection.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "parentId", | |
"in": "query", | |
"description": "Optional. Create the collection within a specific folder.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "isLocked", | |
"in": "query", | |
"description": "Whether or not to lock the new collection.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Collection created.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/CollectionCreationResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/CollectionCreationResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/CollectionCreationResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Collections/{collectionId}/Items": { | |
"post": { | |
"tags": [ | |
"Collection" | |
], | |
"summary": "Adds items to a collection.", | |
"operationId": "AddToCollection", | |
"parameters": [ | |
{ | |
"name": "collectionId", | |
"in": "path", | |
"description": "The collection id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "ids", | |
"in": "query", | |
"description": "Item ids, comma delimited.", | |
"required": true, | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Items added to collection." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"Collection" | |
], | |
"summary": "Removes items from a collection.", | |
"operationId": "RemoveFromCollection", | |
"parameters": [ | |
{ | |
"name": "collectionId", | |
"in": "path", | |
"description": "The collection id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "ids", | |
"in": "query", | |
"description": "Item ids, comma delimited.", | |
"required": true, | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Items removed from collection." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/System/Configuration": { | |
"get": { | |
"tags": [ | |
"Configuration" | |
], | |
"summary": "Gets application configuration.", | |
"operationId": "GetConfiguration", | |
"responses": { | |
"200": { | |
"description": "Application configuration returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ServerConfiguration" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ServerConfiguration" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ServerConfiguration" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"Configuration" | |
], | |
"summary": "Updates application configuration.", | |
"operationId": "UpdateConfiguration", | |
"requestBody": { | |
"description": "Configuration.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ServerConfiguration" | |
} | |
], | |
"description": "Represents the server configuration." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ServerConfiguration" | |
} | |
], | |
"description": "Represents the server configuration." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ServerConfiguration" | |
} | |
], | |
"description": "Represents the server configuration." | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Configuration updated." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation", | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/System/Configuration/{key}": { | |
"get": { | |
"tags": [ | |
"Configuration" | |
], | |
"summary": "Gets a named configuration.", | |
"operationId": "GetNamedConfiguration", | |
"parameters": [ | |
{ | |
"name": "key", | |
"in": "path", | |
"description": "Configuration key.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Configuration returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"Configuration" | |
], | |
"summary": "Updates named configuration.", | |
"operationId": "UpdateNamedConfiguration", | |
"parameters": [ | |
{ | |
"name": "key", | |
"in": "path", | |
"description": "Configuration key.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"requestBody": { | |
"description": "Configuration.", | |
"content": { | |
"application/json": { | |
"schema": { } | |
}, | |
"text/json": { | |
"schema": { } | |
}, | |
"application/*+json": { | |
"schema": { } | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Named configuration updated." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation", | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/System/Configuration/MetadataOptions/Default": { | |
"get": { | |
"tags": [ | |
"Configuration" | |
], | |
"summary": "Gets a default MetadataOptions object.", | |
"operationId": "GetDefaultMetadataOptions", | |
"responses": { | |
"200": { | |
"description": "Metadata options returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/MetadataOptions" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/MetadataOptions" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/MetadataOptions" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation", | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/System/MediaEncoder/Path": { | |
"post": { | |
"tags": [ | |
"Configuration" | |
], | |
"summary": "Updates the path to the media encoder.", | |
"operationId": "UpdateMediaEncoderPath", | |
"requestBody": { | |
"description": "Media encoder path form body.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MediaEncoderPathDto" | |
} | |
], | |
"description": "Media Encoder Path Dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MediaEncoderPathDto" | |
} | |
], | |
"description": "Media Encoder Path Dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MediaEncoderPathDto" | |
} | |
], | |
"description": "Media Encoder Path Dto." | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Media encoder path updated." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated", | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/web/ConfigurationPage": { | |
"get": { | |
"tags": [ | |
"Dashboard" | |
], | |
"summary": "Gets a dashboard configuration page.", | |
"operationId": "GetDashboardConfigurationPage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "query", | |
"description": "The name of the page.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "ConfigurationPage returned.", | |
"content": { | |
"text/html": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
}, | |
"application/x-javascript": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Plugin configuration page not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/web/ConfigurationPages": { | |
"get": { | |
"tags": [ | |
"Dashboard" | |
], | |
"summary": "Gets the configuration pages.", | |
"operationId": "GetConfigurationPages", | |
"parameters": [ | |
{ | |
"name": "enableInMainMenu", | |
"in": "query", | |
"description": "Whether to enable in the main menu.", | |
"schema": { | |
"type": "boolean" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "ConfigurationPages returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ConfigurationPageInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ConfigurationPageInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ConfigurationPageInfo" | |
} | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Server still loading.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Devices": { | |
"get": { | |
"tags": [ | |
"Devices" | |
], | |
"summary": "Get Devices.", | |
"operationId": "GetDevices", | |
"parameters": [ | |
{ | |
"name": "supportsSync", | |
"in": "query", | |
"description": "Gets or sets a value indicating whether [supports synchronize].", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Gets or sets the user identifier.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Devices retrieved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceInfoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceInfoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceInfoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"Devices" | |
], | |
"summary": "Deletes a device.", | |
"operationId": "DeleteDevice", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "query", | |
"description": "Device Id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Device deleted." | |
}, | |
"404": { | |
"description": "Device not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Devices/Info": { | |
"get": { | |
"tags": [ | |
"Devices" | |
], | |
"summary": "Get info for a device.", | |
"operationId": "GetDeviceInfo", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "query", | |
"description": "Device Id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Device info retrieved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceInfo" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceInfo" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceInfo" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Device not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Devices/Options": { | |
"get": { | |
"tags": [ | |
"Devices" | |
], | |
"summary": "Get options for a device.", | |
"operationId": "GetDeviceOptions", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "query", | |
"description": "Device Id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Device options retrieved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceOptions" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceOptions" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceOptions" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Device not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"Devices" | |
], | |
"summary": "Update device options.", | |
"operationId": "UpdateDeviceOptions", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "query", | |
"description": "Device Id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"requestBody": { | |
"description": "Device Options.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DeviceOptionsDto" | |
} | |
], | |
"description": "A dto representing custom options for a device." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DeviceOptionsDto" | |
} | |
], | |
"description": "A dto representing custom options for a device." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DeviceOptionsDto" | |
} | |
], | |
"description": "A dto representing custom options for a device." | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Device options updated." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/DisplayPreferences/{displayPreferencesId}": { | |
"get": { | |
"tags": [ | |
"DisplayPreferences" | |
], | |
"summary": "Get Display Preferences.", | |
"operationId": "GetDisplayPreferences", | |
"parameters": [ | |
{ | |
"name": "displayPreferencesId", | |
"in": "path", | |
"description": "Display preferences id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "User id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "client", | |
"in": "query", | |
"description": "Client.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Display preferences retrieved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/DisplayPreferencesDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DisplayPreferencesDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DisplayPreferencesDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"DisplayPreferences" | |
], | |
"summary": "Update Display Preferences.", | |
"operationId": "UpdateDisplayPreferences", | |
"parameters": [ | |
{ | |
"name": "displayPreferencesId", | |
"in": "path", | |
"description": "Display preferences id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "User Id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "client", | |
"in": "query", | |
"description": "Client.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"requestBody": { | |
"description": "New Display Preferences object.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DisplayPreferencesDto" | |
} | |
], | |
"description": "Defines the display preferences for any item that supports them (usually Folders)." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DisplayPreferencesDto" | |
} | |
], | |
"description": "Defines the display preferences for any item that supports them (usually Folders)." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DisplayPreferencesDto" | |
} | |
], | |
"description": "Defines the display preferences for any item that supports them (usually Folders)." | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Display preferences updated." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/ProfileInfos": { | |
"get": { | |
"tags": [ | |
"Dlna" | |
], | |
"summary": "Get profile infos.", | |
"operationId": "GetProfileInfos", | |
"responses": { | |
"200": { | |
"description": "Device profile infos returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/DeviceProfileInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/DeviceProfileInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/DeviceProfileInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/Profiles": { | |
"post": { | |
"tags": [ | |
"Dlna" | |
], | |
"summary": "Creates a profile.", | |
"operationId": "CreateProfile", | |
"requestBody": { | |
"description": "Device profile.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
], | |
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
], | |
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
], | |
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Device profile created." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/Profiles/{profileId}": { | |
"get": { | |
"tags": [ | |
"Dlna" | |
], | |
"summary": "Gets a single profile.", | |
"operationId": "GetProfile", | |
"parameters": [ | |
{ | |
"name": "profileId", | |
"in": "path", | |
"description": "Profile Id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Device profile returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Device profile not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"Dlna" | |
], | |
"summary": "Deletes a profile.", | |
"operationId": "DeleteProfile", | |
"parameters": [ | |
{ | |
"name": "profileId", | |
"in": "path", | |
"description": "Profile id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Device profile deleted." | |
}, | |
"404": { | |
"description": "Device profile not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"Dlna" | |
], | |
"summary": "Updates a profile.", | |
"operationId": "UpdateProfile", | |
"parameters": [ | |
{ | |
"name": "profileId", | |
"in": "path", | |
"description": "Profile id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"requestBody": { | |
"description": "Device profile.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
], | |
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
], | |
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
], | |
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Device profile updated." | |
}, | |
"404": { | |
"description": "Device profile not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/Profiles/Default": { | |
"get": { | |
"tags": [ | |
"Dlna" | |
], | |
"summary": "Gets the default profile.", | |
"operationId": "GetDefaultProfile", | |
"responses": { | |
"200": { | |
"description": "Default device profile returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DeviceProfile" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/ConnectionManager": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Gets Dlna media receiver registrar xml.", | |
"operationId": "GetConnectionManager", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Dlna media receiver registrar xml returned.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/ConnectionManager/ConnectionManager": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Gets Dlna media receiver registrar xml.", | |
"operationId": "GetConnectionManager_2", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Dlna media receiver registrar xml returned.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/ConnectionManager/ConnectionManager.xml": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Gets Dlna media receiver registrar xml.", | |
"operationId": "GetConnectionManager_3", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Dlna media receiver registrar xml returned.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/ConnectionManager/Control": { | |
"post": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Process a connection manager control request.", | |
"operationId": "ProcessConnectionManagerControlRequest", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Request processed.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/ContentDirectory": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Gets Dlna content directory xml.", | |
"operationId": "GetContentDirectory", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Dlna content directory returned.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/ContentDirectory/ContentDirectory": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Gets Dlna content directory xml.", | |
"operationId": "GetContentDirectory_2", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Dlna content directory returned.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/ContentDirectory/ContentDirectory.xml": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Gets Dlna content directory xml.", | |
"operationId": "GetContentDirectory_3", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Dlna content directory returned.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/ContentDirectory/Control": { | |
"post": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Process a content directory control request.", | |
"operationId": "ProcessContentDirectoryControlRequest", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Request processed.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/description": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Get Description Xml.", | |
"operationId": "GetDescriptionXml", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Description xml returned.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/description.xml": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Get Description Xml.", | |
"operationId": "GetDescriptionXml_2", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Description xml returned.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/icons/{fileName}": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Gets a server icon.", | |
"operationId": "GetIconId", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "fileName", | |
"in": "path", | |
"description": "The icon filename.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Request processed.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Not Found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/MediaReceiverRegistrar": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Gets Dlna media receiver registrar xml.", | |
"operationId": "GetMediaReceiverRegistrar", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Dlna media receiver registrar xml returned.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/MediaReceiverRegistrar/Control": { | |
"post": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Process a media receiver registrar control request.", | |
"operationId": "ProcessMediaReceiverRegistrarControlRequest", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Request processed.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Gets Dlna media receiver registrar xml.", | |
"operationId": "GetMediaReceiverRegistrar_2", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Dlna media receiver registrar xml returned.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar.xml": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Gets Dlna media receiver registrar xml.", | |
"operationId": "GetMediaReceiverRegistrar_3", | |
"parameters": [ | |
{ | |
"name": "serverId", | |
"in": "path", | |
"description": "Server UUID.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Dlna media receiver registrar xml returned.", | |
"content": { | |
"text/xml": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Dlna/icons/{fileName}": { | |
"get": { | |
"tags": [ | |
"DlnaServer" | |
], | |
"summary": "Gets a server icon.", | |
"operationId": "GetIcon", | |
"parameters": [ | |
{ | |
"name": "fileName", | |
"in": "path", | |
"description": "The icon filename.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Request processed.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Not Found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"503": { | |
"description": "DLNA is disabled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"AnonymousLanAccessPolicy" | |
] | |
} | |
] | |
} | |
}, | |
"/Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container}": { | |
"get": { | |
"tags": [ | |
"DynamicHls" | |
], | |
"summary": "Gets a video stream using HTTP live streaming.", | |
"operationId": "GetHlsAudioSegment", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "playlistId", | |
"in": "path", | |
"description": "The playlist id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentId", | |
"in": "path", | |
"description": "The segment id.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "container", | |
"in": "path", | |
"description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "runtimeTicks", | |
"in": "query", | |
"description": "The position of the requested segment in ticks.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "actualSegmentLengthTicks", | |
"in": "query", | |
"description": "The length of the requested segment in ticks.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment length.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxStreamingBitrate", | |
"in": "query", | |
"description": "Optional. The maximum streaming bitrate.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamorphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Video stream returned.", | |
"content": { | |
"audio/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Audio/{itemId}/main.m3u8": { | |
"get": { | |
"tags": [ | |
"DynamicHls" | |
], | |
"summary": "Gets an audio stream using HTTP live streaming.", | |
"operationId": "GetVariantHlsAudioPlaylist", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment length.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxStreamingBitrate", | |
"in": "query", | |
"description": "Optional. The maximum streaming bitrate.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamorphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Audio stream returned.", | |
"content": { | |
"application/x-mpegURL": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Audio/{itemId}/master.m3u8": { | |
"get": { | |
"tags": [ | |
"DynamicHls" | |
], | |
"summary": "Gets an audio hls playlist stream.", | |
"operationId": "GetMasterHlsAudioPlaylist", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment length.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxStreamingBitrate", | |
"in": "query", | |
"description": "Optional. The maximum streaming bitrate.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamorphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
}, | |
{ | |
"name": "enableAdaptiveBitrateStreaming", | |
"in": "query", | |
"description": "Enable adaptive bitrate streaming.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Audio stream returned.", | |
"content": { | |
"application/x-mpegURL": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"head": { | |
"tags": [ | |
"DynamicHls" | |
], | |
"summary": "Gets an audio hls playlist stream.", | |
"operationId": "HeadMasterHlsAudioPlaylist", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment length.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxStreamingBitrate", | |
"in": "query", | |
"description": "Optional. The maximum streaming bitrate.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamorphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
}, | |
{ | |
"name": "enableAdaptiveBitrateStreaming", | |
"in": "query", | |
"description": "Enable adaptive bitrate streaming.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Audio stream returned.", | |
"content": { | |
"application/x-mpegURL": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container}": { | |
"get": { | |
"tags": [ | |
"DynamicHls" | |
], | |
"summary": "Gets a video stream using HTTP live streaming.", | |
"operationId": "GetHlsVideoSegment", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "playlistId", | |
"in": "path", | |
"description": "The playlist id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentId", | |
"in": "path", | |
"description": "The segment id.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "container", | |
"in": "path", | |
"description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "runtimeTicks", | |
"in": "query", | |
"description": "The position of the requested segment in ticks.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "actualSegmentLengthTicks", | |
"in": "query", | |
"description": "The length of the requested segment in ticks.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The desired segment length.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "Optional. The maximum horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "Optional. The maximum vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamorphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Video stream returned.", | |
"content": { | |
"video/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Videos/{itemId}/live.m3u8": { | |
"get": { | |
"tags": [ | |
"DynamicHls" | |
], | |
"summary": "Gets a hls live stream.", | |
"operationId": "GetLiveHlsStream", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "container", | |
"in": "query", | |
"description": "The audio container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment lenght.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamorphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "Optional. The max width.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "Optional. The max height.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableSubtitlesInManifest", | |
"in": "query", | |
"description": "Optional. Whether to enable subtitles in the manifest.", | |
"schema": { | |
"type": "boolean" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Hls live stream retrieved.", | |
"content": { | |
"application/x-mpegURL": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Videos/{itemId}/main.m3u8": { | |
"get": { | |
"tags": [ | |
"DynamicHls" | |
], | |
"summary": "Gets a video stream using HTTP live streaming.", | |
"operationId": "GetVariantHlsVideoPlaylist", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment length.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "Optional. The maximum horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "Optional. The maximum vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamorphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Video stream returned.", | |
"content": { | |
"application/x-mpegURL": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Videos/{itemId}/master.m3u8": { | |
"get": { | |
"tags": [ | |
"DynamicHls" | |
], | |
"summary": "Gets a video hls playlist stream.", | |
"operationId": "GetMasterHlsVideoPlaylist", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment length.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "Optional. The maximum horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "Optional. The maximum vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamorphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
}, | |
{ | |
"name": "enableAdaptiveBitrateStreaming", | |
"in": "query", | |
"description": "Enable adaptive bitrate streaming.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Video stream returned.", | |
"content": { | |
"application/x-mpegURL": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"head": { | |
"tags": [ | |
"DynamicHls" | |
], | |
"summary": "Gets a video hls playlist stream.", | |
"operationId": "HeadMasterHlsVideoPlaylist", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "static", | |
"in": "query", | |
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "params", | |
"in": "query", | |
"description": "The streaming parameters.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "The tag.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceProfileId", | |
"in": "query", | |
"description": "Optional. The dlna device profile id to utilize.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "query", | |
"description": "The segment container.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentLength", | |
"in": "query", | |
"description": "The segment length.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minSegments", | |
"in": "query", | |
"description": "The minimum number of segments.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media version id, if playing an alternate version.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioCodec", | |
"in": "query", | |
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableAutoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the video stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether or not to allow copying of the audio stream url.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "breakOnNonKeyFrames", | |
"in": "query", | |
"description": "Optional. Whether to break on non key frames.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "audioSampleRate", | |
"in": "query", | |
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum audio bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioBitRate", | |
"in": "query", | |
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "audioChannels", | |
"in": "query", | |
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "profile", | |
"in": "query", | |
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "level", | |
"in": "query", | |
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "framerate", | |
"in": "query", | |
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "maxFramerate", | |
"in": "query", | |
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", | |
"schema": { | |
"type": "number", | |
"format": "float" | |
} | |
}, | |
{ | |
"name": "copyTimestamps", | |
"in": "query", | |
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "Optional. The fixed horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "Optional. The fixed vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "Optional. The maximum horizontal resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "Optional. The maximum vertical resolution of the encoded video.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoBitRate", | |
"in": "query", | |
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleMethod", | |
"in": "query", | |
"description": "Optional. Specify the subtitle delivery method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SubtitleDeliveryMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxRefFrames", | |
"in": "query", | |
"description": "Optional.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxVideoBitDepth", | |
"in": "query", | |
"description": "Optional. The maximum video bit depth.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "requireAvc", | |
"in": "query", | |
"description": "Optional. Whether to require avc.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "deInterlace", | |
"in": "query", | |
"description": "Optional. Whether to deinterlace the video.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "requireNonAnamorphic", | |
"in": "query", | |
"description": "Optional. Whether to require a non anamorphic stream.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "transcodingMaxAudioChannels", | |
"in": "query", | |
"description": "Optional. The maximum number of audio channels to transcode.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cpuCoreLimit", | |
"in": "query", | |
"description": "Optional. The limit of how many cpu cores to use.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableMpegtsM2TsMode", | |
"in": "query", | |
"description": "Optional. Whether to enable the MpegtsM2Ts mode.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "videoCodec", | |
"in": "query", | |
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "subtitleCodec", | |
"in": "query", | |
"description": "Optional. Specify a subtitle codec to encode to.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "transcodeReasons", | |
"in": "query", | |
"description": "Optional. The transcoding reason.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "videoStreamIndex", | |
"in": "query", | |
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "context", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/EncodingContext" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "streamOptions", | |
"in": "query", | |
"description": "Optional. The streaming options.", | |
"schema": { | |
"type": "object", | |
"additionalProperties": { | |
"type": "string", | |
"nullable": true | |
} | |
} | |
}, | |
{ | |
"name": "enableAdaptiveBitrateStreaming", | |
"in": "query", | |
"description": "Enable adaptive bitrate streaming.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Video stream returned.", | |
"content": { | |
"application/x-mpegURL": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Environment/DefaultDirectoryBrowser": { | |
"get": { | |
"tags": [ | |
"Environment" | |
], | |
"summary": "Get Default directory browser.", | |
"operationId": "GetDefaultDirectoryBrowser", | |
"responses": { | |
"200": { | |
"description": "Default directory browser returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
} | |
}, | |
"/Environment/DirectoryContents": { | |
"get": { | |
"tags": [ | |
"Environment" | |
], | |
"summary": "Gets the contents of a given directory in the file system.", | |
"operationId": "GetDirectoryContents", | |
"parameters": [ | |
{ | |
"name": "path", | |
"in": "query", | |
"description": "The path.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "includeFiles", | |
"in": "query", | |
"description": "An optional filter to include or exclude files from the results. true/false.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
}, | |
{ | |
"name": "includeDirectories", | |
"in": "query", | |
"description": "An optional filter to include or exclude folders from the results. true/false.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Directory contents returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/FileSystemEntryInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/FileSystemEntryInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/FileSystemEntryInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
} | |
}, | |
"/Environment/Drives": { | |
"get": { | |
"tags": [ | |
"Environment" | |
], | |
"summary": "Gets available drives from the server's file system.", | |
"operationId": "GetDrives", | |
"responses": { | |
"200": { | |
"description": "List of entries returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/FileSystemEntryInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/FileSystemEntryInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/FileSystemEntryInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
} | |
}, | |
"/Environment/NetworkShares": { | |
"get": { | |
"tags": [ | |
"Environment" | |
], | |
"summary": "Gets network paths.", | |
"operationId": "GetNetworkShares", | |
"responses": { | |
"200": { | |
"description": "Empty array returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/FileSystemEntryInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/FileSystemEntryInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/FileSystemEntryInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"deprecated": true, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
} | |
}, | |
"/Environment/ParentPath": { | |
"get": { | |
"tags": [ | |
"Environment" | |
], | |
"summary": "Gets the parent path of a given path.", | |
"operationId": "GetParentPath", | |
"parameters": [ | |
{ | |
"name": "path", | |
"in": "query", | |
"description": "The path.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Success", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "string" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "string" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
} | |
}, | |
"/Environment/ValidatePath": { | |
"post": { | |
"tags": [ | |
"Environment" | |
], | |
"summary": "Validates path.", | |
"operationId": "ValidatePath", | |
"requestBody": { | |
"description": "Validate request object.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ValidatePathDto" | |
} | |
], | |
"description": "Validate path object." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ValidatePathDto" | |
} | |
], | |
"description": "Validate path object." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ValidatePathDto" | |
} | |
], | |
"description": "Validate path object." | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Path validated." | |
}, | |
"404": { | |
"description": "Path not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/Filters": { | |
"get": { | |
"tags": [ | |
"Filter" | |
], | |
"summary": "Gets legacy query filters.", | |
"operationId": "GetQueryFiltersLegacy", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. User id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "parentId", | |
"in": "query", | |
"description": "Optional. Parent id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "includeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "mediaTypes", | |
"in": "query", | |
"description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Legacy filters retrieved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/QueryFiltersLegacy" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/QueryFiltersLegacy" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/QueryFiltersLegacy" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/Filters2": { | |
"get": { | |
"tags": [ | |
"Filter" | |
], | |
"summary": "Gets query filters.", | |
"operationId": "GetQueryFilters", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. User id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "parentId", | |
"in": "query", | |
"description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "includeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "isAiring", | |
"in": "query", | |
"description": "Optional. Is item airing.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isMovie", | |
"in": "query", | |
"description": "Optional. Is item movie.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSports", | |
"in": "query", | |
"description": "Optional. Is item sports.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isKids", | |
"in": "query", | |
"description": "Optional. Is item kids.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isNews", | |
"in": "query", | |
"description": "Optional. Is item news.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSeries", | |
"in": "query", | |
"description": "Optional. Is item series.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "recursive", | |
"in": "query", | |
"description": "Optional. Search recursive.", | |
"schema": { | |
"type": "boolean" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Filters retrieved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/QueryFilters" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/QueryFilters" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/QueryFilters" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Genres": { | |
"get": { | |
"tags": [ | |
"Genres" | |
], | |
"summary": "Gets all genres from a given item, folder, or the entire library.", | |
"operationId": "GetGenres", | |
"parameters": [ | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "searchTerm", | |
"in": "query", | |
"description": "The search term.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "parentId", | |
"in": "query", | |
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "excludeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "includeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "isFavorite", | |
"in": "query", | |
"description": "Optional filter by items that are marked as favorite, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional, the max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "User id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "nameStartsWithOrGreater", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameStartsWith", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameLessThan", | |
"in": "query", | |
"description": "Optional filter by items whose name is equally or lesser than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "sortBy", | |
"in": "query", | |
"description": "Optional. Specify one or more sort orders, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "sortOrder", | |
"in": "query", | |
"description": "Sort Order - Ascending,Descending.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/SortOrder" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional, include image information in output.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
}, | |
{ | |
"name": "enableTotalRecordCount", | |
"in": "query", | |
"description": "Optional. Include total record count.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Genres returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Genres/{genreName}": { | |
"get": { | |
"tags": [ | |
"Genres" | |
], | |
"summary": "Gets a genre, by name.", | |
"operationId": "GetGenre", | |
"parameters": [ | |
{ | |
"name": "genreName", | |
"in": "path", | |
"description": "The genre name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "The user id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Genres returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Audio/{itemId}/hls/{segmentId}/stream.aac": { | |
"get": { | |
"tags": [ | |
"HlsSegment" | |
], | |
"summary": "Gets the specified audio segment for an audio item.", | |
"operationId": "GetHlsAudioSegmentLegacyAac", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentId", | |
"in": "path", | |
"description": "The segment id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Hls audio segment returned.", | |
"content": { | |
"audio/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Audio/{itemId}/hls/{segmentId}/stream.mp3": { | |
"get": { | |
"tags": [ | |
"HlsSegment" | |
], | |
"summary": "Gets the specified audio segment for an audio item.", | |
"operationId": "GetHlsAudioSegmentLegacyMp3", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentId", | |
"in": "path", | |
"description": "The segment id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Hls audio segment returned.", | |
"content": { | |
"audio/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer}": { | |
"get": { | |
"tags": [ | |
"HlsSegment" | |
], | |
"summary": "Gets a hls video segment.", | |
"operationId": "GetHlsVideoSegmentLegacy", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playlistId", | |
"in": "path", | |
"description": "The playlist id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentId", | |
"in": "path", | |
"description": "The segment id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "segmentContainer", | |
"in": "path", | |
"description": "The segment container.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Hls video segment returned.", | |
"content": { | |
"video/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Hls segment not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Videos/{itemId}/hls/{playlistId}/stream.m3u8": { | |
"get": { | |
"tags": [ | |
"HlsSegment" | |
], | |
"summary": "Gets a hls video playlist.", | |
"operationId": "GetHlsPlaylistLegacy", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The video id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playlistId", | |
"in": "path", | |
"description": "The playlist id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Hls video playlist returned.", | |
"content": { | |
"application/x-mpegURL": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Videos/ActiveEncodings": { | |
"delete": { | |
"tags": [ | |
"HlsSegment" | |
], | |
"summary": "Stops an active encoding.", | |
"operationId": "StopEncodingProcess", | |
"parameters": [ | |
{ | |
"name": "deviceId", | |
"in": "query", | |
"description": "The device id of the client requesting. Used to stop encoding processes when needed.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Encoding stopped successfully." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Artists/{name}/Images/{imageType}/{imageIndex}": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get artist image by name.", | |
"operationId": "GetArtistImage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Artist name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get artist image by name.", | |
"operationId": "HeadArtistImage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Artist name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Branding/Splashscreen": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Generates or gets the splashscreen.", | |
"operationId": "GetSplashscreen", | |
"parameters": [ | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Quality setting, from 0-100.", | |
"schema": { | |
"maximum": 100, | |
"minimum": 0, | |
"type": "integer", | |
"format": "int32", | |
"default": 90 | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Splashscreen returned successfully.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"post": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Uploads a custom splashscreen.\r\nThe body is expected to the image contents base64 encoded.", | |
"operationId": "UploadCustomSplashscreen", | |
"requestBody": { | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Successfully uploaded new splashscreen." | |
}, | |
"400": { | |
"description": "Error reading MimeType from uploaded image.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"403": { | |
"description": "User does not have permission to upload splashscreen..", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Delete a custom splashscreen.", | |
"operationId": "DeleteCustomSplashscreen", | |
"responses": { | |
"204": { | |
"description": "Successfully deleted the custom splashscreen." | |
}, | |
"403": { | |
"description": "User does not have permission to delete splashscreen.." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Genres/{name}/Images/{imageType}": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get genre image by name.", | |
"operationId": "GetGenreImage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Genre name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get genre image by name.", | |
"operationId": "HeadGenreImage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Genre name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Genres/{name}/Images/{imageType}/{imageIndex}": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get genre image by name.", | |
"operationId": "GetGenreImageByIndex", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Genre name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get genre image by name.", | |
"operationId": "HeadGenreImageByIndex", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Genre name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Items/{itemId}/Images": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get item image infos.", | |
"operationId": "GetItemImageInfos", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Item images returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageInfo" | |
} | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/Images/{imageType}": { | |
"delete": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Delete an item's image.", | |
"operationId": "DeleteItemImage", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "The image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Image deleted." | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Set item image.", | |
"operationId": "SetItemImage", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
} | |
], | |
"requestBody": { | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Image saved." | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
}, | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Gets the item's image.", | |
"operationId": "GetItemImage", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Gets the item's image.", | |
"operationId": "HeadItemImage", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Items/{itemId}/Images/{imageType}/{imageIndex}": { | |
"delete": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Delete an item's image.", | |
"operationId": "DeleteItemImageByIndex", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "The image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Image deleted." | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Set item image.", | |
"operationId": "SetItemImageByIndex", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "(Unused) Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"requestBody": { | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Image saved." | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
}, | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Gets the item's image.", | |
"operationId": "GetItemImageByIndex", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Gets the item's image.", | |
"operationId": "HeadItemImageByIndex", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Gets the item's image.", | |
"operationId": "GetItemImage2", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "path", | |
"description": "The maximum image width to return.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "path", | |
"description": "The maximum image height to return.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "path", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "path", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
], | |
"description": "Enum ImageOutputFormat." | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "path", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"required": true, | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "path", | |
"description": "Optional. Unplayed count overlay to render.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Gets the item's image.", | |
"operationId": "HeadItemImage2", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "path", | |
"description": "The maximum image width to return.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "path", | |
"description": "The maximum image height to return.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "path", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "path", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
], | |
"description": "Enum ImageOutputFormat." | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "path", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"required": true, | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "path", | |
"description": "Optional. Unplayed count overlay to render.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Items/{itemId}/Images/{imageType}/{imageIndex}/Index": { | |
"post": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Updates the index for an item image.", | |
"operationId": "UpdateItemImageIndex", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Old image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "newIndex", | |
"in": "query", | |
"description": "New image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Image index updated." | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/MusicGenres/{name}/Images/{imageType}": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get music genre image by name.", | |
"operationId": "GetMusicGenreImage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Music genre name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get music genre image by name.", | |
"operationId": "HeadMusicGenreImage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Music genre name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/MusicGenres/{name}/Images/{imageType}/{imageIndex}": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get music genre image by name.", | |
"operationId": "GetMusicGenreImageByIndex", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Music genre name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get music genre image by name.", | |
"operationId": "HeadMusicGenreImageByIndex", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Music genre name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Persons/{name}/Images/{imageType}": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get person image by name.", | |
"operationId": "GetPersonImage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Person name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get person image by name.", | |
"operationId": "HeadPersonImage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Person name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Persons/{name}/Images/{imageType}/{imageIndex}": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get person image by name.", | |
"operationId": "GetPersonImageByIndex", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Person name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get person image by name.", | |
"operationId": "HeadPersonImageByIndex", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Person name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Studios/{name}/Images/{imageType}": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get studio image by name.", | |
"operationId": "GetStudioImage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Studio name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get studio image by name.", | |
"operationId": "HeadStudioImage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Studio name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Studios/{name}/Images/{imageType}/{imageIndex}": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get studio image by name.", | |
"operationId": "GetStudioImageByIndex", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Studio name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get studio image by name.", | |
"operationId": "HeadStudioImageByIndex", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Studio name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Users/{userId}/Images/{imageType}": { | |
"post": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Sets the user image.", | |
"operationId": "PostUserImage", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User Id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "(Unused) Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "index", | |
"in": "query", | |
"description": "(Unused) Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"requestBody": { | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Image updated." | |
}, | |
"403": { | |
"description": "User does not have permission to delete the image.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Delete the user's image.", | |
"operationId": "DeleteUserImage", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User Id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "(Unused) Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "index", | |
"in": "query", | |
"description": "(Unused) Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Image deleted." | |
}, | |
"403": { | |
"description": "User does not have permission to delete the image.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get user profile image.", | |
"operationId": "GetUserImage", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get user profile image.", | |
"operationId": "HeadUserImage", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "query", | |
"description": "Image index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Users/{userId}/Images/{imageType}/{imageIndex}": { | |
"get": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get user profile image.", | |
"operationId": "GetUserImageByIndex", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
}, | |
"head": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Get user profile image.", | |
"operationId": "HeadUserImageByIndex", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "imageIndex", | |
"in": "path", | |
"description": "Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "tag", | |
"in": "query", | |
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "format", | |
"in": "query", | |
"description": "Determines the output format of the image - original,gif,jpg,png.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageFormat" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "The maximum image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "The maximum image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "percentPlayed", | |
"in": "query", | |
"description": "Optional. Percent to render for the percent played overlay.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "unplayedCount", | |
"in": "query", | |
"description": "Optional. Unplayed count overlay to render.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "width", | |
"in": "query", | |
"description": "The fixed image width to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "height", | |
"in": "query", | |
"description": "The fixed image height to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "quality", | |
"in": "query", | |
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillWidth", | |
"in": "query", | |
"description": "Width of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fillHeight", | |
"in": "query", | |
"description": "Height of box to fill.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "cropWhitespace", | |
"in": "query", | |
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "addPlayedIndicator", | |
"in": "query", | |
"description": "Optional. Add a played indicator.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "blur", | |
"in": "query", | |
"description": "Optional. Blur image.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "backgroundColor", | |
"in": "query", | |
"description": "Optional. Apply a background color for transparent images.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "foregroundLayer", | |
"in": "query", | |
"description": "Optional. Apply a foreground layer on top of the image.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream returned.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Users/{userId}/Images/{imageType}/{index}": { | |
"post": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Sets the user image.", | |
"operationId": "PostUserImageByIndex", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User Id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "(Unused) Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "index", | |
"in": "path", | |
"description": "(Unused) Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"requestBody": { | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Image updated." | |
}, | |
"403": { | |
"description": "User does not have permission to delete the image.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"Image" | |
], | |
"summary": "Delete the user's image.", | |
"operationId": "DeleteUserImageByIndex", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User Id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "imageType", | |
"in": "path", | |
"description": "(Unused) Image type.", | |
"required": true, | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ImageType" | |
} | |
], | |
"description": "Enum ImageType." | |
} | |
}, | |
{ | |
"name": "index", | |
"in": "path", | |
"description": "(Unused) Image index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Image deleted." | |
}, | |
"403": { | |
"description": "User does not have permission to delete the image.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Images/General": { | |
"get": { | |
"tags": [ | |
"ImageByName" | |
], | |
"summary": "Get all general images.", | |
"operationId": "GetGeneralImages", | |
"responses": { | |
"200": { | |
"description": "Retrieved list of images.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageByNameInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageByNameInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageByNameInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Images/General/{name}/{type}": { | |
"get": { | |
"tags": [ | |
"ImageByName" | |
], | |
"summary": "Get General Image.", | |
"operationId": "GetGeneralImage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "The name of the image.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "type", | |
"in": "path", | |
"description": "Image Type (primary, backdrop, logo, etc).", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream retrieved.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Image not found.", | |
"content": { | |
"application/octet-stream": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Images/MediaInfo": { | |
"get": { | |
"tags": [ | |
"ImageByName" | |
], | |
"summary": "Get all media info images.", | |
"operationId": "GetMediaInfoImages", | |
"responses": { | |
"200": { | |
"description": "Image list retrieved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageByNameInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageByNameInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageByNameInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Images/MediaInfo/{theme}/{name}": { | |
"get": { | |
"tags": [ | |
"ImageByName" | |
], | |
"summary": "Get media info image.", | |
"operationId": "GetMediaInfoImage", | |
"parameters": [ | |
{ | |
"name": "theme", | |
"in": "path", | |
"description": "The theme to get the image from.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "The name of the image.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream retrieved.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Image not found.", | |
"content": { | |
"application/octet-stream": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Images/Ratings": { | |
"get": { | |
"tags": [ | |
"ImageByName" | |
], | |
"summary": "Get all general images.", | |
"operationId": "GetRatingImages", | |
"responses": { | |
"200": { | |
"description": "Retrieved list of images.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageByNameInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageByNameInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageByNameInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Images/Ratings/{theme}/{name}": { | |
"get": { | |
"tags": [ | |
"ImageByName" | |
], | |
"summary": "Get rating image.", | |
"operationId": "GetRatingImage", | |
"parameters": [ | |
{ | |
"name": "theme", | |
"in": "path", | |
"description": "The theme to get the image from.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "The name of the image.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Image stream retrieved.", | |
"content": { | |
"image/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Image not found.", | |
"content": { | |
"application/octet-stream": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/Albums/{id}/InstantMix": { | |
"get": { | |
"tags": [ | |
"InstantMix" | |
], | |
"summary": "Creates an instant playlist based on a given album.", | |
"operationId": "GetInstantMixFromAlbum", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Instant playlist returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Artists/{id}/InstantMix": { | |
"get": { | |
"tags": [ | |
"InstantMix" | |
], | |
"summary": "Creates an instant playlist based on a given artist.", | |
"operationId": "GetInstantMixFromArtists", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Instant playlist returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Artists/InstantMix": { | |
"get": { | |
"tags": [ | |
"InstantMix" | |
], | |
"summary": "Creates an instant playlist based on a given artist.", | |
"operationId": "GetInstantMixFromArtists2", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "query", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Instant playlist returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"deprecated": true, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{id}/InstantMix": { | |
"get": { | |
"tags": [ | |
"InstantMix" | |
], | |
"summary": "Creates an instant playlist based on a given item.", | |
"operationId": "GetInstantMixFromItem", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Instant playlist returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/MusicGenres/{name}/InstantMix": { | |
"get": { | |
"tags": [ | |
"InstantMix" | |
], | |
"summary": "Creates an instant playlist based on a given genre.", | |
"operationId": "GetInstantMixFromMusicGenreByName", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "The genre name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Instant playlist returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/MusicGenres/InstantMix": { | |
"get": { | |
"tags": [ | |
"InstantMix" | |
], | |
"summary": "Creates an instant playlist based on a given genre.", | |
"operationId": "GetInstantMixFromMusicGenreById", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "query", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Instant playlist returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Playlists/{id}/InstantMix": { | |
"get": { | |
"tags": [ | |
"InstantMix" | |
], | |
"summary": "Creates an instant playlist based on a given playlist.", | |
"operationId": "GetInstantMixFromPlaylist", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Instant playlist returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Songs/{id}/InstantMix": { | |
"get": { | |
"tags": [ | |
"InstantMix" | |
], | |
"summary": "Creates an instant playlist based on a given song.", | |
"operationId": "GetInstantMixFromSong", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Instant playlist returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/ExternalIdInfos": { | |
"get": { | |
"tags": [ | |
"ItemLookup" | |
], | |
"summary": "Get the item's external id info.", | |
"operationId": "GetExternalIdInfos", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "External id info retrieved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ExternalIdInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ExternalIdInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ExternalIdInfo" | |
} | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation", | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/RemoteSearch/Apply/{itemId}": { | |
"post": { | |
"tags": [ | |
"ItemLookup" | |
], | |
"summary": "Applies search criteria to an item and refreshes metadata.", | |
"operationId": "ApplySearchCriteria", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "replaceAllImages", | |
"in": "query", | |
"description": "Optional. Whether or not to replace all images. Default: True.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"requestBody": { | |
"description": "The remote search result.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
] | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Item metadata refreshed." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation", | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/RemoteSearch/Book": { | |
"post": { | |
"tags": [ | |
"ItemLookup" | |
], | |
"summary": "Get book remote search.", | |
"operationId": "GetBookRemoteSearchResults", | |
"requestBody": { | |
"description": "Remote search query.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/BookInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/BookInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/BookInfoRemoteSearchQuery" | |
} | |
] | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"200": { | |
"description": "Book remote search executed.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/RemoteSearch/BoxSet": { | |
"post": { | |
"tags": [ | |
"ItemLookup" | |
], | |
"summary": "Get box set remote search.", | |
"operationId": "GetBoxSetRemoteSearchResults", | |
"requestBody": { | |
"description": "Remote search query.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" | |
} | |
] | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"200": { | |
"description": "Box set remote search executed.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/RemoteSearch/Movie": { | |
"post": { | |
"tags": [ | |
"ItemLookup" | |
], | |
"summary": "Get movie remote search.", | |
"operationId": "GetMovieRemoteSearchResults", | |
"requestBody": { | |
"description": "Remote search query.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" | |
} | |
] | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"200": { | |
"description": "Movie remote search executed.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/RemoteSearch/MusicAlbum": { | |
"post": { | |
"tags": [ | |
"ItemLookup" | |
], | |
"summary": "Get music album remote search.", | |
"operationId": "GetMusicAlbumRemoteSearchResults", | |
"requestBody": { | |
"description": "Remote search query.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" | |
} | |
] | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"200": { | |
"description": "Music album remote search executed.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/RemoteSearch/MusicArtist": { | |
"post": { | |
"tags": [ | |
"ItemLookup" | |
], | |
"summary": "Get music artist remote search.", | |
"operationId": "GetMusicArtistRemoteSearchResults", | |
"requestBody": { | |
"description": "Remote search query.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" | |
} | |
] | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"200": { | |
"description": "Music artist remote search executed.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/RemoteSearch/MusicVideo": { | |
"post": { | |
"tags": [ | |
"ItemLookup" | |
], | |
"summary": "Get music video remote search.", | |
"operationId": "GetMusicVideoRemoteSearchResults", | |
"requestBody": { | |
"description": "Remote search query.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" | |
} | |
] | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"200": { | |
"description": "Music video remote search executed.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/RemoteSearch/Person": { | |
"post": { | |
"tags": [ | |
"ItemLookup" | |
], | |
"summary": "Get person remote search.", | |
"operationId": "GetPersonRemoteSearchResults", | |
"requestBody": { | |
"description": "Remote search query.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" | |
} | |
] | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"200": { | |
"description": "Person remote search executed.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation", | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/RemoteSearch/Series": { | |
"post": { | |
"tags": [ | |
"ItemLookup" | |
], | |
"summary": "Get series remote search.", | |
"operationId": "GetSeriesRemoteSearchResults", | |
"requestBody": { | |
"description": "Remote search query.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" | |
} | |
] | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"200": { | |
"description": "Series remote search executed.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/RemoteSearch/Trailer": { | |
"post": { | |
"tags": [ | |
"ItemLookup" | |
], | |
"summary": "Get trailer remote search.", | |
"operationId": "GetTrailerRemoteSearchResults", | |
"requestBody": { | |
"description": "Remote search query.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" | |
} | |
] | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"200": { | |
"description": "Trailer remote search executed.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RemoteSearchResult" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/Refresh": { | |
"post": { | |
"tags": [ | |
"ItemRefresh" | |
], | |
"summary": "Refreshes metadata for an item.", | |
"operationId": "RefreshItem", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "metadataRefreshMode", | |
"in": "query", | |
"description": "(Optional) Specifies the metadata refresh mode.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MetadataRefreshMode" | |
} | |
], | |
"default": "None" | |
} | |
}, | |
{ | |
"name": "imageRefreshMode", | |
"in": "query", | |
"description": "(Optional) Specifies the image refresh mode.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MetadataRefreshMode" | |
} | |
], | |
"default": "None" | |
} | |
}, | |
{ | |
"name": "replaceAllMetadata", | |
"in": "query", | |
"description": "(Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
}, | |
{ | |
"name": "replaceAllImages", | |
"in": "query", | |
"description": "(Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Item metadata refresh queued." | |
}, | |
"404": { | |
"description": "Item to refresh not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Items": { | |
"get": { | |
"tags": [ | |
"Items" | |
], | |
"summary": "Gets items based on a query.", | |
"operationId": "GetItems", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "The user id supplied as query parameter.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "maxOfficialRating", | |
"in": "query", | |
"description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "hasThemeSong", | |
"in": "query", | |
"description": "Optional filter by items with theme songs.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasThemeVideo", | |
"in": "query", | |
"description": "Optional filter by items with theme videos.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasSubtitles", | |
"in": "query", | |
"description": "Optional filter by items with subtitles.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasSpecialFeature", | |
"in": "query", | |
"description": "Optional filter by items with special features.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasTrailer", | |
"in": "query", | |
"description": "Optional filter by items with trailers.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "adjacentTo", | |
"in": "query", | |
"description": "Optional. Return items that are siblings of a supplied item.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "parentIndexNumber", | |
"in": "query", | |
"description": "Optional filter by parent index number.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "hasParentalRating", | |
"in": "query", | |
"description": "Optional filter by items that have or do not have a parental rating.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isHd", | |
"in": "query", | |
"description": "Optional filter by items that are HD or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "is4K", | |
"in": "query", | |
"description": "Optional filter by items that are 4K or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "locationTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/LocationType" | |
} | |
} | |
}, | |
{ | |
"name": "excludeLocationTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/LocationType" | |
} | |
} | |
}, | |
{ | |
"name": "isMissing", | |
"in": "query", | |
"description": "Optional filter by items that are missing episodes or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isUnaired", | |
"in": "query", | |
"description": "Optional filter by items that are unaired episodes or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "minCommunityRating", | |
"in": "query", | |
"description": "Optional filter by minimum community rating.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "minCriticRating", | |
"in": "query", | |
"description": "Optional filter by minimum critic rating.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "minPremiereDate", | |
"in": "query", | |
"description": "Optional. The minimum premiere date. Format = ISO.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "minDateLastSaved", | |
"in": "query", | |
"description": "Optional. The minimum last saved date. Format = ISO.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "minDateLastSavedForUser", | |
"in": "query", | |
"description": "Optional. The minimum last saved date for the current user. Format = ISO.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "maxPremiereDate", | |
"in": "query", | |
"description": "Optional. The maximum premiere date. Format = ISO.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "hasOverview", | |
"in": "query", | |
"description": "Optional filter by items that have an overview or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasImdbId", | |
"in": "query", | |
"description": "Optional filter by items that have an imdb id or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasTmdbId", | |
"in": "query", | |
"description": "Optional filter by items that have a tmdb id or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasTvdbId", | |
"in": "query", | |
"description": "Optional filter by items that have a tvdb id or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isMovie", | |
"in": "query", | |
"description": "Optional filter for live tv movies.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSeries", | |
"in": "query", | |
"description": "Optional filter for live tv series.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isNews", | |
"in": "query", | |
"description": "Optional filter for live tv news.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isKids", | |
"in": "query", | |
"description": "Optional filter for live tv kids.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSports", | |
"in": "query", | |
"description": "Optional filter for live tv sports.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "excludeItemIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "recursive", | |
"in": "query", | |
"description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "searchTerm", | |
"in": "query", | |
"description": "Optional. Filter based on a search term.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "sortOrder", | |
"in": "query", | |
"description": "Sort Order - Ascending,Descending.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/SortOrder" | |
} | |
} | |
}, | |
{ | |
"name": "parentId", | |
"in": "query", | |
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "excludeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "includeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "filters", | |
"in": "query", | |
"description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFilter" | |
} | |
} | |
}, | |
{ | |
"name": "isFavorite", | |
"in": "query", | |
"description": "Optional filter by items that are marked as favorite, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "mediaTypes", | |
"in": "query", | |
"description": "Optional filter by MediaType. Allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "imageTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "sortBy", | |
"in": "query", | |
"description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "isPlayed", | |
"in": "query", | |
"description": "Optional filter by items that are played, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "genres", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "officialRatings", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "tags", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "years", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional, include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional, the max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "person", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified person.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "personIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "personTypes", | |
"in": "query", | |
"description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "studios", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "artists", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "excludeArtistIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "artistIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "albumArtistIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "contributingArtistIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "albums", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "albumIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "ids", | |
"in": "query", | |
"description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "videoTypes", | |
"in": "query", | |
"description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/VideoType" | |
} | |
} | |
}, | |
{ | |
"name": "minOfficialRating", | |
"in": "query", | |
"description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "isLocked", | |
"in": "query", | |
"description": "Optional filter by items that are locked.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isPlaceHolder", | |
"in": "query", | |
"description": "Optional filter by items that are placeholders.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasOfficialRating", | |
"in": "query", | |
"description": "Optional filter by items that have official ratings.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "collapseBoxSetItems", | |
"in": "query", | |
"description": "Whether or not to hide items behind their boxsets.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "minWidth", | |
"in": "query", | |
"description": "Optional. Filter by the minimum width of the item.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minHeight", | |
"in": "query", | |
"description": "Optional. Filter by the minimum height of the item.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "Optional. Filter by the maximum width of the item.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "Optional. Filter by the maximum height of the item.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "is3D", | |
"in": "query", | |
"description": "Optional filter by items that are 3D, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "seriesStatus", | |
"in": "query", | |
"description": "Optional filter by Series Status. Allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/SeriesStatus" | |
} | |
} | |
}, | |
{ | |
"name": "nameStartsWithOrGreater", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameStartsWith", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameLessThan", | |
"in": "query", | |
"description": "Optional filter by items whose name is equally or lesser than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "studioIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "genreIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "enableTotalRecordCount", | |
"in": "query", | |
"description": "Optional. Enable the total record count.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional, include image information in output.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Success", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Deletes items from the library and filesystem.", | |
"operationId": "DeleteItems", | |
"parameters": [ | |
{ | |
"name": "ids", | |
"in": "query", | |
"description": "The item ids.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Items deleted." | |
}, | |
"401": { | |
"description": "Unauthorized access.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Users/{userId}/Items": { | |
"get": { | |
"tags": [ | |
"Items" | |
], | |
"summary": "Gets items based on a query.", | |
"operationId": "GetItemsByUserId", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "The user id supplied as query parameter.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "maxOfficialRating", | |
"in": "query", | |
"description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "hasThemeSong", | |
"in": "query", | |
"description": "Optional filter by items with theme songs.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasThemeVideo", | |
"in": "query", | |
"description": "Optional filter by items with theme videos.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasSubtitles", | |
"in": "query", | |
"description": "Optional filter by items with subtitles.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasSpecialFeature", | |
"in": "query", | |
"description": "Optional filter by items with special features.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasTrailer", | |
"in": "query", | |
"description": "Optional filter by items with trailers.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "adjacentTo", | |
"in": "query", | |
"description": "Optional. Return items that are siblings of a supplied item.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "parentIndexNumber", | |
"in": "query", | |
"description": "Optional filter by parent index number.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "hasParentalRating", | |
"in": "query", | |
"description": "Optional filter by items that have or do not have a parental rating.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isHd", | |
"in": "query", | |
"description": "Optional filter by items that are HD or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "is4K", | |
"in": "query", | |
"description": "Optional filter by items that are 4K or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "locationTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/LocationType" | |
} | |
} | |
}, | |
{ | |
"name": "excludeLocationTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/LocationType" | |
} | |
} | |
}, | |
{ | |
"name": "isMissing", | |
"in": "query", | |
"description": "Optional filter by items that are missing episodes or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isUnaired", | |
"in": "query", | |
"description": "Optional filter by items that are unaired episodes or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "minCommunityRating", | |
"in": "query", | |
"description": "Optional filter by minimum community rating.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "minCriticRating", | |
"in": "query", | |
"description": "Optional filter by minimum critic rating.", | |
"schema": { | |
"type": "number", | |
"format": "double" | |
} | |
}, | |
{ | |
"name": "minPremiereDate", | |
"in": "query", | |
"description": "Optional. The minimum premiere date. Format = ISO.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "minDateLastSaved", | |
"in": "query", | |
"description": "Optional. The minimum last saved date. Format = ISO.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "minDateLastSavedForUser", | |
"in": "query", | |
"description": "Optional. The minimum last saved date for the current user. Format = ISO.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "maxPremiereDate", | |
"in": "query", | |
"description": "Optional. The maximum premiere date. Format = ISO.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "hasOverview", | |
"in": "query", | |
"description": "Optional filter by items that have an overview or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasImdbId", | |
"in": "query", | |
"description": "Optional filter by items that have an imdb id or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasTmdbId", | |
"in": "query", | |
"description": "Optional filter by items that have a tmdb id or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasTvdbId", | |
"in": "query", | |
"description": "Optional filter by items that have a tvdb id or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isMovie", | |
"in": "query", | |
"description": "Optional filter for live tv movies.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSeries", | |
"in": "query", | |
"description": "Optional filter for live tv series.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isNews", | |
"in": "query", | |
"description": "Optional filter for live tv news.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isKids", | |
"in": "query", | |
"description": "Optional filter for live tv kids.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSports", | |
"in": "query", | |
"description": "Optional filter for live tv sports.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "excludeItemIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "recursive", | |
"in": "query", | |
"description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "searchTerm", | |
"in": "query", | |
"description": "Optional. Filter based on a search term.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "sortOrder", | |
"in": "query", | |
"description": "Sort Order - Ascending,Descending.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/SortOrder" | |
} | |
} | |
}, | |
{ | |
"name": "parentId", | |
"in": "query", | |
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "excludeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "includeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "filters", | |
"in": "query", | |
"description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFilter" | |
} | |
} | |
}, | |
{ | |
"name": "isFavorite", | |
"in": "query", | |
"description": "Optional filter by items that are marked as favorite, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "mediaTypes", | |
"in": "query", | |
"description": "Optional filter by MediaType. Allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "imageTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "sortBy", | |
"in": "query", | |
"description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "isPlayed", | |
"in": "query", | |
"description": "Optional filter by items that are played, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "genres", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "officialRatings", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "tags", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "years", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional, include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional, the max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "person", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified person.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "personIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "personTypes", | |
"in": "query", | |
"description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "studios", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "artists", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "excludeArtistIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "artistIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "albumArtistIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "contributingArtistIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "albums", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "albumIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "ids", | |
"in": "query", | |
"description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "videoTypes", | |
"in": "query", | |
"description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/VideoType" | |
} | |
} | |
}, | |
{ | |
"name": "minOfficialRating", | |
"in": "query", | |
"description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "isLocked", | |
"in": "query", | |
"description": "Optional filter by items that are locked.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isPlaceHolder", | |
"in": "query", | |
"description": "Optional filter by items that are placeholders.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasOfficialRating", | |
"in": "query", | |
"description": "Optional filter by items that have official ratings.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "collapseBoxSetItems", | |
"in": "query", | |
"description": "Whether or not to hide items behind their boxsets.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "minWidth", | |
"in": "query", | |
"description": "Optional. Filter by the minimum width of the item.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "minHeight", | |
"in": "query", | |
"description": "Optional. Filter by the minimum height of the item.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxWidth", | |
"in": "query", | |
"description": "Optional. Filter by the maximum width of the item.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxHeight", | |
"in": "query", | |
"description": "Optional. Filter by the maximum height of the item.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "is3D", | |
"in": "query", | |
"description": "Optional filter by items that are 3D, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "seriesStatus", | |
"in": "query", | |
"description": "Optional filter by Series Status. Allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/SeriesStatus" | |
} | |
} | |
}, | |
{ | |
"name": "nameStartsWithOrGreater", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameStartsWith", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameLessThan", | |
"in": "query", | |
"description": "Optional filter by items whose name is equally or lesser than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "studioIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "genreIds", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "enableTotalRecordCount", | |
"in": "query", | |
"description": "Optional. Enable the total record count.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional, include image information in output.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Success", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Users/{userId}/Items/Resume": { | |
"get": { | |
"tags": [ | |
"Items" | |
], | |
"summary": "Gets items based on a query.", | |
"operationId": "GetResumeItems", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "The user id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "The start index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "The item limit.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "searchTerm", | |
"in": "query", | |
"description": "The search term.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "parentId", | |
"in": "query", | |
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "mediaTypes", | |
"in": "query", | |
"description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "excludeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "includeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "enableTotalRecordCount", | |
"in": "query", | |
"description": "Optional. Enable the total record count.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
}, | |
{ | |
"name": "excludeActiveSessions", | |
"in": "query", | |
"description": "Optional. Whether to exclude the currently active sessions.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Items returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}": { | |
"post": { | |
"tags": [ | |
"ItemUpdate" | |
], | |
"summary": "Updates an item.", | |
"operationId": "UpdateItem", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"requestBody": { | |
"description": "The new item properties.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
], | |
"description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
], | |
"description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
], | |
"description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Item updated." | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Deletes an item from the library and filesystem.", | |
"operationId": "DeleteItem", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Item deleted." | |
}, | |
"401": { | |
"description": "Unauthorized access.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/ContentType": { | |
"post": { | |
"tags": [ | |
"ItemUpdate" | |
], | |
"summary": "Updates an item's content type.", | |
"operationId": "UpdateItemContentType", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "contentType", | |
"in": "query", | |
"description": "The content type of the item.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Item content type updated." | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/MetadataEditor": { | |
"get": { | |
"tags": [ | |
"ItemUpdate" | |
], | |
"summary": "Gets metadata editor info for an item.", | |
"operationId": "GetMetadataEditorInfo", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Item metadata editor returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/MetadataEditorInfo" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/MetadataEditorInfo" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/MetadataEditorInfo" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Albums/{itemId}/Similar": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Gets similar items.", | |
"operationId": "GetSimilarAlbums", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "excludeArtistIds", | |
"in": "query", | |
"description": "Exclude artist ids.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Similar items returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Artists/{itemId}/Similar": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Gets similar items.", | |
"operationId": "GetSimilarArtists", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "excludeArtistIds", | |
"in": "query", | |
"description": "Exclude artist ids.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Similar items returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/Ancestors": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Gets all parents of an item.", | |
"operationId": "GetAncestors", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Item parents returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/CriticReviews": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Gets critic review for an item.", | |
"operationId": "GetCriticReviews", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Critic reviews returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"deprecated": true, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/Download": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Downloads item media.", | |
"operationId": "GetDownload", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Media downloaded.", | |
"content": { | |
"video/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
}, | |
"audio/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"Download" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/File": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Get the original file of an item.", | |
"operationId": "GetFile", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "File stream returned.", | |
"content": { | |
"video/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
}, | |
"audio/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/Similar": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Gets similar items.", | |
"operationId": "GetSimilarItems", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "excludeArtistIds", | |
"in": "query", | |
"description": "Exclude artist ids.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Similar items returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/ThemeMedia": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Get theme songs and videos for an item.", | |
"operationId": "GetThemeMedia", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "inheritFromParent", | |
"in": "query", | |
"description": "Optional. Determines whether or not parent items should be searched for theme media.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Theme songs and videos returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/AllThemeMediaResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/AllThemeMediaResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/AllThemeMediaResult" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/ThemeSongs": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Get theme songs for an item.", | |
"operationId": "GetThemeSongs", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "inheritFromParent", | |
"in": "query", | |
"description": "Optional. Determines whether or not parent items should be searched for theme media.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Theme songs returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ThemeMediaResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ThemeMediaResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ThemeMediaResult" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/ThemeVideos": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Get theme videos for an item.", | |
"operationId": "GetThemeVideos", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "inheritFromParent", | |
"in": "query", | |
"description": "Optional. Determines whether or not parent items should be searched for theme media.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Theme videos returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ThemeMediaResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ThemeMediaResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ThemeMediaResult" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/Counts": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Get item counts.", | |
"operationId": "GetItemCounts", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Get counts from a specific user's library.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "isFavorite", | |
"in": "query", | |
"description": "Optional. Get counts of favorite items.", | |
"schema": { | |
"type": "boolean" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Item counts returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ItemCounts" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ItemCounts" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ItemCounts" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Libraries/AvailableOptions": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Gets the library options info.", | |
"operationId": "GetLibraryOptionsInfo", | |
"parameters": [ | |
{ | |
"name": "libraryContentType", | |
"in": "query", | |
"description": "Library content type.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "isNewLibrary", | |
"in": "query", | |
"description": "Whether this is a new library.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Library options info returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/LibraryOptionsResultDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/LibraryOptionsResultDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/LibraryOptionsResultDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrDefault" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/Media/Updated": { | |
"post": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Reports that new movies have been added by an external source.", | |
"operationId": "PostUpdatedMedia", | |
"requestBody": { | |
"description": "The update paths.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MediaUpdateInfoDto" | |
} | |
], | |
"description": "Media Update Info Dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MediaUpdateInfoDto" | |
} | |
], | |
"description": "Media Update Info Dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MediaUpdateInfoDto" | |
} | |
], | |
"description": "Media Update Info Dto." | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Report success." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/MediaFolders": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Gets all user media folders.", | |
"operationId": "GetMediaFolders", | |
"parameters": [ | |
{ | |
"name": "isHidden", | |
"in": "query", | |
"description": "Optional. Filter by folders that are marked hidden, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Media folders returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/Movies/Added": { | |
"post": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Reports that new movies have been added by an external source.", | |
"operationId": "PostAddedMovies", | |
"parameters": [ | |
{ | |
"name": "tmdbId", | |
"in": "query", | |
"description": "The tmdbId.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imdbId", | |
"in": "query", | |
"description": "The imdbId.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Report success." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/Movies/Updated": { | |
"post": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Reports that new movies have been added by an external source.", | |
"operationId": "PostUpdatedMovies", | |
"parameters": [ | |
{ | |
"name": "tmdbId", | |
"in": "query", | |
"description": "The tmdbId.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "imdbId", | |
"in": "query", | |
"description": "The imdbId.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Report success." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/PhysicalPaths": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Gets a list of physical paths from virtual folders.", | |
"operationId": "GetPhysicalPaths", | |
"responses": { | |
"200": { | |
"description": "Physical paths returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/Refresh": { | |
"post": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Starts a library scan.", | |
"operationId": "RefreshLibrary", | |
"responses": { | |
"204": { | |
"description": "Library scan started." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/Series/Added": { | |
"post": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Reports that new episodes of a series have been added by an external source.", | |
"operationId": "PostAddedSeries", | |
"parameters": [ | |
{ | |
"name": "tvdbId", | |
"in": "query", | |
"description": "The tvdbId.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Report success." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/Series/Updated": { | |
"post": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Reports that new episodes of a series have been added by an external source.", | |
"operationId": "PostUpdatedSeries", | |
"parameters": [ | |
{ | |
"name": "tvdbId", | |
"in": "query", | |
"description": "The tvdbId.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Report success." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Movies/{itemId}/Similar": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Gets similar items.", | |
"operationId": "GetSimilarMovies", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "excludeArtistIds", | |
"in": "query", | |
"description": "Exclude artist ids.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Similar items returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Shows/{itemId}/Similar": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Gets similar items.", | |
"operationId": "GetSimilarShows", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "excludeArtistIds", | |
"in": "query", | |
"description": "Exclude artist ids.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Similar items returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Trailers/{itemId}/Similar": { | |
"get": { | |
"tags": [ | |
"Library" | |
], | |
"summary": "Gets similar items.", | |
"operationId": "GetSimilarTrailers", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "excludeArtistIds", | |
"in": "query", | |
"description": "Exclude artist ids.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Similar items returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/VirtualFolders": { | |
"get": { | |
"tags": [ | |
"LibraryStructure" | |
], | |
"summary": "Gets all virtual folders.", | |
"operationId": "GetVirtualFolders", | |
"responses": { | |
"200": { | |
"description": "Virtual folders retrieved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/VirtualFolderInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/VirtualFolderInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/VirtualFolderInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"LibraryStructure" | |
], | |
"summary": "Adds a virtual folder.", | |
"operationId": "AddVirtualFolder", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "query", | |
"description": "The name of the virtual folder.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "collectionType", | |
"in": "query", | |
"description": "The type of the collection.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/CollectionTypeOptions" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "paths", | |
"in": "query", | |
"description": "The paths of the virtual folder.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "refreshLibrary", | |
"in": "query", | |
"description": "Whether to refresh the library.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"requestBody": { | |
"description": "The library options.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/AddVirtualFolderDto" | |
} | |
], | |
"description": "Add virtual folder dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/AddVirtualFolderDto" | |
} | |
], | |
"description": "Add virtual folder dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/AddVirtualFolderDto" | |
} | |
], | |
"description": "Add virtual folder dto." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Folder added." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"LibraryStructure" | |
], | |
"summary": "Removes a virtual folder.", | |
"operationId": "RemoveVirtualFolder", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "query", | |
"description": "The name of the folder.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "refreshLibrary", | |
"in": "query", | |
"description": "Whether to refresh the library.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Folder removed." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/VirtualFolders/LibraryOptions": { | |
"post": { | |
"tags": [ | |
"LibraryStructure" | |
], | |
"summary": "Update library options.", | |
"operationId": "UpdateLibraryOptions", | |
"requestBody": { | |
"description": "The library name and options.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/UpdateLibraryOptionsDto" | |
} | |
], | |
"description": "Update library options dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/UpdateLibraryOptionsDto" | |
} | |
], | |
"description": "Update library options dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/UpdateLibraryOptionsDto" | |
} | |
], | |
"description": "Update library options dto." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Library updated." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/VirtualFolders/Name": { | |
"post": { | |
"tags": [ | |
"LibraryStructure" | |
], | |
"summary": "Renames a virtual folder.", | |
"operationId": "RenameVirtualFolder", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "query", | |
"description": "The name of the virtual folder.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "newName", | |
"in": "query", | |
"description": "The new name.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "refreshLibrary", | |
"in": "query", | |
"description": "Whether to refresh the library.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Folder renamed." | |
}, | |
"404": { | |
"description": "Library doesn't exist.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"409": { | |
"description": "Library already exists.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/VirtualFolders/Paths": { | |
"post": { | |
"tags": [ | |
"LibraryStructure" | |
], | |
"summary": "Add a media path to a library.", | |
"operationId": "AddMediaPath", | |
"parameters": [ | |
{ | |
"name": "refreshLibrary", | |
"in": "query", | |
"description": "Whether to refresh the library.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"requestBody": { | |
"description": "The media path dto.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MediaPathDto" | |
} | |
], | |
"description": "Media Path dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MediaPathDto" | |
} | |
], | |
"description": "Media Path dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/MediaPathDto" | |
} | |
], | |
"description": "Media Path dto." | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Media path added." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"LibraryStructure" | |
], | |
"summary": "Remove a media path.", | |
"operationId": "RemoveMediaPath", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "query", | |
"description": "The name of the library.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "path", | |
"in": "query", | |
"description": "The path to remove.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "refreshLibrary", | |
"in": "query", | |
"description": "Whether to refresh the library.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Media path removed." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
} | |
}, | |
"/Library/VirtualFolders/Paths/Update": { | |
"post": { | |
"tags": [ | |
"LibraryStructure" | |
], | |
"summary": "Updates a media path.", | |
"operationId": "UpdateMediaPath", | |
"requestBody": { | |
"description": "The name of the library and path infos.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/UpdateMediaPathRequestDto" | |
} | |
], | |
"description": "Update library options dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/UpdateMediaPathRequestDto" | |
} | |
], | |
"description": "Update library options dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/UpdateMediaPathRequestDto" | |
} | |
], | |
"description": "Update library options dto." | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Media path updated." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrElevated" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/ChannelMappingOptions": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Get channel mapping options.", | |
"operationId": "GetChannelMappingOptions", | |
"parameters": [ | |
{ | |
"name": "providerId", | |
"in": "query", | |
"description": "Provider id.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Channel mapping options returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ChannelMappingOptionsDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ChannelMappingOptionsDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ChannelMappingOptionsDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/ChannelMappings": { | |
"post": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Set channel mappings.", | |
"operationId": "SetChannelMapping", | |
"requestBody": { | |
"description": "The set channel mapping dto.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SetChannelMappingDto" | |
} | |
], | |
"description": "Set channel mapping dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SetChannelMappingDto" | |
} | |
], | |
"description": "Set channel mapping dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SetChannelMappingDto" | |
} | |
], | |
"description": "Set channel mapping dto." | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"200": { | |
"description": "Created channel mapping returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/TunerChannelMapping" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/TunerChannelMapping" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/TunerChannelMapping" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Channels": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets available live tv channels.", | |
"operationId": "GetLiveTvChannels", | |
"parameters": [ | |
{ | |
"name": "type", | |
"in": "query", | |
"description": "Optional. Filter by channel type.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ChannelType" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "isMovie", | |
"in": "query", | |
"description": "Optional. Filter for movies.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSeries", | |
"in": "query", | |
"description": "Optional. Filter for series.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isNews", | |
"in": "query", | |
"description": "Optional. Filter for news.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isKids", | |
"in": "query", | |
"description": "Optional. Filter for kids.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSports", | |
"in": "query", | |
"description": "Optional. Filter for sports.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "isFavorite", | |
"in": "query", | |
"description": "Optional. Filter by channels that are favorites, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isLiked", | |
"in": "query", | |
"description": "Optional. Filter by channels that are liked, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isDisliked", | |
"in": "query", | |
"description": "Optional. Filter by channels that are disliked, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "\"Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "sortBy", | |
"in": "query", | |
"description": "Optional. Key to sort by.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "sortOrder", | |
"in": "query", | |
"description": "Optional. Sort order.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SortOrder" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "enableFavoriteSorting", | |
"in": "query", | |
"description": "Optional. Incorporate favorite and like status into channel sorting.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
}, | |
{ | |
"name": "addCurrentProgram", | |
"in": "query", | |
"description": "Optional. Adds current program info to each channel.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Available live tv channels returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Channels/{channelId}": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets a live tv channel.", | |
"operationId": "GetChannel", | |
"parameters": [ | |
{ | |
"name": "channelId", | |
"in": "path", | |
"description": "Channel id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Live tv channel returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/GuideInfo": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Get guid info.", | |
"operationId": "GetGuideInfo", | |
"responses": { | |
"200": { | |
"description": "Guid info returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/GuideInfo" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/GuideInfo" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/GuideInfo" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Info": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets available live tv services.", | |
"operationId": "GetLiveTvInfo", | |
"responses": { | |
"200": { | |
"description": "Available live tv services returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/LiveTvInfo" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/LiveTvInfo" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/LiveTvInfo" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/ListingProviders": { | |
"post": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Adds a listings provider.", | |
"operationId": "AddListingProvider", | |
"parameters": [ | |
{ | |
"name": "pw", | |
"in": "query", | |
"description": "Password.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "validateListings", | |
"in": "query", | |
"description": "Validate listings.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
}, | |
{ | |
"name": "validateLogin", | |
"in": "query", | |
"description": "Validate login.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"requestBody": { | |
"description": "New listings info.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ListingsProviderInfo" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ListingsProviderInfo" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/ListingsProviderInfo" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "Created listings provider returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ListingsProviderInfo" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ListingsProviderInfo" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ListingsProviderInfo" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Delete listing provider.", | |
"operationId": "DeleteListingProvider", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "query", | |
"description": "Listing provider id.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Listing provider deleted." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/ListingProviders/Default": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets default listings provider info.", | |
"operationId": "GetDefaultListingProvider", | |
"responses": { | |
"200": { | |
"description": "Default listings provider info returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ListingsProviderInfo" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ListingsProviderInfo" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ListingsProviderInfo" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/ListingProviders/Lineups": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets available lineups.", | |
"operationId": "GetLineups", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "query", | |
"description": "Provider id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "type", | |
"in": "query", | |
"description": "Provider type.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "location", | |
"in": "query", | |
"description": "Location.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "country", | |
"in": "query", | |
"description": "Country.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Available lineups returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NameIdPair" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NameIdPair" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NameIdPair" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/ListingProviders/SchedulesDirect/Countries": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets available countries.", | |
"operationId": "GetSchedulesDirectCountries", | |
"responses": { | |
"200": { | |
"description": "Available countries returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/LiveRecordings/{recordingId}/stream": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets a live tv recording stream.", | |
"operationId": "GetLiveRecordingFile", | |
"parameters": [ | |
{ | |
"name": "recordingId", | |
"in": "path", | |
"description": "Recording id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Recording stream returned.", | |
"content": { | |
"video/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Recording not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/LiveTv/LiveStreamFiles/{streamId}/stream.{container}": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets a live tv channel stream.", | |
"operationId": "GetLiveStreamFile", | |
"parameters": [ | |
{ | |
"name": "streamId", | |
"in": "path", | |
"description": "Stream id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "container", | |
"in": "path", | |
"description": "Container type.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Stream returned.", | |
"content": { | |
"video/*": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Stream not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"/LiveTv/Programs": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets available live tv epgs.", | |
"operationId": "GetLiveTvPrograms", | |
"parameters": [ | |
{ | |
"name": "channelIds", | |
"in": "query", | |
"description": "The channels to return guide information for.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "minStartDate", | |
"in": "query", | |
"description": "Optional. The minimum premiere start date.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "hasAired", | |
"in": "query", | |
"description": "Optional. Filter by programs that have completed airing, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isAiring", | |
"in": "query", | |
"description": "Optional. Filter by programs that are currently airing, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "maxStartDate", | |
"in": "query", | |
"description": "Optional. The maximum premiere start date.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "minEndDate", | |
"in": "query", | |
"description": "Optional. The minimum premiere end date.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "maxEndDate", | |
"in": "query", | |
"description": "Optional. The maximum premiere end date.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
}, | |
{ | |
"name": "isMovie", | |
"in": "query", | |
"description": "Optional. Filter for movies.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSeries", | |
"in": "query", | |
"description": "Optional. Filter for series.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isNews", | |
"in": "query", | |
"description": "Optional. Filter for news.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isKids", | |
"in": "query", | |
"description": "Optional. Filter for kids.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSports", | |
"in": "query", | |
"description": "Optional. Filter for sports.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "sortBy", | |
"in": "query", | |
"description": "Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "sortOrder", | |
"in": "query", | |
"description": "Sort Order - Ascending,Descending.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/SortOrder" | |
} | |
} | |
}, | |
{ | |
"name": "genres", | |
"in": "query", | |
"description": "The genres to return guide information for.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "genreIds", | |
"in": "query", | |
"description": "The genre ids to return guide information for.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "seriesTimerId", | |
"in": "query", | |
"description": "Optional. Filter by series timer id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "librarySeriesId", | |
"in": "query", | |
"description": "Optional. Filter by library series id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableTotalRecordCount", | |
"in": "query", | |
"description": "Retrieve total record count.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Live tv epgs returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets available live tv epgs.", | |
"operationId": "GetPrograms", | |
"requestBody": { | |
"description": "Request body.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/GetProgramsDto" | |
} | |
], | |
"description": "Get programs dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/GetProgramsDto" | |
} | |
], | |
"description": "Get programs dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/GetProgramsDto" | |
} | |
], | |
"description": "Get programs dto." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "Live tv epgs returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Programs/{programId}": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets a live tv program.", | |
"operationId": "GetProgram", | |
"parameters": [ | |
{ | |
"name": "programId", | |
"in": "path", | |
"description": "Program id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Program returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Programs/Recommended": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets recommended live tv epgs.", | |
"operationId": "GetRecommendedPrograms", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. filter by user id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "isAiring", | |
"in": "query", | |
"description": "Optional. Filter by programs that are currently airing, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "hasAired", | |
"in": "query", | |
"description": "Optional. Filter by programs that have completed airing, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSeries", | |
"in": "query", | |
"description": "Optional. Filter for series.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isMovie", | |
"in": "query", | |
"description": "Optional. Filter for movies.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isNews", | |
"in": "query", | |
"description": "Optional. Filter for news.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isKids", | |
"in": "query", | |
"description": "Optional. Filter for kids.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSports", | |
"in": "query", | |
"description": "Optional. Filter for sports.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "genreIds", | |
"in": "query", | |
"description": "The genres to return guide information for.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableTotalRecordCount", | |
"in": "query", | |
"description": "Retrieve total record count.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Recommended epgs returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Recordings": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets live tv recordings.", | |
"operationId": "GetRecordings", | |
"parameters": [ | |
{ | |
"name": "channelId", | |
"in": "query", | |
"description": "Optional. Filter by channel id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "status", | |
"in": "query", | |
"description": "Optional. Filter by recording status.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/RecordingStatus" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "isInProgress", | |
"in": "query", | |
"description": "Optional. Filter by recordings that are in progress, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "seriesTimerId", | |
"in": "query", | |
"description": "Optional. Filter by recordings belonging to a series timer.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isMovie", | |
"in": "query", | |
"description": "Optional. Filter for movies.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSeries", | |
"in": "query", | |
"description": "Optional. Filter for series.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isKids", | |
"in": "query", | |
"description": "Optional. Filter for kids.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isSports", | |
"in": "query", | |
"description": "Optional. Filter for sports.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isNews", | |
"in": "query", | |
"description": "Optional. Filter for news.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isLibraryItem", | |
"in": "query", | |
"description": "Optional. Filter for is library item.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableTotalRecordCount", | |
"in": "query", | |
"description": "Optional. Return total record count.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Live tv recordings returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Recordings/{recordingId}": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets a live tv recording.", | |
"operationId": "GetRecording", | |
"parameters": [ | |
{ | |
"name": "recordingId", | |
"in": "path", | |
"description": "Recording id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Recording returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Deletes a live tv recording.", | |
"operationId": "DeleteRecording", | |
"parameters": [ | |
{ | |
"name": "recordingId", | |
"in": "path", | |
"description": "Recording id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Recording deleted." | |
}, | |
"404": { | |
"description": "Item not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Recordings/Folders": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets recording folders.", | |
"operationId": "GetRecordingFolders", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Recording folders returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Recordings/Groups": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets live tv recording groups.", | |
"operationId": "GetRecordingGroups", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Recording groups returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"deprecated": true, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Recordings/Groups/{groupId}": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Get recording group.", | |
"operationId": "GetRecordingGroup", | |
"parameters": [ | |
{ | |
"name": "groupId", | |
"in": "path", | |
"description": "Group id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"404": { | |
"description": "Not Found", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"deprecated": true, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Recordings/Series": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets live tv recording series.", | |
"operationId": "GetRecordingsSeries", | |
"parameters": [ | |
{ | |
"name": "channelId", | |
"in": "query", | |
"description": "Optional. Filter by channel id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "groupId", | |
"in": "query", | |
"description": "Optional. Filter by recording group.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "status", | |
"in": "query", | |
"description": "Optional. Filter by recording status.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/RecordingStatus" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "isInProgress", | |
"in": "query", | |
"description": "Optional. Filter by recordings that are in progress, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "seriesTimerId", | |
"in": "query", | |
"description": "Optional. Filter by recordings belonging to a series timer.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableTotalRecordCount", | |
"in": "query", | |
"description": "Optional. Return total record count.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Live tv recordings returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"deprecated": true, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/SeriesTimers": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets live tv series timers.", | |
"operationId": "GetSeriesTimers", | |
"parameters": [ | |
{ | |
"name": "sortBy", | |
"in": "query", | |
"description": "Optional. Sort by SortName or Priority.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "sortOrder", | |
"in": "query", | |
"description": "Optional. Sort in Ascending or Descending order.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SortOrder" | |
} | |
] | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Timers returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Creates a live tv series timer.", | |
"operationId": "CreateSeriesTimer", | |
"requestBody": { | |
"description": "New series timer info.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
], | |
"description": "Class SeriesTimerInfoDto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
], | |
"description": "Class SeriesTimerInfoDto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
], | |
"description": "Class SeriesTimerInfoDto." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Series timer info created." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/SeriesTimers/{timerId}": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets a live tv series timer.", | |
"operationId": "GetSeriesTimer", | |
"parameters": [ | |
{ | |
"name": "timerId", | |
"in": "path", | |
"description": "Timer id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Series timer returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Series timer not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Cancels a live tv series timer.", | |
"operationId": "CancelSeriesTimer", | |
"parameters": [ | |
{ | |
"name": "timerId", | |
"in": "path", | |
"description": "Timer id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Timer cancelled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Updates a live tv series timer.", | |
"operationId": "UpdateSeriesTimer", | |
"parameters": [ | |
{ | |
"name": "timerId", | |
"in": "path", | |
"description": "Timer id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"requestBody": { | |
"description": "New series timer info.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
], | |
"description": "Class SeriesTimerInfoDto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
], | |
"description": "Class SeriesTimerInfoDto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
], | |
"description": "Class SeriesTimerInfoDto." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Series timer updated." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Timers": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets the live tv timers.", | |
"operationId": "GetTimers", | |
"parameters": [ | |
{ | |
"name": "channelId", | |
"in": "query", | |
"description": "Optional. Filter by channel id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "seriesTimerId", | |
"in": "query", | |
"description": "Optional. Filter by timers belonging to a series timer.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "isActive", | |
"in": "query", | |
"description": "Optional. Filter by timers that are active.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "isScheduled", | |
"in": "query", | |
"description": "Optional. Filter by timers that are scheduled.", | |
"schema": { | |
"type": "boolean" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Success", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/TimerInfoDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/TimerInfoDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/TimerInfoDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Creates a live tv timer.", | |
"operationId": "CreateTimer", | |
"requestBody": { | |
"description": "New timer info.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TimerInfoDto" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TimerInfoDto" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TimerInfoDto" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Timer created." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Timers/{timerId}": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets a timer.", | |
"operationId": "GetTimer", | |
"parameters": [ | |
{ | |
"name": "timerId", | |
"in": "path", | |
"description": "Timer id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Timer returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/TimerInfoDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/TimerInfoDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/TimerInfoDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Cancels a live tv timer.", | |
"operationId": "CancelTimer", | |
"parameters": [ | |
{ | |
"name": "timerId", | |
"in": "path", | |
"description": "Timer id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Timer deleted." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Updates a live tv timer.", | |
"operationId": "UpdateTimer", | |
"parameters": [ | |
{ | |
"name": "timerId", | |
"in": "path", | |
"description": "Timer id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"requestBody": { | |
"description": "New timer info.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TimerInfoDto" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TimerInfoDto" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TimerInfoDto" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Timer updated." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Timers/Defaults": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Gets the default values for a new timer.", | |
"operationId": "GetDefaultTimer", | |
"parameters": [ | |
{ | |
"name": "programId", | |
"in": "query", | |
"description": "Optional. To attach default values based on a program.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Default values returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/SeriesTimerInfoDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/TunerHosts": { | |
"post": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Adds a tuner host.", | |
"operationId": "AddTunerHost", | |
"requestBody": { | |
"description": "New tuner host.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
] | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
] | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "Created tuner host returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Deletes a tuner host.", | |
"operationId": "DeleteTunerHost", | |
"parameters": [ | |
{ | |
"name": "id", | |
"in": "query", | |
"description": "Tuner host id.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Tuner host deleted." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/TunerHosts/Types": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Get tuner host types.", | |
"operationId": "GetTunerHostTypes", | |
"responses": { | |
"200": { | |
"description": "Tuner host types returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NameIdPair" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NameIdPair" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NameIdPair" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvAccess" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Tuners/{tunerId}/Reset": { | |
"post": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Resets a tv tuner.", | |
"operationId": "ResetTuner", | |
"parameters": [ | |
{ | |
"name": "tunerId", | |
"in": "path", | |
"description": "Tuner id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Tuner reset." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Tuners/Discover": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Discover tuners.", | |
"operationId": "DiscoverTuners", | |
"parameters": [ | |
{ | |
"name": "newDevicesOnly", | |
"in": "query", | |
"description": "Only discover new tuners.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Tuners returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveTv/Tuners/Discvover": { | |
"get": { | |
"tags": [ | |
"LiveTv" | |
], | |
"summary": "Discover tuners.", | |
"operationId": "DiscvoverTuners", | |
"parameters": [ | |
{ | |
"name": "newDevicesOnly", | |
"in": "query", | |
"description": "Only discover new tuners.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Tuners returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/TunerHostInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"LiveTvManagement" | |
] | |
} | |
] | |
} | |
}, | |
"/Localization/Countries": { | |
"get": { | |
"tags": [ | |
"Localization" | |
], | |
"summary": "Gets known countries.", | |
"operationId": "GetCountries", | |
"responses": { | |
"200": { | |
"description": "Known countries returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/CountryInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/CountryInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/CountryInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrDefault" | |
] | |
} | |
] | |
} | |
}, | |
"/Localization/Cultures": { | |
"get": { | |
"tags": [ | |
"Localization" | |
], | |
"summary": "Gets known cultures.", | |
"operationId": "GetCultures", | |
"responses": { | |
"200": { | |
"description": "Known cultures returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/CultureDto" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/CultureDto" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/CultureDto" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrDefault" | |
] | |
} | |
] | |
} | |
}, | |
"/Localization/Options": { | |
"get": { | |
"tags": [ | |
"Localization" | |
], | |
"summary": "Gets localization options.", | |
"operationId": "GetLocalizationOptions", | |
"responses": { | |
"200": { | |
"description": "Localization options returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/LocalizationOption" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/LocalizationOption" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/LocalizationOption" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrDefault" | |
] | |
} | |
] | |
} | |
}, | |
"/Localization/ParentalRatings": { | |
"get": { | |
"tags": [ | |
"Localization" | |
], | |
"summary": "Gets known parental ratings.", | |
"operationId": "GetParentalRatings", | |
"responses": { | |
"200": { | |
"description": "Known parental ratings returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ParentalRating" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ParentalRating" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ParentalRating" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"FirstTimeSetupOrDefault" | |
] | |
} | |
] | |
} | |
}, | |
"/Items/{itemId}/PlaybackInfo": { | |
"get": { | |
"tags": [ | |
"MediaInfo" | |
], | |
"summary": "Gets live playback media info for an item.", | |
"operationId": "GetPlaybackInfo", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "The user id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Playback info returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/PlaybackInfoResponse" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/PlaybackInfoResponse" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/PlaybackInfoResponse" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"MediaInfo" | |
], | |
"summary": "Gets live playback media info for an item.", | |
"description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.", | |
"operationId": "GetPostedPlaybackInfo", | |
"parameters": [ | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "The user id.", | |
"deprecated": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "maxStreamingBitrate", | |
"in": "query", | |
"description": "The maximum streaming bitrate.", | |
"deprecated": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "The start time in ticks.", | |
"deprecated": true, | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "The audio stream index.", | |
"deprecated": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "The subtitle stream index.", | |
"deprecated": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "The maximum number of audio channels.", | |
"deprecated": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The media source id.", | |
"deprecated": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The livestream id.", | |
"deprecated": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "autoOpenLiveStream", | |
"in": "query", | |
"description": "Whether to auto open the livestream.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableDirectPlay", | |
"in": "query", | |
"description": "Whether to enable direct play. Default: true.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableDirectStream", | |
"in": "query", | |
"description": "Whether to enable direct stream. Default: true.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableTranscoding", | |
"in": "query", | |
"description": "Whether to enable transcoding. Default: true.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowVideoStreamCopy", | |
"in": "query", | |
"description": "Whether to allow to copy the video stream. Default: true.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "allowAudioStreamCopy", | |
"in": "query", | |
"description": "Whether to allow to copy the audio stream. Default: true.", | |
"deprecated": true, | |
"schema": { | |
"type": "boolean" | |
} | |
} | |
], | |
"requestBody": { | |
"description": "The playback info.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackInfoDto" | |
} | |
], | |
"description": "Plabyback info dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackInfoDto" | |
} | |
], | |
"description": "Plabyback info dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackInfoDto" | |
} | |
], | |
"description": "Plabyback info dto." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "Playback info returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/PlaybackInfoResponse" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/PlaybackInfoResponse" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/PlaybackInfoResponse" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveStreams/Close": { | |
"post": { | |
"tags": [ | |
"MediaInfo" | |
], | |
"summary": "Closes a media source.", | |
"operationId": "CloseLiveStream", | |
"parameters": [ | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The livestream id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Livestream closed." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/LiveStreams/Open": { | |
"post": { | |
"tags": [ | |
"MediaInfo" | |
], | |
"summary": "Opens a media source.", | |
"operationId": "OpenLiveStream", | |
"parameters": [ | |
{ | |
"name": "openToken", | |
"in": "query", | |
"description": "The open token.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "The user id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "maxStreamingBitrate", | |
"in": "query", | |
"description": "The maximum streaming bitrate.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "startTimeTicks", | |
"in": "query", | |
"description": "The start time in ticks.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "The audio stream index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "The subtitle stream index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "maxAudioChannels", | |
"in": "query", | |
"description": "The maximum number of audio channels.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "itemId", | |
"in": "query", | |
"description": "The item id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "enableDirectPlay", | |
"in": "query", | |
"description": "Whether to enable direct play. Default: true.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableDirectStream", | |
"in": "query", | |
"description": "Whether to enable direct stream. Default: true.", | |
"schema": { | |
"type": "boolean" | |
} | |
} | |
], | |
"requestBody": { | |
"description": "The open live stream dto.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/OpenLiveStreamDto" | |
} | |
], | |
"description": "Open live stream dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/OpenLiveStreamDto" | |
} | |
], | |
"description": "Open live stream dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/OpenLiveStreamDto" | |
} | |
], | |
"description": "Open live stream dto." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "Media source opened.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/LiveStreamResponse" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/LiveStreamResponse" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/LiveStreamResponse" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Playback/BitrateTest": { | |
"get": { | |
"tags": [ | |
"MediaInfo" | |
], | |
"summary": "Tests the network with a request with the size of the bitrate.", | |
"operationId": "GetBitrateTestBytes", | |
"parameters": [ | |
{ | |
"name": "size", | |
"in": "query", | |
"description": "The bitrate. Defaults to 102400.", | |
"schema": { | |
"maximum": 100000000, | |
"minimum": 1, | |
"type": "integer", | |
"format": "int32", | |
"default": 102400 | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Test buffer returned.", | |
"content": { | |
"application/octet-stream": { | |
"schema": { | |
"type": "string", | |
"format": "binary" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Movies/Recommendations": { | |
"get": { | |
"tags": [ | |
"Movies" | |
], | |
"summary": "Gets movie recommendations.", | |
"operationId": "GetMovieRecommendations", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "parentId", | |
"in": "query", | |
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. The fields to return.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "categoryLimit", | |
"in": "query", | |
"description": "The max number of categories to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32", | |
"default": 5 | |
} | |
}, | |
{ | |
"name": "itemLimit", | |
"in": "query", | |
"description": "The max number of items to return per category.", | |
"schema": { | |
"type": "integer", | |
"format": "int32", | |
"default": 8 | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Movie recommendations returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RecommendationDto" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RecommendationDto" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RecommendationDto" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/MusicGenres": { | |
"get": { | |
"tags": [ | |
"MusicGenres" | |
], | |
"summary": "Gets all music genres from a given item, folder, or the entire library.", | |
"operationId": "GetMusicGenres", | |
"parameters": [ | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "searchTerm", | |
"in": "query", | |
"description": "The search term.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "parentId", | |
"in": "query", | |
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "excludeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "includeItemTypes", | |
"in": "query", | |
"description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/BaseItemKind" | |
} | |
} | |
}, | |
{ | |
"name": "isFavorite", | |
"in": "query", | |
"description": "Optional filter by items that are marked as favorite, or not.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional, the max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "User id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "nameStartsWithOrGreater", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameStartsWith", | |
"in": "query", | |
"description": "Optional filter by items whose name is sorted equally than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nameLessThan", | |
"in": "query", | |
"description": "Optional filter by items whose name is equally or lesser than a given input string.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "sortBy", | |
"in": "query", | |
"description": "Optional. Specify one or more sort orders, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "sortOrder", | |
"in": "query", | |
"description": "Sort Order - Ascending,Descending.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/SortOrder" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional, include image information in output.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
}, | |
{ | |
"name": "enableTotalRecordCount", | |
"in": "query", | |
"description": "Optional. Include total record count.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Music genres returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"deprecated": true, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/MusicGenres/{genreName}": { | |
"get": { | |
"tags": [ | |
"MusicGenres" | |
], | |
"summary": "Gets a music genre, by name.", | |
"operationId": "GetMusicGenre", | |
"parameters": [ | |
{ | |
"name": "genreName", | |
"in": "path", | |
"description": "The genre name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Success", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Notifications/{userId}": { | |
"get": { | |
"tags": [ | |
"Notifications" | |
], | |
"summary": "Gets a user's notifications.", | |
"operationId": "GetNotifications", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Notifications returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/NotificationResultDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/NotificationResultDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/NotificationResultDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Notifications/{userId}/Read": { | |
"post": { | |
"tags": [ | |
"Notifications" | |
], | |
"summary": "Sets notifications as read.", | |
"operationId": "SetRead", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Notifications set as read." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Notifications/{userId}/Summary": { | |
"get": { | |
"tags": [ | |
"Notifications" | |
], | |
"summary": "Gets a user's notification summary.", | |
"operationId": "GetNotificationsSummary", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Summary of user's notifications returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/NotificationsSummaryDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/NotificationsSummaryDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/NotificationsSummaryDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Notifications/{userId}/Unread": { | |
"post": { | |
"tags": [ | |
"Notifications" | |
], | |
"summary": "Sets notifications as unread.", | |
"operationId": "SetUnread", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Notifications set as unread." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Notifications/Admin": { | |
"post": { | |
"tags": [ | |
"Notifications" | |
], | |
"summary": "Sends a notification to all admins.", | |
"operationId": "CreateAdminNotification", | |
"requestBody": { | |
"description": "The notification request.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/AdminNotificationDto" | |
} | |
], | |
"description": "The admin notification dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/AdminNotificationDto" | |
} | |
], | |
"description": "The admin notification dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/AdminNotificationDto" | |
} | |
], | |
"description": "The admin notification dto." | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Notification sent." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Notifications/Services": { | |
"get": { | |
"tags": [ | |
"Notifications" | |
], | |
"summary": "Gets notification services.", | |
"operationId": "GetNotificationServices", | |
"responses": { | |
"200": { | |
"description": "All notification services returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NameIdPair" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NameIdPair" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NameIdPair" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Notifications/Types": { | |
"get": { | |
"tags": [ | |
"Notifications" | |
], | |
"summary": "Gets notification types.", | |
"operationId": "GetNotificationTypes", | |
"responses": { | |
"200": { | |
"description": "All notification types returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NotificationTypeInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NotificationTypeInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/NotificationTypeInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Packages": { | |
"get": { | |
"tags": [ | |
"Package" | |
], | |
"summary": "Gets available packages.", | |
"operationId": "GetPackages", | |
"responses": { | |
"200": { | |
"description": "Available packages returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/PackageInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/PackageInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/PackageInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Packages/{name}": { | |
"get": { | |
"tags": [ | |
"Package" | |
], | |
"summary": "Gets a package by name or assembly GUID.", | |
"operationId": "GetPackageInfo", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "The name of the package.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "assemblyGuid", | |
"in": "query", | |
"description": "The GUID of the associated assembly.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Package retrieved.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/PackageInfo" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/PackageInfo" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/PackageInfo" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Packages/Installed/{name}": { | |
"post": { | |
"tags": [ | |
"Package" | |
], | |
"summary": "Installs a package.", | |
"operationId": "InstallPackage", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Package name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "assemblyGuid", | |
"in": "query", | |
"description": "GUID of the associated assembly.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "version", | |
"in": "query", | |
"description": "Optional version. Defaults to latest version.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "repositoryUrl", | |
"in": "query", | |
"description": "Optional. Specify the repository to install from.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Package found." | |
}, | |
"404": { | |
"description": "Package not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation", | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Packages/Installing/{packageId}": { | |
"delete": { | |
"tags": [ | |
"Package" | |
], | |
"summary": "Cancels a package installation.", | |
"operationId": "CancelPackageInstallation", | |
"parameters": [ | |
{ | |
"name": "packageId", | |
"in": "path", | |
"description": "Installation Id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Installation cancelled." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation", | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Repositories": { | |
"get": { | |
"tags": [ | |
"Package" | |
], | |
"summary": "Gets all package repositories.", | |
"operationId": "GetRepositories", | |
"responses": { | |
"200": { | |
"description": "Package repositories returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RepositoryInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RepositoryInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RepositoryInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"post": { | |
"tags": [ | |
"Package" | |
], | |
"summary": "Sets the enabled and existing package repositories.", | |
"operationId": "SetRepositories", | |
"requestBody": { | |
"description": "The list of package repositories.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RepositoryInfo" | |
} | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RepositoryInfo" | |
} | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/RepositoryInfo" | |
} | |
} | |
} | |
}, | |
"required": true | |
}, | |
"responses": { | |
"204": { | |
"description": "Package repositories saved." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"RequiresElevation", | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Persons": { | |
"get": { | |
"tags": [ | |
"Persons" | |
], | |
"summary": "Gets all persons.", | |
"operationId": "GetPersons", | |
"parameters": [ | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "searchTerm", | |
"in": "query", | |
"description": "The search term.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "filters", | |
"in": "query", | |
"description": "Optional. Specify additional filters to apply.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFilter" | |
} | |
} | |
}, | |
{ | |
"name": "isFavorite", | |
"in": "query", | |
"description": "Optional filter by items that are marked as favorite, or not. userId is required.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional, include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional, the max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
}, | |
{ | |
"name": "excludePersonTypes", | |
"in": "query", | |
"description": "Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "personTypes", | |
"in": "query", | |
"description": "Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"name": "appearsInItemId", | |
"in": "query", | |
"description": "Optional. If specified, person results will be filtered on items related to said persons.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "User id.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional, include image information in output.", | |
"schema": { | |
"type": "boolean", | |
"default": true | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Persons returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Persons/{name}": { | |
"get": { | |
"tags": [ | |
"Persons" | |
], | |
"summary": "Get person by name.", | |
"operationId": "GetPerson", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "path", | |
"description": "Person name.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "Optional. Filter by user id, and attach user data.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Person returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDto" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Person not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Playlists": { | |
"post": { | |
"tags": [ | |
"Playlists" | |
], | |
"summary": "Creates a new playlist.", | |
"description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.", | |
"operationId": "CreatePlaylist", | |
"parameters": [ | |
{ | |
"name": "name", | |
"in": "query", | |
"description": "The playlist name.", | |
"deprecated": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "ids", | |
"in": "query", | |
"description": "The item ids.", | |
"deprecated": true, | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "The user id.", | |
"deprecated": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "mediaType", | |
"in": "query", | |
"description": "The media type.", | |
"deprecated": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"requestBody": { | |
"description": "The create playlist payload.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/CreatePlaylistDto" | |
} | |
], | |
"description": "Create new playlist dto." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/CreatePlaylistDto" | |
} | |
], | |
"description": "Create new playlist dto." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/CreatePlaylistDto" | |
} | |
], | |
"description": "Create new playlist dto." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"200": { | |
"description": "Success", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/PlaylistCreationResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/PlaylistCreationResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/PlaylistCreationResult" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Playlists/{playlistId}/Items": { | |
"post": { | |
"tags": [ | |
"Playlists" | |
], | |
"summary": "Adds items to a playlist.", | |
"operationId": "AddToPlaylist", | |
"parameters": [ | |
{ | |
"name": "playlistId", | |
"in": "path", | |
"description": "The playlist id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "ids", | |
"in": "query", | |
"description": "Item id, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "The userId.", | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Items added to playlist." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"Playlists" | |
], | |
"summary": "Removes items from a playlist.", | |
"operationId": "RemoveFromPlaylist", | |
"parameters": [ | |
{ | |
"name": "playlistId", | |
"in": "path", | |
"description": "The playlist id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "entryIds", | |
"in": "query", | |
"description": "The item ids, comma delimited.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Items removed." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"get": { | |
"tags": [ | |
"Playlists" | |
], | |
"summary": "Gets the original items of a playlist.", | |
"operationId": "GetPlaylistItems", | |
"parameters": [ | |
{ | |
"name": "playlistId", | |
"in": "path", | |
"description": "The playlist id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "userId", | |
"in": "query", | |
"description": "User id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "startIndex", | |
"in": "query", | |
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "limit", | |
"in": "query", | |
"description": "Optional. The maximum number of records to return.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "fields", | |
"in": "query", | |
"description": "Optional. Specify additional fields of information to return in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ItemFields" | |
} | |
} | |
}, | |
{ | |
"name": "enableImages", | |
"in": "query", | |
"description": "Optional. Include image information in output.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "enableUserData", | |
"in": "query", | |
"description": "Optional. Include user data.", | |
"schema": { | |
"type": "boolean" | |
} | |
}, | |
{ | |
"name": "imageTypeLimit", | |
"in": "query", | |
"description": "Optional. The max number of images to return, per image type.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "enableImageTypes", | |
"in": "query", | |
"description": "Optional. The image types to include in the output.", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/ImageType" | |
} | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Original playlist returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/BaseItemDtoQueryResult" | |
} | |
} | |
} | |
}, | |
"404": { | |
"description": "Playlist not found." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Playlists/{playlistId}/Items/{itemId}/Move/{newIndex}": { | |
"post": { | |
"tags": [ | |
"Playlists" | |
], | |
"summary": "Moves a playlist item.", | |
"operationId": "MoveItem", | |
"parameters": [ | |
{ | |
"name": "playlistId", | |
"in": "path", | |
"description": "The playlist id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "The item id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "newIndex", | |
"in": "path", | |
"description": "The new index.", | |
"required": true, | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Item moved to new index." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Sessions/Playing": { | |
"post": { | |
"tags": [ | |
"Playstate" | |
], | |
"summary": "Reports playback has started within a session.", | |
"operationId": "ReportPlaybackStart", | |
"requestBody": { | |
"description": "The playback start info.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackStartInfo" | |
} | |
], | |
"description": "Class PlaybackStartInfo." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackStartInfo" | |
} | |
], | |
"description": "Class PlaybackStartInfo." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackStartInfo" | |
} | |
], | |
"description": "Class PlaybackStartInfo." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Playback start recorded." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Sessions/Playing/Ping": { | |
"post": { | |
"tags": [ | |
"Playstate" | |
], | |
"summary": "Pings a playback session.", | |
"operationId": "PingPlaybackSession", | |
"parameters": [ | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "Playback session id.", | |
"required": true, | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Playback session pinged." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Sessions/Playing/Progress": { | |
"post": { | |
"tags": [ | |
"Playstate" | |
], | |
"summary": "Reports playback progress within a session.", | |
"operationId": "ReportPlaybackProgress", | |
"requestBody": { | |
"description": "The playback progress info.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackProgressInfo" | |
} | |
], | |
"description": "Class PlaybackProgressInfo." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackProgressInfo" | |
} | |
], | |
"description": "Class PlaybackProgressInfo." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackProgressInfo" | |
} | |
], | |
"description": "Class PlaybackProgressInfo." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Playback progress recorded." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Sessions/Playing/Stopped": { | |
"post": { | |
"tags": [ | |
"Playstate" | |
], | |
"summary": "Reports playback has stopped within a session.", | |
"operationId": "ReportPlaybackStopped", | |
"requestBody": { | |
"description": "The playback stop info.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackStopInfo" | |
} | |
], | |
"description": "Class PlaybackStopInfo." | |
} | |
}, | |
"text/json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackStopInfo" | |
} | |
], | |
"description": "Class PlaybackStopInfo." | |
} | |
}, | |
"application/*+json": { | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlaybackStopInfo" | |
} | |
], | |
"description": "Class PlaybackStopInfo." | |
} | |
} | |
} | |
}, | |
"responses": { | |
"204": { | |
"description": "Playback stop recorded." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Users/{userId}/PlayedItems/{itemId}": { | |
"post": { | |
"tags": [ | |
"Playstate" | |
], | |
"summary": "Marks an item as played for user.", | |
"operationId": "MarkPlayedItem", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "datePlayed", | |
"in": "query", | |
"description": "Optional. The date the item was played.", | |
"schema": { | |
"type": "string", | |
"format": "date-time" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Item marked as played.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/UserItemDataDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/UserItemDataDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/UserItemDataDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"Playstate" | |
], | |
"summary": "Marks an item as unplayed for user.", | |
"operationId": "MarkUnplayedItem", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "Item marked as unplayed.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/UserItemDataDto" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/UserItemDataDto" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/UserItemDataDto" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Users/{userId}/PlayingItems/{itemId}": { | |
"post": { | |
"tags": [ | |
"Playstate" | |
], | |
"summary": "Reports that a user has begun playing an item.", | |
"operationId": "OnPlaybackStart", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The id of the MediaSource.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "The audio stream index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "The subtitle stream index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "playMethod", | |
"in": "query", | |
"description": "The play method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlayMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "canSeek", | |
"in": "query", | |
"description": "Indicates if the client can seek.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Play start recorded." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"Playstate" | |
], | |
"summary": "Reports that a user has stopped playing an item.", | |
"operationId": "OnPlaybackStopped", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The id of the MediaSource.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "nextMediaType", | |
"in": "query", | |
"description": "The next media type that will play.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "positionTicks", | |
"in": "query", | |
"description": "Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Playback stop recorded." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Users/{userId}/PlayingItems/{itemId}/Progress": { | |
"post": { | |
"tags": [ | |
"Playstate" | |
], | |
"summary": "Reports a user's playback progress.", | |
"operationId": "OnPlaybackProgress", | |
"parameters": [ | |
{ | |
"name": "userId", | |
"in": "path", | |
"description": "User id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "itemId", | |
"in": "path", | |
"description": "Item id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
}, | |
{ | |
"name": "mediaSourceId", | |
"in": "query", | |
"description": "The id of the MediaSource.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "positionTicks", | |
"in": "query", | |
"description": "Optional. The current position, in ticks. 1 tick = 10000 ms.", | |
"schema": { | |
"type": "integer", | |
"format": "int64" | |
} | |
}, | |
{ | |
"name": "audioStreamIndex", | |
"in": "query", | |
"description": "The audio stream index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "subtitleStreamIndex", | |
"in": "query", | |
"description": "The subtitle stream index.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "volumeLevel", | |
"in": "query", | |
"description": "Scale of 0-100.", | |
"schema": { | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
{ | |
"name": "playMethod", | |
"in": "query", | |
"description": "The play method.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/PlayMethod" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "liveStreamId", | |
"in": "query", | |
"description": "The live stream id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "playSessionId", | |
"in": "query", | |
"description": "The play session id.", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
{ | |
"name": "repeatMode", | |
"in": "query", | |
"description": "The repeat mode.", | |
"schema": { | |
"allOf": [ | |
{ | |
"$ref": "#/components/schemas/RepeatMode" | |
} | |
] | |
} | |
}, | |
{ | |
"name": "isPaused", | |
"in": "query", | |
"description": "Indicates if the player is paused.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
}, | |
{ | |
"name": "isMuted", | |
"in": "query", | |
"description": "Indicates if the player is muted.", | |
"schema": { | |
"type": "boolean", | |
"default": false | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Play progress recorded." | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Plugins": { | |
"get": { | |
"tags": [ | |
"Plugins" | |
], | |
"summary": "Gets a list of currently installed plugins.", | |
"operationId": "GetPlugins", | |
"responses": { | |
"200": { | |
"description": "Installed plugins returned.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/PluginInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/PluginInfo" | |
} | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/components/schemas/PluginInfo" | |
} | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, | |
"security": [ | |
{ | |
"CustomAuthentication": [ | |
"DefaultAuthorization" | |
] | |
} | |
] | |
} | |
}, | |
"/Plugins/{pluginId}": { | |
"delete": { | |
"tags": [ | |
"Plugins" | |
], | |
"summary": "Uninstalls a plugin.", | |
"operationId": "UninstallPlugin", | |
"parameters": [ | |
{ | |
"name": "pluginId", | |
"in": "path", | |
"description": "Plugin id.", | |
"required": true, | |
"schema": { | |
"type": "string", | |
"format": "uuid" | |
} | |
} | |
], | |
"responses": { | |
"204": { | |
"description": "Plugin uninstalled." | |
}, | |
"404": { | |
"description": "Plugin not found.", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"CamelCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
}, | |
"application/json; profile=\"PascalCase\"": { | |
"schema": { | |
"$ref": "#/components/schemas/ProblemDetails" | |
} | |
} | |
} | |
}, | |
"401": { | |
"description": "Unauthorized" | |
}, | |
"403": { | |
"description": "Forbidden" | |
} | |
}, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment