You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3165 lines
80 KiB
YAML
3165 lines
80 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: YoutubeDL-Material API Docs - Official
|
|
version: '1.0'
|
|
description: "Welcome to the official docs for YoutubeDL-Material.\n\n\nYou can check out all the available endpoints. Remember to authenticate with your API key using the \"apiKey\" query parameter with your requests.\n\n\nTo do so, simply add this to the end of your API call:\n\n\n`?apiKey=API_KEY`\n\n\nReplce API_KEY with the API key in the settings menu. If one doesn't exist, click generate to create one.\n\n### Multi-user mode\n\nWhen using multi-user mode, you will need to supply a JWT token to authenticate requests through that user. This lets the server know which user to run the task for, like downloading a video for a specific user. \n\nTo do this, you must use the `/api/auth/login` endpoint to login using a user's username and password. This will result in an object containing a `token`. Supply this along with your API key like so:\n\n`?apiKey=API_KEY&jwt=JWT_TOKEN`\n\nNotice the `&` between the `API_KEY` and `jwt`."
|
|
contact:
|
|
name: Isaac Abadi
|
|
url: https://github.com/Tzahi12345/YoutubeDL-Material
|
|
email: IsaacMGrynsztein@gmail.com
|
|
servers:
|
|
- url: 'http://localhost:17442'
|
|
paths:
|
|
/api/downloadFile:
|
|
post:
|
|
tags:
|
|
- downloader
|
|
summary: Download video file
|
|
description: |-
|
|
Downloads a file with the given URL. Will include global args if they exist.
|
|
|
|
|
|
HTTP requests will return once the video file download completes. In the future, it will (by default) return once the download starts, and a separate API call will be used for checking the download status.
|
|
operationId: post-tomp4
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DownloadRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DownloadResponse'
|
|
'500':
|
|
description: Server download error
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/generateArgs:
|
|
post:
|
|
tags:
|
|
- downloader
|
|
summary: Generates arguments used to download file
|
|
description: Generates args, used for checking what args would run if you ran downloadFile
|
|
operationId: post-generateArgs
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DownloadRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenerateArgsResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/getMp3s:
|
|
get:
|
|
tags:
|
|
- files
|
|
summary: Get all mp3 files
|
|
description: Gets all mp3 files and audio playlists stored in the db
|
|
operationId: get-getMp3s
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetMp3sResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/getMp4s:
|
|
get:
|
|
tags:
|
|
- files
|
|
summary: Get all mp4 files
|
|
description: Gets all mp4 files and video playlists stored in the db
|
|
operationId: get-getMp4s
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetMp4sResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/getAllFiles:
|
|
post:
|
|
tags:
|
|
- files
|
|
summary: Get all files
|
|
description: Gets all files and playlists stored in the db
|
|
operationId: get-getAllFiles
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetAllFilesRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetAllFilesResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/rss:
|
|
get:
|
|
tags:
|
|
- files
|
|
summary: Generates an RSS feed
|
|
description: Generates an RSS feed for downloaded files
|
|
operationId: get-rss
|
|
parameters:
|
|
- in: query
|
|
name: params
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/GetAllFilesRequest'
|
|
- type: object
|
|
properties:
|
|
uuid:
|
|
type: string
|
|
description: user uid
|
|
default: null
|
|
style: form
|
|
explode: true
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
description: RSS feed
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/getFile:
|
|
post:
|
|
tags:
|
|
- files
|
|
summary: Get file database object
|
|
description: Gets a file db object by its uid and type. Type will be found if not provided
|
|
operationId: post-getFile
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetFileRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetFileResponse'
|
|
'401':
|
|
description: User is not authorized to view the file.
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/updateFile:
|
|
post:
|
|
tags:
|
|
- files
|
|
summary: Updates file database object
|
|
description: Updates a file db object using its uid and a change object.
|
|
operationId: post-updateFile
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateFileRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/enableSharing:
|
|
post:
|
|
tags:
|
|
- files
|
|
- playlists
|
|
summary: Enable sharing
|
|
description: Enables sharing for a video or playlist
|
|
operationId: post-enableSharing
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SharingToggle'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/disableSharing:
|
|
post:
|
|
tags:
|
|
- files
|
|
- playlists
|
|
summary: Disable sharing
|
|
description: Disables sharing for a video or playlist
|
|
operationId: post-disableSharing
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SharingToggle'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/incrementViewCount:
|
|
post:
|
|
summary: Increments a file's view count
|
|
tags:
|
|
- files
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/IncrementViewCountRequest'
|
|
operationId: post-api-incrementViewCount
|
|
description: Increments a file's view count
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/subscribe:
|
|
post:
|
|
tags:
|
|
- subscriptions
|
|
summary: Subscribe to channel or playlist
|
|
description: Allows you to subscribe to channels and playlists. Name is optional (will use the channel/playlist name)
|
|
operationId: post-api-subscribe
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SubscribeRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SubscribeResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/unsubscribe:
|
|
post:
|
|
tags:
|
|
- subscriptions
|
|
summary: Unsubscribe from channel or playlist
|
|
description: Unsubscribes from a subscription
|
|
operationId: post-api-unsubscribe
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnsubscribeRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnsubscribeResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/deleteSubscriptionFile:
|
|
post:
|
|
tags:
|
|
- subscriptions
|
|
summary: Delete video from subscription
|
|
description: Deletes a file from a subscription
|
|
operationId: post-api-deleteSubscriptionFile
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteSubscriptionFileRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
'500':
|
|
description: Internal Server Error
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/getSubscription:
|
|
post:
|
|
tags:
|
|
- subscriptions
|
|
summary: Get subscription
|
|
description: Gets a subscription from its ID
|
|
operationId: post-api-getSubscription
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetSubscriptionRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetSubscriptionResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/downloadVideosForSubscription:
|
|
post:
|
|
tags:
|
|
- subscriptions
|
|
summary: Download videos for subscription
|
|
description: 'Manually check the subscription for new videos. When used on newly created subscriptions, it will grab all possible videos'
|
|
operationId: post-api-downloadVideosForSubscription
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DownloadVideosForSubscriptionRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/getSubscriptions:
|
|
post:
|
|
tags:
|
|
- subscriptions
|
|
summary: Get all subscriptions
|
|
operationId: post-api-getSubscriptions
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetAllSubscriptionsResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/createPlaylist:
|
|
post:
|
|
tags:
|
|
- playlists
|
|
summary: Create a playlist
|
|
description: Creates a playlist from existing downloaded videos
|
|
operationId: post-api-createPlaylist
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreatePlaylistRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreatePlaylistResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/getPlaylist:
|
|
post:
|
|
tags:
|
|
- playlists
|
|
summary: Get playlist
|
|
description: Gets a playlist object from the database from its ID
|
|
operationId: post-api-getPlaylist
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetPlaylistRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetPlaylistResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/updatePlaylist:
|
|
post:
|
|
tags:
|
|
- playlists
|
|
summary: Update playlist
|
|
description: Updates the playlist object
|
|
operationId: post-api-updatePlaylist
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdatePlaylistRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/deletePlaylist:
|
|
post:
|
|
tags:
|
|
- playlists
|
|
summary: Delete playlist
|
|
description: Deletes a playlist from the database by its ID
|
|
operationId: post-api-deletePlaylist
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeletePlaylistRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/addFileToPlaylist:
|
|
post:
|
|
tags:
|
|
- playlists
|
|
summary: Adds a file to a playlist
|
|
description: Adds a file to a playlist
|
|
operationId: post-api-addFileToPlaylist
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AddFileToPlaylistRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/deleteMp4:
|
|
post:
|
|
tags:
|
|
- files
|
|
summary: Delete mp4 file
|
|
description: Deletes an mp4 file by its uid
|
|
operationId: post-api-deleteMp4
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteMp3Mp4Request'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
description: Whether the operation succeeded
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/downloadFileFromServer:
|
|
post:
|
|
tags:
|
|
- files
|
|
summary: Download downloaded file from server
|
|
operationId: post-api-downloadFile
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DownloadFileRequest'
|
|
responses:
|
|
'200':
|
|
description: 'The file itself is in the response, as well as an options object.'
|
|
'401':
|
|
description: User is not authorized to view the file.
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/deleteFile:
|
|
post:
|
|
tags:
|
|
- files
|
|
summary: Delete downloaded file
|
|
operationId: post-api-deleteFile
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteMp3Mp4Request'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/deleteAllFiles:
|
|
post:
|
|
tags:
|
|
- files
|
|
summary: Delete all downloaded files
|
|
operationId: post-api-deleteAllFiles
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteMp3Mp4Request'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteAllFilesResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/downloadArchive:
|
|
post:
|
|
tags:
|
|
- subscriptions
|
|
summary: Download subscription archive
|
|
description: Downloads the archive file of a subscription
|
|
operationId: post-api-downloadArchive
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DownloadArchiveRequest'
|
|
responses:
|
|
'200':
|
|
description: The archive text file is sent as a response
|
|
'404':
|
|
description: If the archive dir is not found, 404 is sent as a response
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/deleteArchiveItems:
|
|
post:
|
|
tags:
|
|
- archive
|
|
summary: Delete item from archive
|
|
description: 'Deletes an item from the archive'
|
|
operationId: post-api-deleteArchiveItems
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteArchiveItemsRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/importArchive:
|
|
post:
|
|
tags:
|
|
- archive
|
|
summary: Imports archive
|
|
description: 'Imports an existing archive.txt file'
|
|
operationId: post-api-importArchive
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ImportArchiveRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/uploadCookies:
|
|
post:
|
|
tags:
|
|
- downloader
|
|
summary: Upload cookies
|
|
description: 'Uploads cookies file to be used during downloading'
|
|
operationId: post-api-uploadCookies
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
$ref: '#/components/schemas/UploadCookiesRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/updaterStatus:
|
|
get:
|
|
tags:
|
|
- updating
|
|
summary: Get updater status
|
|
description: Gets the status of an update that is in progress
|
|
operationId: get-api-updaterStatus
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdaterStatus'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/updateServer:
|
|
post:
|
|
tags:
|
|
- updating
|
|
summary: Update server
|
|
description: 'Updates the server. If no tag is provided, the latest version will be used.'
|
|
operationId: post-api-updateServer
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateServerRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/isPinSet:
|
|
post:
|
|
tags:
|
|
- security
|
|
summary: Check if pin is set
|
|
description: Checks if the pin is set for settings
|
|
operationId: post-api-isPinSet
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/inline_response_200_15'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/generateNewAPIKey:
|
|
post:
|
|
tags:
|
|
- security
|
|
summary: Generate new API key
|
|
description: Generates and sets a new API key
|
|
operationId: post-genapikey
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenerateNewApiKeyResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/deleteMp3:
|
|
post:
|
|
tags:
|
|
- files
|
|
summary: Delete mp3 file
|
|
description: Deletes an mp3 file by its uid
|
|
operationId: post-api-deleteMp3
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteMp3Mp4Request'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
description: Whether the operation succeeded
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/config:
|
|
get:
|
|
tags: []
|
|
summary: Get config
|
|
description: "Gets the config file stored in 'default.json'"
|
|
operationId: get-config
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/setConfig:
|
|
post:
|
|
summary: Set config
|
|
description: "Sets the 'default.json' config file to the 'new_config_file' object"
|
|
operationId: post-api-setConfig
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SetConfigRequest'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
'404':
|
|
description: Tried to save invalid config file.
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/downloads:
|
|
post:
|
|
summary: Get info for all downloads
|
|
tags:
|
|
- downloader
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetAllDownloadsResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetAllDownloadsRequest'
|
|
operationId: post-api-downloads
|
|
description: Retrieves all downloads recorded by the server and their status.
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/download:
|
|
post:
|
|
summary: Get info for one download
|
|
operationId: post-api-download
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetDownloadResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetDownloadRequest'
|
|
description: ''
|
|
description: "Gets a single download using its download_id."
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- downloader
|
|
/api/pauseDownload:
|
|
post:
|
|
summary: Pauses one download
|
|
operationId: post-api-pause-download
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetDownloadRequest'
|
|
description: ''
|
|
description: "Pause a single download using its download_id."
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- downloader
|
|
/api/pauseAllDownloads:
|
|
post:
|
|
tags:
|
|
- downloader
|
|
summary: Pauses all downloads
|
|
operationId: post-api-pause-all-downloads
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/resumeDownload:
|
|
post:
|
|
summary: Resume one download
|
|
operationId: post-api-resume-download
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetDownloadRequest'
|
|
description: ''
|
|
description: "Resume a single download using its download_id."
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- downloader
|
|
/api/resumeAllDownloads:
|
|
post:
|
|
tags:
|
|
- downloader
|
|
summary: Resumes all downloads
|
|
operationId: post-api-resume-all-downloads
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/restartDownload:
|
|
post:
|
|
summary: Restart one download
|
|
operationId: post-api-restart-download
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RestartDownloadResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetDownloadRequest'
|
|
description: ''
|
|
description: "Restart a single download using its download_id."
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- downloader
|
|
/api/cancelDownload:
|
|
post:
|
|
summary: Cancel one download
|
|
operationId: post-api-cancel-download
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetDownloadRequest'
|
|
description: ''
|
|
description: "Cancel a single download using its download_id."
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- downloader
|
|
/api/clearDownload:
|
|
post:
|
|
summary: Clear one download
|
|
operationId: post-api-clear-download
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetDownloadRequest'
|
|
description: ''
|
|
description: "Clears a single download from the downloaded list using its download_id."
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- downloader
|
|
/api/clearDownloads:
|
|
post:
|
|
summary: Clear multiple downloads
|
|
operationId: post-api-clear-downloads
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ClearDownloadsRequest'
|
|
description: ''
|
|
description: "Clears multiple downloads based on a given filter."
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- downloader
|
|
/api/getTask:
|
|
post:
|
|
summary: Get info for one task
|
|
operationId: post-api-get-task
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetTaskResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetTaskRequest'
|
|
description: ''
|
|
description: "Gets a single task using its key."
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- tasks
|
|
/api/getTasks:
|
|
post:
|
|
tags:
|
|
- tasks
|
|
summary: Get tasks
|
|
operationId: post-api-get-tasks
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetAllTasksResponse'
|
|
/api/resetTasks:
|
|
post:
|
|
tags:
|
|
- tasks
|
|
summary: Resets all tasks
|
|
operationId: post-api-reset-tasks
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/runTask:
|
|
post:
|
|
tags:
|
|
- tasks
|
|
summary: Runs one task
|
|
operationId: post-api-run-task
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetTaskRequest'
|
|
/api/confirmTask:
|
|
post:
|
|
tags:
|
|
- tasks
|
|
summary: Confirms a task
|
|
operationId: post-api-confirm-task
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetTaskRequest'
|
|
/api/cancelTask:
|
|
post:
|
|
tags:
|
|
- tasks
|
|
summary: Cancels a task
|
|
operationId: post-api-cancel-task
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetTaskRequest'
|
|
/api/updateTaskSchedule:
|
|
post:
|
|
tags:
|
|
- tasks
|
|
summary: Updates task schedule
|
|
operationId: post-api-update-task-schedule
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateTaskScheduleRequest'
|
|
/api/updateTaskData:
|
|
post:
|
|
tags:
|
|
- tasks
|
|
summary: Updates task data
|
|
operationId: post-api-update-task-data
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateTaskDataRequest'
|
|
/api/getDBBackups:
|
|
post:
|
|
tags:
|
|
- tasks
|
|
summary: Get database backups
|
|
operationId: post-api-get-database-backups
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetDBBackupsResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
/api/restoreDBBackup:
|
|
post:
|
|
tags:
|
|
- tasks
|
|
summary: Restore database backup
|
|
operationId: post-api-restore-database-backup
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RestoreDBBackupRequest'
|
|
/api/auth/login:
|
|
post:
|
|
summary: Login
|
|
operationId: post-api-auth-login
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/LoginResponse'
|
|
description: Use this method to log into a user using their username and password and receive a jwt auth token so you can send per-user requests.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/LoginRequest'
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- multi-user mode
|
|
/api/auth/register:
|
|
post:
|
|
summary: Register
|
|
operationId: post-api-auth-register
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RegisterResponse'
|
|
description: Use this endpoint to register a user. It will only work if registration is enabled.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RegisterRequest'
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- multi-user mode
|
|
/api/updateUser:
|
|
post:
|
|
summary: Update user
|
|
operationId: post-api-updateUser
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateUserRequest'
|
|
description: Updates certain properties for a user. Only two are possible right now.
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- multi-user mode
|
|
/api/deleteUser:
|
|
post:
|
|
summary: Delete user
|
|
operationId: post-api-deleteUser
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
description: Deletes a user by its uid.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteUserRequest'
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- multi-user mode
|
|
/api/getRoles:
|
|
post:
|
|
summary: Get available roles
|
|
operationId: post-api-getRoles
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetRolesResponse'
|
|
description: Gets the available roles and their permissions
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- multi-user mode
|
|
/api/changeUserPermissions:
|
|
post:
|
|
summary: Change user permissions
|
|
operationId: post-api-changeUserPermissions
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
description: "Changes the permissions for a user. Available values for each permission are: `default`, `yes`, and `no`. `default` will use the user's role's default permission."
|
|
security:
|
|
- Auth query parameter: []
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ChangeUserPermissionsRequest'
|
|
tags:
|
|
- multi-user mode
|
|
/api/changeRolePermissions:
|
|
post:
|
|
summary: Change role permissions
|
|
operationId: post-api-changeRolePermissions
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ChangeRolePermissionsRequest'
|
|
description: 'Changes the permissions for a role. Available values for each permission are: `yes`, and `no`.'
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- multi-user mode
|
|
/api/getUsers:
|
|
post:
|
|
summary: Get all users
|
|
operationId: post-api-getUsers
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetUsersResponse'
|
|
description: 'Gets all users, returns a list of the user objects including their user permissions, videos, playlists, subscriptions, etc.'
|
|
security:
|
|
- Auth query parameter: []
|
|
tags:
|
|
- multi-user mode
|
|
/api/versionInfo:
|
|
get:
|
|
tags:
|
|
- server
|
|
summary: Gets server version info
|
|
operationId: get-api-versionInfo
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VersionInfoResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/getLogs:
|
|
post:
|
|
summary: Gets logs from server
|
|
tags:
|
|
- server
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetLogsResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetLogsRequest'
|
|
operationId: post-api-getLogs
|
|
description: Gets logs from server
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/clearAllLogs:
|
|
post:
|
|
summary: Clears the log file
|
|
tags:
|
|
- server
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
operationId: post-api-clearAllLogs
|
|
description: Clears the log file
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/getDBInfo:
|
|
get:
|
|
tags:
|
|
- db
|
|
summary: Gets information on the DB
|
|
operationId: get-api-getDBInfo
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DBInfoResponse'
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/transferDB:
|
|
post:
|
|
summary: Transfers DB between Local and MongoDB
|
|
tags:
|
|
- db
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TransferDBResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TransferDBRequest'
|
|
operationId: post-api-transferDB
|
|
description: Initiates a transfer between Local and MongoDB. Connection string must be set.
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/testConnectionString:
|
|
post:
|
|
summary: Tests a MongoDB connection string
|
|
tags:
|
|
- db
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TestConnectionStringResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TestConnectionStringRequest'
|
|
operationId: post-api-testConnectionString
|
|
description: Tests a MongoDB connection string and returns an error if one exists.
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/getFullTwitchChat:
|
|
post:
|
|
summary: Gets the downloaded Twitch Chat (VODs only)
|
|
tags:
|
|
- twitch
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetFullTwitchChatResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetFullTwitchChatRequest'
|
|
operationId: post-api-getFullTwitchChat
|
|
description: Gets the downloaded Twitch Chat (VODs only)
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/downloadTwitchChatByVODID:
|
|
post:
|
|
summary: Downloads Twitch Chat for a VOD
|
|
tags:
|
|
- twitch
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DownloadTwitchChatByVODIDResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DownloadTwitchChatByVODIDRequest'
|
|
operationId: post-api-downloadTwitchChatByVODID
|
|
description: Downloads Twitch Chat for a VOD
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/checkConcurrentStream:
|
|
post:
|
|
summary: Checks status of a concurrent stream
|
|
tags:
|
|
- player
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CheckConcurrentStreamResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CheckConcurrentStreamRequest'
|
|
operationId: post-api-checkConcurrentStream
|
|
description: Checks status of a concurrent stream
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/updateConcurrentStream:
|
|
post:
|
|
summary: Updates a concurrent stream
|
|
tags:
|
|
- player
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateConcurrentStreamResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateConcurrentStreamRequest'
|
|
operationId: post-api-updateConcurrentStream
|
|
description: Updates a concurrent stream
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/getAllCategories:
|
|
post:
|
|
summary: Gets all categories
|
|
tags:
|
|
- categories
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GetAllCategoriesResponse'
|
|
operationId: post-api-getAllCategories
|
|
description: Gets all categories
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/createCategory:
|
|
post:
|
|
summary: Creates a category
|
|
tags:
|
|
- categories
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateCategoryResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateCategoryRequest'
|
|
operationId: post-api-createCategory
|
|
description: Creates a category
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/deleteCategory:
|
|
post:
|
|
summary: Deletes a category
|
|
tags:
|
|
- categories
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteCategoryRequest'
|
|
operationId: post-api-deleteCategory
|
|
description: Deletes a category
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/updateCategory:
|
|
post:
|
|
summary: Updates a category
|
|
tags:
|
|
- categories
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateCategoryRequest'
|
|
operationId: post-api-updateCategory
|
|
description: Updates a category
|
|
security:
|
|
- Auth query parameter: []
|
|
/api/updateCategories:
|
|
post:
|
|
summary: Updates all categories
|
|
tags:
|
|
- categories
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SuccessObject'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateCategoriesRequest'
|
|
operationId: post-api-updateCategories
|
|
description: Updates all categories
|
|
security:
|
|
- Auth query parameter: []
|
|
components:
|
|
schemas:
|
|
SuccessObject:
|
|
required:
|
|
- success
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
FileType:
|
|
type: string
|
|
enum:
|
|
- audio
|
|
- video
|
|
CropFileSettings:
|
|
type: object
|
|
required:
|
|
- cropFileStart
|
|
- cropFileEnd
|
|
properties:
|
|
cropFileStart:
|
|
type: number
|
|
cropFileEnd:
|
|
type: number
|
|
Config:
|
|
required:
|
|
- YoutubeDLMaterial
|
|
type: object
|
|
properties:
|
|
YoutubeDLMaterial:
|
|
type: object
|
|
DownloadRequest:
|
|
required:
|
|
- url
|
|
type: object
|
|
properties:
|
|
url:
|
|
type: string
|
|
customQualityConfiguration:
|
|
type: string
|
|
description: Video format code. Overrides other quality options.
|
|
example: '251'
|
|
customArgs:
|
|
type: string
|
|
description: Custom command-line arguments for youtube-dl. Overrides all other options, except url.
|
|
additionalArgs:
|
|
type: string
|
|
description: Additional command-line arguments for youtube-dl. Added to whatever args would normally be used.
|
|
customOutput:
|
|
type: string
|
|
description: Custom output filename template.
|
|
youtubeUsername:
|
|
type: string
|
|
description: Login with this account ID
|
|
youtubePassword:
|
|
type: string
|
|
description: Account password
|
|
selectedHeight:
|
|
type: string
|
|
description: Height of the video, if known
|
|
example: '1080'
|
|
maxHeight:
|
|
type: string
|
|
description: Max height that should be used, useful for playlists. selectedHeight will override this.
|
|
example: '1080'
|
|
maxBitrate:
|
|
type: string
|
|
description: Specify ffmpeg/avconv audio quality
|
|
example: '160'
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
cropFileSettings:
|
|
$ref: '#/components/schemas/CropFileSettings'
|
|
ignoreArchive:
|
|
type: boolean
|
|
description: If using youtube-dl archive, download will ignore it
|
|
DownloadResponse:
|
|
type: object
|
|
properties:
|
|
download:
|
|
$ref: '#/components/schemas/Download'
|
|
GenerateArgsResponse:
|
|
type: object
|
|
properties:
|
|
args:
|
|
type: array
|
|
items:
|
|
type: string
|
|
GetDownloadRequest:
|
|
type: object
|
|
properties:
|
|
download_uid:
|
|
type: string
|
|
required:
|
|
- download_uid
|
|
GetDownloadResponse:
|
|
type: object
|
|
properties:
|
|
download:
|
|
$ref: '#/components/schemas/Download'
|
|
RestartDownloadResponse:
|
|
allOf:
|
|
- $ref: '#/components/schemas/SuccessObject'
|
|
- type: object
|
|
properties:
|
|
new_download_uid:
|
|
type: string
|
|
GetAllDownloadsRequest:
|
|
type: object
|
|
properties:
|
|
uids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Filters downloads with the array
|
|
nullable: true
|
|
GetAllDownloadsResponse:
|
|
type: object
|
|
properties:
|
|
downloads:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Download'
|
|
ClearDownloadsRequest:
|
|
type: object
|
|
properties:
|
|
clear_finished:
|
|
type: boolean
|
|
clear_paused:
|
|
type: boolean
|
|
clear_errors:
|
|
type: boolean
|
|
GetTaskRequest:
|
|
type: object
|
|
properties:
|
|
task_key:
|
|
type: string
|
|
required:
|
|
- task_key
|
|
UpdateTaskScheduleRequest:
|
|
type: object
|
|
properties:
|
|
task_key:
|
|
type: string
|
|
new_schedule:
|
|
$ref: '#/components/schemas/Schedule'
|
|
required:
|
|
- task_key
|
|
- new_schedule
|
|
UpdateTaskDataRequest:
|
|
type: object
|
|
properties:
|
|
task_key:
|
|
type: string
|
|
new_data:
|
|
type: object
|
|
required:
|
|
- task_key
|
|
- new_data
|
|
UpdateTaskOptionsRequest:
|
|
type: object
|
|
properties:
|
|
task_key:
|
|
type: string
|
|
new_options:
|
|
type: object
|
|
required:
|
|
- task_key
|
|
- new_options
|
|
GetTaskResponse:
|
|
type: object
|
|
properties:
|
|
task:
|
|
$ref: '#/components/schemas/Task'
|
|
GetAllTasksResponse:
|
|
type: object
|
|
properties:
|
|
tasks:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Task'
|
|
GetDBBackupsResponse:
|
|
type: object
|
|
properties:
|
|
tasks:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/DBBackup'
|
|
RestoreDBBackupRequest:
|
|
type: object
|
|
required:
|
|
- file_name
|
|
properties:
|
|
file_name:
|
|
type: string
|
|
GetMp3sResponse:
|
|
required:
|
|
- mp3s
|
|
- playlists
|
|
type: object
|
|
properties:
|
|
mp3s:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/DatabaseFile'
|
|
playlists:
|
|
type: array
|
|
description: All audio playlists
|
|
items:
|
|
$ref: '#/components/schemas/Playlist'
|
|
GetMp4sResponse:
|
|
required:
|
|
- mp4s
|
|
- playlists
|
|
type: object
|
|
properties:
|
|
mp4s:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/DatabaseFile'
|
|
playlists:
|
|
type: array
|
|
description: All video playlists
|
|
items:
|
|
$ref: '#/components/schemas/Playlist'
|
|
GetAllFilesRequest:
|
|
type: object
|
|
properties:
|
|
sort:
|
|
$ref: '#/components/schemas/Sort'
|
|
range:
|
|
type: array
|
|
items:
|
|
type: number
|
|
description: Two elements allowed, start index and end index
|
|
minItems: 2
|
|
maxItems: 2
|
|
default: null
|
|
text_search:
|
|
type: string
|
|
description: Filter files by title
|
|
default: null
|
|
file_type_filter:
|
|
$ref: '#/components/schemas/FileTypeFilter'
|
|
favorite_filter:
|
|
type: boolean
|
|
description: If set to true, only gets favorites
|
|
default: false
|
|
sub_id:
|
|
type: string
|
|
description: Include if you want to filter by subscription
|
|
default: null
|
|
Sort:
|
|
type: object
|
|
properties:
|
|
by:
|
|
type: string
|
|
description: Property to sort by
|
|
default: registered
|
|
order:
|
|
type: number
|
|
description: 1 for ascending, -1 for descending
|
|
default: -1
|
|
FileTypeFilter:
|
|
type: string
|
|
enum:
|
|
- audio_only
|
|
- video_only
|
|
- both
|
|
default: both
|
|
GetAllFilesResponse:
|
|
required:
|
|
- files
|
|
- playlists
|
|
type: object
|
|
properties:
|
|
files:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/DatabaseFile'
|
|
playlists:
|
|
type: array
|
|
description: All video playlists
|
|
items:
|
|
$ref: '#/components/schemas/Playlist'
|
|
GetFileRequest:
|
|
required:
|
|
- uid
|
|
type: object
|
|
properties:
|
|
uid:
|
|
type: string
|
|
description: Video UID
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
uuid:
|
|
type: string
|
|
description: User UID
|
|
GetFileResponse:
|
|
required:
|
|
- success
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
file:
|
|
$ref: '#/components/schemas/DatabaseFile'
|
|
UpdateFileRequest:
|
|
required:
|
|
- uid
|
|
- change_obj
|
|
type: object
|
|
properties:
|
|
uid:
|
|
type: string
|
|
description: Video UID
|
|
change_obj:
|
|
type: object
|
|
description: Object with fields to update as keys and their new values
|
|
SharingToggle:
|
|
required:
|
|
- uid
|
|
type: object
|
|
properties:
|
|
uid:
|
|
type: string
|
|
is_playlist:
|
|
type: boolean
|
|
SubscribeRequest:
|
|
required:
|
|
- name
|
|
- url
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
url:
|
|
type: string
|
|
timerange:
|
|
type: string
|
|
audioOnly:
|
|
type: boolean
|
|
customArgs:
|
|
type: string
|
|
customFileOutput:
|
|
type: string
|
|
maxQuality:
|
|
type: string
|
|
SubscribeResponse:
|
|
required:
|
|
- new_sub
|
|
type: object
|
|
properties:
|
|
new_sub:
|
|
$ref: '#/components/schemas/Subscription'
|
|
error:
|
|
type: string
|
|
UnsubscribeRequest:
|
|
required:
|
|
- sub
|
|
type: object
|
|
properties:
|
|
sub:
|
|
$ref: '#/components/schemas/SubscriptionRequestData'
|
|
deleteMode:
|
|
type: boolean
|
|
description: Defaults to false
|
|
UnsubscribeResponse:
|
|
required:
|
|
- success
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
DeleteAllFilesResponse:
|
|
type: object
|
|
properties:
|
|
file_count:
|
|
type: number
|
|
description: Number of files found matching search parameters
|
|
delete_count:
|
|
type: number
|
|
description: Number of files removed
|
|
DeleteSubscriptionFileRequest:
|
|
required:
|
|
- file_uid
|
|
type: object
|
|
properties:
|
|
file_uid:
|
|
type: string
|
|
deleteForever:
|
|
type: boolean
|
|
description: 'If true, does not remove id from archive. Only valid if youtube-dl archive is enabled in settings.'
|
|
GetSubscriptionRequest:
|
|
required:
|
|
- id
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Subscription ID
|
|
name:
|
|
type: string
|
|
description: Subscription name
|
|
GetSubscriptionResponse:
|
|
required:
|
|
- files
|
|
- subscription
|
|
type: object
|
|
properties:
|
|
subscription:
|
|
$ref: '#/components/schemas/Subscription'
|
|
files:
|
|
type: array
|
|
items:
|
|
type: object
|
|
DownloadVideosForSubscriptionRequest:
|
|
required:
|
|
- subID
|
|
type: object
|
|
properties:
|
|
subID:
|
|
type: string
|
|
GetAllSubscriptionsResponse:
|
|
required:
|
|
- subscriptions
|
|
type: object
|
|
properties:
|
|
subscriptions:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Subscription'
|
|
CreatePlaylistRequest:
|
|
required:
|
|
- uids
|
|
- playlistName
|
|
- thumbnailURL
|
|
type: object
|
|
properties:
|
|
playlistName:
|
|
type: string
|
|
uids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
thumbnailURL:
|
|
type: string
|
|
CreatePlaylistResponse:
|
|
required:
|
|
- new_playlist
|
|
- success
|
|
type: object
|
|
properties:
|
|
new_playlist:
|
|
$ref: '#/components/schemas/Playlist'
|
|
success:
|
|
type: boolean
|
|
GetPlaylistRequest:
|
|
required:
|
|
- playlist_id
|
|
type: object
|
|
properties:
|
|
playlist_id:
|
|
type: string
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
uuid:
|
|
type: string
|
|
include_file_metadata:
|
|
type: boolean
|
|
GetPlaylistResponse:
|
|
required:
|
|
- playlist
|
|
- success
|
|
type: object
|
|
properties:
|
|
playlist:
|
|
$ref: '#/components/schemas/Playlist'
|
|
success:
|
|
type: boolean
|
|
file_objs:
|
|
type: array
|
|
description: File objects for every uid in the playlist's uids property, in the same order
|
|
items:
|
|
$ref: '#/components/schemas/DatabaseFile'
|
|
GetPlaylistsRequest:
|
|
type: object
|
|
properties:
|
|
include_categories:
|
|
type: boolean
|
|
GetPlaylistsResponse:
|
|
required:
|
|
- playlists
|
|
type: object
|
|
properties:
|
|
playlists:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Playlist'
|
|
UpdatePlaylistRequest:
|
|
required:
|
|
- playlist
|
|
type: object
|
|
properties:
|
|
playlist:
|
|
$ref: '#/components/schemas/Playlist'
|
|
DeletePlaylistRequest:
|
|
required:
|
|
- playlist_id
|
|
type: object
|
|
properties:
|
|
playlist_id:
|
|
type: string
|
|
DownloadFileRequest:
|
|
type: object
|
|
properties:
|
|
uid:
|
|
type: string
|
|
uuid:
|
|
type: string
|
|
sub_id:
|
|
type: string
|
|
playlist_id:
|
|
type: string
|
|
url:
|
|
type: string
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
DownloadArchiveRequest:
|
|
type: object
|
|
properties:
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
sub_id:
|
|
type: string
|
|
Archive:
|
|
required:
|
|
- extractor
|
|
- id
|
|
- type
|
|
- title
|
|
- timestamp
|
|
- uid
|
|
type: object
|
|
properties:
|
|
extractor:
|
|
type: string
|
|
id:
|
|
type: string
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
title:
|
|
type: string
|
|
user_uid:
|
|
type: string
|
|
sub_id:
|
|
type: string
|
|
timestamp:
|
|
type: number
|
|
uid:
|
|
type: string
|
|
DeleteArchiveItemsRequest:
|
|
type: object
|
|
required:
|
|
- archives
|
|
properties:
|
|
archives:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Archive'
|
|
ImportArchiveRequest:
|
|
type: object
|
|
required:
|
|
- archive
|
|
- type
|
|
properties:
|
|
archive:
|
|
type: string
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
sub_id:
|
|
type: string
|
|
GetArchivesRequest:
|
|
type: object
|
|
properties:
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
sub_id:
|
|
type: string
|
|
GetArchivesResponse:
|
|
type: object
|
|
required:
|
|
- archives
|
|
properties:
|
|
archives:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Archive'
|
|
UploadCookiesRequest:
|
|
type: object
|
|
required:
|
|
- cookies
|
|
properties:
|
|
cookies:
|
|
type: string
|
|
format: binary
|
|
UpdaterStatus:
|
|
required:
|
|
- details
|
|
- updating
|
|
type: object
|
|
properties:
|
|
updating:
|
|
type: boolean
|
|
details:
|
|
type: string
|
|
error:
|
|
type: boolean
|
|
UpdateServerRequest:
|
|
required:
|
|
- tag
|
|
type: object
|
|
properties:
|
|
tag:
|
|
type: string
|
|
DBInfoResponse:
|
|
type: object
|
|
properties:
|
|
using_local_db:
|
|
type: boolean
|
|
stats_by_table:
|
|
type: object
|
|
properties:
|
|
files:
|
|
$ref: '#/components/schemas/TableInfo'
|
|
playlists:
|
|
$ref: '#/components/schemas/TableInfo'
|
|
categories:
|
|
$ref: '#/components/schemas/TableInfo'
|
|
subscriptions:
|
|
$ref: '#/components/schemas/TableInfo'
|
|
users:
|
|
$ref: '#/components/schemas/TableInfo'
|
|
roles:
|
|
$ref: '#/components/schemas/TableInfo'
|
|
download_queue:
|
|
$ref: '#/components/schemas/TableInfo'
|
|
archives:
|
|
$ref: '#/components/schemas/TableInfo'
|
|
TransferDBResponse:
|
|
required:
|
|
- success
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
TransferDBRequest:
|
|
required:
|
|
- local_to_remote
|
|
type: object
|
|
properties:
|
|
local_to_remote:
|
|
description: True if transfering DB from Local to MongoDB, false if transferring DB from MongoDB to Local
|
|
type: boolean
|
|
TestConnectionStringResponse:
|
|
required:
|
|
- success
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
TestConnectionStringRequest:
|
|
required:
|
|
- connection_string
|
|
type: object
|
|
properties:
|
|
connection_string:
|
|
description: MongoDB connection string
|
|
type: string
|
|
GetFullTwitchChatResponse:
|
|
required:
|
|
- success
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
error:
|
|
type: string
|
|
GetFullTwitchChatRequest:
|
|
required:
|
|
- id
|
|
- type
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: File ID
|
|
type: string
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
uuid:
|
|
description: User UID
|
|
type: string
|
|
sub:
|
|
$ref: '#/components/schemas/Subscription'
|
|
DownloadTwitchChatByVODIDResponse:
|
|
required:
|
|
- chat
|
|
type: object
|
|
properties:
|
|
chat:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/TwitchChatMessage'
|
|
DownloadTwitchChatByVODIDRequest:
|
|
required:
|
|
- id
|
|
- type
|
|
- vodId
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: File ID
|
|
type: string
|
|
vodId:
|
|
description: ID of the VOD
|
|
type: string
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
uuid:
|
|
description: User UID
|
|
type: string
|
|
sub:
|
|
$ref: '#/components/schemas/Subscription'
|
|
CheckConcurrentStreamResponse:
|
|
required:
|
|
- stream
|
|
type: object
|
|
properties:
|
|
stream:
|
|
$ref: '#/components/schemas/ConcurrentStream'
|
|
CheckConcurrentStreamRequest:
|
|
required:
|
|
- uid
|
|
type: object
|
|
properties:
|
|
uid:
|
|
description: UID of the concurrent stream
|
|
type: string
|
|
UpdateConcurrentStreamResponse:
|
|
required:
|
|
- stream
|
|
type: object
|
|
properties:
|
|
stream:
|
|
$ref: '#/components/schemas/ConcurrentStream'
|
|
UpdateConcurrentStreamRequest:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ConcurrentStream'
|
|
- type: object
|
|
properties:
|
|
uid:
|
|
type: string
|
|
description: Concurrent stream UID
|
|
required:
|
|
- uid
|
|
GetLogsResponse:
|
|
type: object
|
|
properties:
|
|
logs:
|
|
type: string
|
|
description: Number of lines to retrieve from the bottom
|
|
success:
|
|
type: boolean
|
|
GetLogsRequest:
|
|
required:
|
|
- connection_string
|
|
type: object
|
|
properties:
|
|
lines:
|
|
type: number
|
|
GetFileFormatsRequest:
|
|
type: object
|
|
properties:
|
|
url:
|
|
type: string
|
|
GetFileFormatsResponse:
|
|
required:
|
|
- result
|
|
- success
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
result:
|
|
allOf:
|
|
- type: object
|
|
properties:
|
|
formats:
|
|
type: array
|
|
items:
|
|
type: object
|
|
IncrementViewCountRequest:
|
|
required:
|
|
- file_uid
|
|
type: object
|
|
properties:
|
|
file_uid:
|
|
type: string
|
|
sub_id:
|
|
type: string
|
|
uuid:
|
|
type: string
|
|
description: User UID
|
|
AddFileToPlaylistRequest:
|
|
required:
|
|
- playlist_id
|
|
- file_uid
|
|
type: object
|
|
properties:
|
|
file_uid:
|
|
type: string
|
|
playlist_id:
|
|
type: string
|
|
GetAllCategoriesResponse:
|
|
required:
|
|
- categories
|
|
type: object
|
|
properties:
|
|
categories:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Category'
|
|
CreateCategoryResponse:
|
|
type: object
|
|
properties:
|
|
new_category:
|
|
$ref: '#/components/schemas/Category'
|
|
success:
|
|
type: boolean
|
|
CreateCategoryRequest:
|
|
required:
|
|
- name
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
DeleteCategoryRequest:
|
|
required:
|
|
- category_uid
|
|
type: object
|
|
properties:
|
|
category_uid:
|
|
type: string
|
|
UpdateCategoryRequest:
|
|
required:
|
|
- category
|
|
type: object
|
|
properties:
|
|
category:
|
|
$ref: '#/components/schemas/Category'
|
|
UpdateCategoriesRequest:
|
|
required:
|
|
- categories
|
|
type: object
|
|
properties:
|
|
categories:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Category'
|
|
VersionInfoResponse:
|
|
required:
|
|
- version_info
|
|
type: object
|
|
properties:
|
|
version_info:
|
|
$ref: '#/components/schemas/Version'
|
|
inline_response_200_15:
|
|
required:
|
|
- is_set
|
|
type: object
|
|
properties:
|
|
is_set:
|
|
type: boolean
|
|
body_19:
|
|
required:
|
|
- input_pin
|
|
type: object
|
|
properties:
|
|
input_pin:
|
|
type: string
|
|
body_20:
|
|
required:
|
|
- unhashed_pin
|
|
type: object
|
|
properties:
|
|
unhashed_pin:
|
|
type: string
|
|
GenerateNewApiKeyResponse:
|
|
required:
|
|
- new_api_key
|
|
type: object
|
|
properties:
|
|
new_api_key:
|
|
type: string
|
|
example: 4241b401-7236-493e-92b5-b72696b9d853
|
|
DeleteMp3Mp4Request:
|
|
required:
|
|
- uid
|
|
type: object
|
|
properties:
|
|
uid:
|
|
type: string
|
|
blacklistMode:
|
|
type: boolean
|
|
ConfigResponse:
|
|
required:
|
|
- config_file
|
|
- success
|
|
type: object
|
|
properties:
|
|
config_file:
|
|
$ref: '#/components/schemas/Config'
|
|
success:
|
|
type: boolean
|
|
SetConfigRequest:
|
|
required:
|
|
- new_config_file
|
|
type: object
|
|
properties:
|
|
new_config_file:
|
|
$ref: '#/components/schemas/Config'
|
|
DatabaseFile:
|
|
required:
|
|
- duration
|
|
- id
|
|
- isAudio
|
|
- path
|
|
- size
|
|
- thumbnailURL
|
|
- title
|
|
- uid
|
|
- upload_date
|
|
- uploader
|
|
- url
|
|
- favorite
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
title:
|
|
type: string
|
|
thumbnailURL:
|
|
type: string
|
|
description: Backup if thumbnailPath is not defined
|
|
thumbnailPath:
|
|
type: string
|
|
isAudio:
|
|
type: boolean
|
|
duration:
|
|
type: number
|
|
description: In seconds
|
|
url:
|
|
type: string
|
|
uploader:
|
|
type: string
|
|
size:
|
|
type: number
|
|
description: In bytes
|
|
path:
|
|
type: string
|
|
upload_date:
|
|
type: string
|
|
uid:
|
|
type: string
|
|
user_uid:
|
|
type: string
|
|
sharingEnabled:
|
|
type: boolean
|
|
category:
|
|
$ref: '#/components/schemas/Category'
|
|
view_count:
|
|
type: number
|
|
local_view_count:
|
|
type: number
|
|
sub_id:
|
|
type: string
|
|
registered:
|
|
type: number
|
|
height:
|
|
type: number
|
|
description: In pixels, only for videos
|
|
abr:
|
|
type: number
|
|
description: In Kbps
|
|
favorite:
|
|
type: boolean
|
|
Playlist:
|
|
required:
|
|
- uids
|
|
- id
|
|
- name
|
|
- thumbnailURL
|
|
- type
|
|
- registered
|
|
- duration
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
uids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
id:
|
|
type: string
|
|
thumbnailURL:
|
|
type: string
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
registered:
|
|
type: number
|
|
duration:
|
|
type: number
|
|
user_uid:
|
|
type: string
|
|
auto:
|
|
type: boolean
|
|
sharingEnabled:
|
|
type: boolean
|
|
Download:
|
|
required:
|
|
- url
|
|
- type
|
|
- title
|
|
- options
|
|
- uid
|
|
- step_index
|
|
- paused
|
|
- running
|
|
- finished_step
|
|
- percent_complete
|
|
- finished
|
|
- timestamp_start
|
|
type: object
|
|
properties:
|
|
uid:
|
|
type: string
|
|
ui_uid:
|
|
type: string
|
|
running:
|
|
type: boolean
|
|
finished:
|
|
type: boolean
|
|
paused:
|
|
type: boolean
|
|
finished_step:
|
|
type: boolean
|
|
url:
|
|
type: string
|
|
type:
|
|
type: string
|
|
title:
|
|
type: string
|
|
step_index:
|
|
type: number
|
|
percent_complete:
|
|
type: number
|
|
timestamp_start:
|
|
type: number
|
|
error:
|
|
type: string
|
|
description: Error text, set if download fails.
|
|
nullable: true
|
|
error_type:
|
|
type: string
|
|
description: Error type, may or may not be set in case of an error
|
|
nullable: true
|
|
user_uid:
|
|
type: string
|
|
sub_id:
|
|
type: string
|
|
sub_name:
|
|
type: string
|
|
prefetched_info:
|
|
type: object
|
|
Task:
|
|
required:
|
|
- key
|
|
- last_ran
|
|
- last_confirmed
|
|
- running
|
|
- confirming
|
|
- data
|
|
- error
|
|
- schedule
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
title:
|
|
type: string
|
|
last_ran:
|
|
type: number
|
|
last_confirmed:
|
|
type: number
|
|
running:
|
|
type: boolean
|
|
confirming:
|
|
type: boolean
|
|
data:
|
|
type: object
|
|
error:
|
|
type: string
|
|
schedule:
|
|
type: object
|
|
options:
|
|
type: object
|
|
Schedule:
|
|
required:
|
|
- type
|
|
- data
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- timestamp
|
|
- recurring
|
|
data:
|
|
type: object
|
|
properties:
|
|
dayOfWeek:
|
|
type: array
|
|
items:
|
|
type: number
|
|
hour:
|
|
type: number
|
|
minute:
|
|
type: number
|
|
timestamp:
|
|
type: number
|
|
tz:
|
|
type: string
|
|
DBBackup:
|
|
required:
|
|
- name
|
|
- timestamp
|
|
- size
|
|
- source
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
timestamp:
|
|
type: number
|
|
size:
|
|
type: number
|
|
source:
|
|
type: string
|
|
enum:
|
|
- local
|
|
- remote
|
|
SubscriptionRequestData:
|
|
required:
|
|
- id
|
|
- name
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
id:
|
|
type: string
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
isPlaylist:
|
|
type: boolean
|
|
archive:
|
|
type: string
|
|
Subscription:
|
|
required:
|
|
- id
|
|
- name
|
|
- url
|
|
- type
|
|
- user_uid
|
|
- isPlaylist
|
|
- videos
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
url:
|
|
type: string
|
|
id:
|
|
type: string
|
|
type:
|
|
$ref: '#/components/schemas/FileType'
|
|
user_uid:
|
|
type: string
|
|
nullable: true
|
|
isPlaylist:
|
|
type: boolean
|
|
archive:
|
|
type: string
|
|
timerange:
|
|
type: string
|
|
custom_args:
|
|
type: string
|
|
custom_output:
|
|
type: string
|
|
videos:
|
|
type: array
|
|
items:
|
|
type: object
|
|
User:
|
|
title: user
|
|
type: object
|
|
properties:
|
|
uid:
|
|
type: string
|
|
name:
|
|
type: string
|
|
passhash:
|
|
type: string
|
|
subscriptions:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Subscription'
|
|
created:
|
|
type: number
|
|
role:
|
|
type: string
|
|
permissions:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/UserPermission'
|
|
permission_overrides:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/UserPermission'
|
|
UserPermission:
|
|
type: string
|
|
enum:
|
|
- filemanager
|
|
- settings
|
|
- subscriptions
|
|
- sharing
|
|
- advanced_download
|
|
- downloads_manager
|
|
YesNo:
|
|
type: string
|
|
enum:
|
|
- 'yes'
|
|
- 'no'
|
|
TableInfo:
|
|
type: object
|
|
properties:
|
|
records_count:
|
|
type: number
|
|
TwitchChatMessage:
|
|
type: object
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
content_offset_seconds:
|
|
type: number
|
|
commenter:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
_id:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
message:
|
|
type: object
|
|
properties:
|
|
body:
|
|
type: string
|
|
user_color:
|
|
type: string
|
|
ConcurrentStream:
|
|
type: object
|
|
properties:
|
|
playback_timestamp:
|
|
type: number
|
|
unix_timestamp:
|
|
type: number
|
|
playing:
|
|
type: boolean
|
|
Category:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
uid:
|
|
type: string
|
|
rules:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CategoryRule'
|
|
custom_output:
|
|
type: string
|
|
description: Overrides file output for downloaded files in category
|
|
CategoryRule:
|
|
type: object
|
|
properties:
|
|
preceding_operator:
|
|
type: string
|
|
enum:
|
|
- 'or'
|
|
- 'and'
|
|
comparator:
|
|
type: string
|
|
enum:
|
|
- 'includes'
|
|
- 'not_includes'
|
|
- 'equals'
|
|
- 'not_equals'
|
|
Version:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
tag:
|
|
type: string
|
|
commit:
|
|
type: string
|
|
date:
|
|
type: string
|
|
Notification:
|
|
required:
|
|
- uid
|
|
- type
|
|
- text
|
|
- read
|
|
- timestamp
|
|
type: object
|
|
properties:
|
|
type:
|
|
$ref: '#/components/schemas/NotificationType'
|
|
uid:
|
|
type: string
|
|
user_uid:
|
|
type: string
|
|
action:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/NotificationAction'
|
|
read:
|
|
type: boolean
|
|
data:
|
|
type: object
|
|
timestamp:
|
|
type: number
|
|
NotificationAction:
|
|
type: string
|
|
enum:
|
|
- play
|
|
- retry_download
|
|
- view_download_error
|
|
- view_tasks
|
|
NotificationType:
|
|
type: string
|
|
enum:
|
|
- download_complete
|
|
- download_error
|
|
- task_finished
|
|
BaseChangePermissionsRequest:
|
|
required:
|
|
- permission
|
|
- new_value
|
|
type: object
|
|
properties:
|
|
permission:
|
|
$ref: '#/components/schemas/UserPermission'
|
|
new_value:
|
|
$ref: '#/components/schemas/YesNo'
|
|
ChangeUserPermissionsRequest:
|
|
allOf:
|
|
- $ref: '#/components/schemas/BaseChangePermissionsRequest'
|
|
- type: object
|
|
properties:
|
|
user_uid:
|
|
type: string
|
|
required:
|
|
- user_uid
|
|
ChangeRolePermissionsRequest:
|
|
allOf:
|
|
- $ref: '#/components/schemas/BaseChangePermissionsRequest'
|
|
- type: object
|
|
properties:
|
|
role:
|
|
type: string
|
|
required:
|
|
- role
|
|
file:
|
|
title: file
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
RegisterRequest:
|
|
required:
|
|
- userid
|
|
- username
|
|
- password
|
|
type: object
|
|
properties:
|
|
userid:
|
|
type: string
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
RegisterResponse:
|
|
type: object
|
|
properties:
|
|
user:
|
|
$ref: '#/components/schemas/User'
|
|
LoginRequest:
|
|
required:
|
|
- username
|
|
- password
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
LoginResponse:
|
|
type: object
|
|
properties:
|
|
user:
|
|
$ref: '#/components/schemas/User'
|
|
token:
|
|
type: string
|
|
permissions:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/UserPermission'
|
|
available_permissions:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/UserPermission'
|
|
UpdateUserRequest:
|
|
required:
|
|
- change_object
|
|
type: object
|
|
properties:
|
|
change_object:
|
|
required:
|
|
- uid
|
|
type: object
|
|
properties:
|
|
uid:
|
|
type: string
|
|
name:
|
|
type: string
|
|
role:
|
|
type: string
|
|
DeleteUserRequest:
|
|
required:
|
|
- uid
|
|
type: object
|
|
properties:
|
|
uid:
|
|
type: string
|
|
GetUsersResponse:
|
|
required:
|
|
- users
|
|
type: object
|
|
properties:
|
|
users:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
GetRolesResponse:
|
|
required:
|
|
- roles
|
|
type: object
|
|
properties:
|
|
roles:
|
|
type: object
|
|
properties:
|
|
admin:
|
|
type: object
|
|
properties:
|
|
permissions:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/UserPermission'
|
|
user:
|
|
type: object
|
|
properties:
|
|
permissions:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/UserPermission'
|
|
DeleteNotificationRequest:
|
|
required:
|
|
- uid
|
|
type: object
|
|
properties:
|
|
uid:
|
|
type: string
|
|
SetNotificationsToReadRequest:
|
|
required:
|
|
- uids
|
|
type: object
|
|
properties:
|
|
uids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
GetNotificationsResponse:
|
|
type: object
|
|
properties:
|
|
notifications:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Notification'
|
|
securitySchemes:
|
|
Auth query parameter:
|
|
name: apiKey
|
|
type: apiKey
|
|
in: query
|
|
description: Use your public API key generated from the settings menu
|
|
JWT token parameter:
|
|
name: jwt
|
|
type: apiKey
|
|
in: query
|
|
description: 'User-specific authentication token, only used in multi-user mode. Retrieve this token by using the login endpoint'
|