mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-11 03:41:42 +00:00
Added /api/items/{id}/play endpoint
This commit is contained in:
parent
e6d4e89bd1
commit
7ef2eed2ad
4 changed files with 186 additions and 0 deletions
|
|
@ -40,3 +40,62 @@ paths:
|
||||||
description: TODO
|
description: TODO
|
||||||
oneOf:
|
oneOf:
|
||||||
- $ref: '../objects/LibraryItem.yaml#/components/schemas/libraryItem'
|
- $ref: '../objects/LibraryItem.yaml#/components/schemas/libraryItem'
|
||||||
|
/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.
|
||||||
|
tags:
|
||||||
|
- LibraryItem
|
||||||
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: deviceInfo
|
||||||
|
description: The device information to send to the server.
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/entities/Device.yaml#/components/schemas/deviceInfo'
|
||||||
|
- in: query
|
||||||
|
name: forceDirectPlay
|
||||||
|
description: Whether to force direct play of the library item.
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
example: false
|
||||||
|
- in: query
|
||||||
|
name: forceTranscode
|
||||||
|
description: Whether to force transcoding of the library item.
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
example: false
|
||||||
|
- in: query
|
||||||
|
name: supportedMimeTypes
|
||||||
|
description: The supported mime types for the device.
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
- in: query
|
||||||
|
name: mediaPlayer
|
||||||
|
description: The media player to use.
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/entities/PlaybackSession.yaml#/components/schemas/playbackSessionExpanded'
|
||||||
|
'404':
|
||||||
|
description: Not Found
|
||||||
|
content:
|
||||||
|
text/html:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
description: The library item does not have any audio tracks to play.
|
||||||
|
example: Not Found
|
||||||
|
|
|
||||||
42
docs/objects/entities/Device.yaml
Normal file
42
docs/objects/entities/Device.yaml
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
deviceId:
|
||||||
|
description: The client device identifier.
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
clientVersion:
|
||||||
|
description: The client version.
|
||||||
|
type: string
|
||||||
|
example: 1.0.0
|
||||||
|
clientName:
|
||||||
|
description: The client name.
|
||||||
|
type: string
|
||||||
|
example: "Audible"
|
||||||
|
manufacturer:
|
||||||
|
description: The manufacturer of the device.
|
||||||
|
type: string
|
||||||
|
example: "Apple"
|
||||||
|
model:
|
||||||
|
description: The model of the device.
|
||||||
|
type: string
|
||||||
|
example: "iPhone 12"
|
||||||
|
sdkVersion:
|
||||||
|
description: For an Android client, the Android SDK version of the client.
|
||||||
|
type: integer
|
||||||
|
example: 49
|
||||||
|
deviceInfo:
|
||||||
|
description: The device information to send to the server.
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
deviceId:
|
||||||
|
$ref: '#/components/schemas/deviceId'
|
||||||
|
clientVersion:
|
||||||
|
$ref: '#/components/schemas/clientVersion'
|
||||||
|
clientName:
|
||||||
|
$ref: '#/components/schemas/clientName'
|
||||||
|
manufacturer:
|
||||||
|
$ref: '#/components/schemas/manufacturer'
|
||||||
|
model:
|
||||||
|
$ref: '#/components/schemas/model'
|
||||||
|
sdkVersion:
|
||||||
|
$ref: '#/components/schemas/sdkVersion'
|
||||||
82
docs/objects/entities/PlaybackSession.yaml
Normal file
82
docs/objects/entities/PlaybackSession.yaml
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
playbackSessionId:
|
||||||
|
description: The playback session identifier.
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
playbackSession:
|
||||||
|
id:
|
||||||
|
$ref: '#/components/schemas/playbackSessionId'
|
||||||
|
userId:
|
||||||
|
$ref: './User.yaml#/components/schemas/userId'
|
||||||
|
libraryId:
|
||||||
|
$ref: '../Library.yaml#/components/schemas/libraryId'
|
||||||
|
libraryItemId:
|
||||||
|
$ref: '../LibraryItem.yaml#/components/schemas/libraryItemId'
|
||||||
|
episodeId:
|
||||||
|
$ref: '../mediaTypes/Podcast.yaml#/components/schemas/episodeId'
|
||||||
|
nullable: true
|
||||||
|
mediaType:
|
||||||
|
$ref: '../../controllers/LibraryItemController.yaml#/components/schemas/libraryMediaType'
|
||||||
|
mediaMetadata:
|
||||||
|
description: The metadata of the media.
|
||||||
|
oneOf:
|
||||||
|
- $ref: '../mediaTypes/Book.yaml#/components/schemas/bookMinified'
|
||||||
|
- $ref: '../mediaTypes/Podcast.yaml#/components/schemas/podcastMinified'
|
||||||
|
chapters:
|
||||||
|
description: The chapters of the media.
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '../metadata/BookMetadata.yaml#/components/schemas/bookChapter'
|
||||||
|
displayTitle:
|
||||||
|
description: The display title of the media.
|
||||||
|
type: string
|
||||||
|
displayAuthor:
|
||||||
|
description: The display author of the media.
|
||||||
|
type: string
|
||||||
|
coverPath:
|
||||||
|
$ref: '../Book.yaml#/components/schemas/bookCoverPath'
|
||||||
|
duration:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/durationSec'
|
||||||
|
playMethod:
|
||||||
|
type: integer
|
||||||
|
description: The method used to play the media. 0 = Direct play, 1 = Direct Stream, 2 = Transcode, 3 = Local
|
||||||
|
mediaPlayer:
|
||||||
|
type: string
|
||||||
|
description: The media player used to play the media.
|
||||||
|
deviceInfo:
|
||||||
|
$ref: './Device.yaml#/components/schemas/deviceInfo'
|
||||||
|
serverVersion:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/serverVersion'
|
||||||
|
date:
|
||||||
|
description: TODO
|
||||||
|
type: String
|
||||||
|
dayOfWeek:
|
||||||
|
description: TODO
|
||||||
|
type: String
|
||||||
|
timeListening:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/durationSec'
|
||||||
|
startTime:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/durationSec'
|
||||||
|
currentTime:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/durationSec'
|
||||||
|
createdAt:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/createdAt'
|
||||||
|
updatedAt:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/updatedAt'
|
||||||
|
playbackSessionExpanded:
|
||||||
|
description: Expanded playback session schema.
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/components/schemas/playbackSession'
|
||||||
|
- properties:
|
||||||
|
audioTracks:
|
||||||
|
description: The audio tracks of the media.
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '../files/AudioTrack.yaml#/components/schemas/AudioTrack'
|
||||||
|
videoTrack:
|
||||||
|
description: The video track of the media. TODO
|
||||||
|
type: object
|
||||||
|
nullable: true
|
||||||
|
libraryItem:
|
||||||
|
$ref: '../LibraryItem.yaml#/components/schemas/libraryItem'
|
||||||
|
|
@ -59,6 +59,9 @@ components:
|
||||||
type: boolean
|
type: boolean
|
||||||
example: true
|
example: true
|
||||||
default: false
|
default: false
|
||||||
|
serverVersion:
|
||||||
|
type: string
|
||||||
|
description: The server version
|
||||||
region:
|
region:
|
||||||
description: The region used to search.
|
description: The region used to search.
|
||||||
type: string
|
type: string
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue