mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-11 03:41:42 +00:00
* Update: formatting * Fix: libraryItemController `play` endpoint + Endpoints cannot have optional path parameters + Moved schemas to `components` section * Fix: MeController optional path parameters * Fix: Books do not have `episodeId` in `mediaProgress` * Fix: `PlaybackSession` oneOf between book and podcast * Update: bundled spec * Fix: `allowReserved` in LibraryItem include query * Add: tags to AuthController endpoints * Fix: summary of play endpoints * Update: bundled spec
161 lines
5.3 KiB
YAML
161 lines
5.3 KiB
YAML
components:
|
|
schemas:
|
|
parameters:
|
|
include:
|
|
in: query
|
|
name: include
|
|
description: A comma separated list of what to include with the library item. The options are progress, rssfeed, authors (for books), and downloads (for podcasts). expanded must be 1 for include to have an effect.
|
|
allowReserved: true
|
|
schema:
|
|
type: string
|
|
expanded:
|
|
in: query
|
|
name: expanded
|
|
description: Whether to return Library Item Expanded instead. 0 for false, 1 for true.
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
episode:
|
|
in: query
|
|
name: episode
|
|
description: If requesting progress for a podcast, the episode ID to get progress for.
|
|
schema:
|
|
$ref: '../objects/mediaTypes/Podcast.yaml#/components/schemas/podcastId'
|
|
deviceInfo:
|
|
in: query
|
|
name: deviceInfo
|
|
description: The device information to send to the server.
|
|
schema:
|
|
$ref: '../objects/entities/Device.yaml#/components/schemas/deviceInfo'
|
|
forceDirectPlay:
|
|
in: query
|
|
name: forceDirectPlay
|
|
description: Whether to force direct play of the library item.
|
|
schema:
|
|
type: boolean
|
|
example: false
|
|
forceTranscode:
|
|
in: query
|
|
name: forceTranscode
|
|
description: Whether to force transcoding of the library item.
|
|
schema:
|
|
type: boolean
|
|
example: false
|
|
supportedMimeTypes:
|
|
in: query
|
|
name: supportedMimeTypes
|
|
description: The supported mime types for the device.
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
mediaPlayer:
|
|
in: query
|
|
name: mediaPlayer
|
|
description: The media player to use.
|
|
schema:
|
|
type: string
|
|
responses:
|
|
libraryItem404:
|
|
description: Not Found
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
description: The library item does not exist.
|
|
example: Not Found
|
|
paths:
|
|
/api/items/{id}:
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: The ID of the library item.
|
|
required: true
|
|
schema:
|
|
$ref: '../objects/LibraryItem.yaml#/components/schemas/libraryItemId'
|
|
get:
|
|
operationId: getLibraryItem
|
|
summary: Get a single library item by ID on server.
|
|
description: Get a single library item by ID on server.
|
|
tags:
|
|
- LibraryItem
|
|
parameters:
|
|
- $ref: '#/components/schemas/parameters/include'
|
|
- $ref: '#/components/schemas/parameters/expanded'
|
|
- $ref: '#/components/schemas/parameters/episode'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: TODO
|
|
oneOf:
|
|
- $ref: '../objects/LibraryItem.yaml#/components/schemas/libraryItem'
|
|
'404':
|
|
$ref: '#/components/responses/libraryItem404'
|
|
/api/items/{id}/play:
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: The ID of the library item.
|
|
required: true
|
|
schema:
|
|
$ref: '../objects/LibraryItem.yaml#/components/schemas/libraryItemId'
|
|
post:
|
|
operationId: playLibraryItem
|
|
summary: Play a library item
|
|
description: Play a library item by ID.
|
|
tags:
|
|
- LibraryItem
|
|
parameters:
|
|
- $ref: '#/components/schemas/parameters/deviceInfo'
|
|
- $ref: '#/components/schemas/parameters/forceDirectPlay'
|
|
- $ref: '#/components/schemas/parameters/forceTranscode'
|
|
- $ref: '#/components/schemas/parameters/supportedMimeTypes'
|
|
- $ref: '#/components/schemas/parameters/mediaPlayer'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../objects/entities/PlaybackSession.yaml#/components/schemas/playbackSessionExpanded'
|
|
'404':
|
|
$ref: '#/components/responses/libraryItem404'
|
|
/api/items/{id}/play/{episodeId}:
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: The ID of the library item.
|
|
required: true
|
|
schema:
|
|
$ref: '../objects/LibraryItem.yaml#/components/schemas/libraryItemId'
|
|
- name: episodeId
|
|
in: path
|
|
description: The ID of the episode to play.
|
|
required: true
|
|
schema:
|
|
$ref: '../objects/mediaTypes/Podcast.yaml#/components/schemas/podcastId'
|
|
post:
|
|
operationId: playLibraryItemPodcastEpisode
|
|
summary: Play a podcast episode
|
|
description: Play a podcast by library item ID and episode ID.
|
|
tags:
|
|
- LibraryItem
|
|
parameters:
|
|
- $ref: '#/components/schemas/parameters/deviceInfo'
|
|
- $ref: '#/components/schemas/parameters/forceDirectPlay'
|
|
- $ref: '#/components/schemas/parameters/forceTranscode'
|
|
- $ref: '#/components/schemas/parameters/supportedMimeTypes'
|
|
- $ref: '#/components/schemas/parameters/mediaPlayer'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../objects/entities/PlaybackSession.yaml#/components/schemas/playbackSessionExpanded'
|
|
'404':
|
|
$ref: '#/components/responses/libraryItem404'
|