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.
YoutubeDL-Material/Public API v1.yaml

1701 lines
43 KiB
YAML

openapi: 3.0.0
info:
5 years ago
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`."
servers:
- url: 'http://localhost:17442'
paths:
/api/tomp3:
post:
tags:
- downloader
summary: Download audio file
description: |-
Downloads an audio file with the given URL. Will include global args if they exist.
5 years ago
HTTP requests will return once the audio 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-tomp3
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/body'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200'
5 years ago
security:
- Auth query parameter: []
/api/tomp4:
post:
tags:
- downloader
summary: Download video file
description: |-
Downloads a video file with the given URL. Will include global args if they exist.
5 years ago
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/body_1'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_1'
5 years ago
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/inline_response_200_2'
5 years ago
requestBody: {}
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/inline_response_200_3'
5 years ago
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/body_2'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_4'
5 years ago
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/body_3'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_5'
5 years ago
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/body_4'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_5'
5 years ago
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/body_5'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_6'
5 years ago
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/body_6'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_7'
5 years ago
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/body_7'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_8'
'500':
description: Internal Server Error
5 years ago
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/body_8'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_9'
5 years ago
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/body_9'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_10'
5 years ago
security:
- Auth query parameter: []
/api/getAllSubscriptions:
post:
tags:
- subscriptions
summary: Get all subscriptions
operationId: post-api-getAllSubscriptions
requestBody:
content:
application/json:
schema:
type: object
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_11'
5 years ago
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/body_10'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_12'
5 years ago
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/body_11'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_13'
5 years ago
security:
- Auth query parameter: []
/api/updatePlaylist:
post:
tags:
- playlists
summary: Update playlist files
description: Updates the list of filenames in the playlist object
operationId: post-api-updatePlaylist
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/body_12'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_5'
5 years ago
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/body_13'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_5'
5 years ago
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/body_14'
responses:
'200':
description: OK
content:
application/json:
schema:
type: boolean
description: Whether the operation succeeded
5 years ago
security:
- Auth query parameter: []
/api/downloadFile:
post:
tags:
- files
summary: Download downloaded file from server
operationId: post-api-downloadFile
requestBody:
content:
application/json:
schema:
type: object
properties: {}
application/xml:
schema:
$ref: '#/components/schemas/body_15'
responses:
'200':
description: 'The file itself is in the response, as well as an options object.'
5 years ago
security:
- Auth query parameter: []
/api/deleteFile:
post:
tags:
- files
summary: Delete downloaded file (unused)
operationId: post-api-deleteFile
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/body_16'
responses:
'200':
description: OK
5 years ago
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/body_17'
responses:
'200':
description: The archive text file is sent as a response
5 years ago
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/inline_response_200_14'
5 years ago
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/body_18'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_5'
5 years ago
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'
5 years ago
security:
- Auth query parameter: []
/api/checkPin:
post:
tags:
- security
summary: Check if pin is correct
description: Checks the pin against an inputted one. Will return true if they match
operationId: post-api-checkPin
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/body_19'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_5'
5 years ago
security:
- Auth query parameter: []
/api/setPin:
post:
tags:
- security
summary: Set pin
operationId: post-api-setPin
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/body_20'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_5'
5 years ago
security:
- Auth query parameter: []
description: ''
/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/inline_response_200_16'
5 years ago
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/body_21'
responses:
'200':
description: OK
content:
application/json:
schema:
type: boolean
description: Whether the operation succeeded
5 years ago
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/inline_response_200_17'
5 years ago
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/body_22'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/inline_response_200_5'
5 years ago
security:
- Auth query parameter: []
/api/downloads:
get:
summary: Get info for all downloads
tags:
- downloader
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
downloads:
type: object
properties:
uid:
type: string
downloading:
type: boolean
complete:
type: boolean
url:
type: string
type:
type: string
percent_complete:
type: string
is_playlist:
type: boolean
timestamp_start:
type: number
timestamp_end:
type: number
fileNames:
type: array
items:
type: string
operationId: get-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:
type: object
properties:
download:
type: object
properties:
uid:
type: string
downloading:
type: boolean
complete:
type: boolean
url:
type: string
type:
type: string
percent_complete:
type: string
is_playlist:
type: boolean
timestamp_start:
type: number
timestamp_end:
type: number
fileNames:
type: array
items:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
session_id:
type: string
download_id:
type: string
required:
- session_id
- download_id
description: ''
description: "Gets a single download using its download_id and session_id. session_id is the device fingerprint. If none was provided at the time of download, then set session_id is 'undeclared'."
security:
- Auth query parameter: []
tags:
- downloader
/api/auth/login:
post:
summary: Login
operationId: post-api-auth-login
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
user:
$ref: '#/components/schemas/user'
token:
type: string
permissions:
type: array
items:
type: string
available_permissions:
type: array
items:
type: string
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:
type: object
properties:
userid:
type: string
description: 'This is the username, not the user uid'
password:
type: string
required:
- userid
- password
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:
type: object
properties:
user:
$ref: '#/components/schemas/user'
description: Use this endpoint to register a user. It will only work if registration is enabled.
requestBody:
content:
application/json:
schema:
type: object
properties:
userid:
type: string
username:
type: string
password:
type: string
required:
- userid
- username
- password
security:
- Auth query parameter: []
tags:
- multi-user mode
/api/updateUser:
post:
summary: Update user
operationId: post-api-updateUser
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties:
change_object:
type: object
properties:
name:
type: string
role:
type: string
required:
- change_object
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:
type: object
properties:
success:
type: boolean
description: Deletes a user by its uid.
requestBody:
content:
application/json:
schema:
type: object
properties:
uid:
type: string
required:
- uid
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:
type: object
properties:
roles:
type: object
properties:
admin:
type: object
properties:
permissions:
type: array
items:
type: string
user:
type: object
properties:
permissions:
type: array
items:
type: string
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:
type: object
properties:
success:
type: boolean
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:
type: object
properties:
user_uid:
type: string
permission:
type: string
new_value:
type: string
required:
- user_uid
- permission
- new_value
tags:
- multi-user mode
/api/changeRolePermissions:
post:
summary: Change role permissions
operationId: post-api-changeRolePermissions
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
requestBody:
content:
application/json:
schema:
type: object
properties:
role:
type: string
permission:
type: string
new_value:
type: string
required:
- role
- permission
- new_value
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:
type: object
properties:
users:
type: array
items:
$ref: '#/components/schemas/user'
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
components:
schemas:
body:
required:
- url
type: object
properties:
url:
type: string
customQualityConfiguration:
type: string
example: '251'
maxBitrate:
type: string
example: '160'
customArgs:
type: string
customOutput:
type: string
youtubeUsername:
type: string
youtubePassword:
type: string
inline_response_200:
required:
- audiopathEncoded
- uid
type: object
properties:
uid:
type: string
file_names:
type: string
audiopathEncoded:
type: string
body_1:
required:
- url
type: object
properties:
url:
type: string
customQualityConfiguration:
type: string
example: 242+251
selectedHeight:
type: string
example: '1080'
customArgs:
type: string
customOutput:
type: string
youtubeUsername:
type: string
youtubePassword:
type: string
inline_response_200_1:
required:
- uid
- videopathEncoded
type: object
properties:
uid:
type: string
file_names:
type: string
videopathEncoded:
type: string
inline_response_200_2:
required:
- mp3s
- playlists
type: object
properties:
mp3s:
type: array
items:
$ref: '#/components/schemas/inline_response_200_2_mp3s'
playlists:
type: array
description: All audio playlists
items:
$ref: '#/components/schemas/inline_response_200_2_playlists'
inline_response_200_3:
required:
- mp4s
type: object
properties:
mp4s:
type: array
items:
$ref: '#/components/schemas/inline_response_200_3_mp4s'
playlists:
type: array
description: All video playlists
items:
type: object
body_2:
required:
- uid
type: object
properties:
uid:
type: string
type:
type: string
inline_response_200_4:
required:
- file
- success
type: object
properties:
success:
type: string
file:
$ref: '#/components/schemas/inline_response_200_2_mp3s'
body_3:
required:
- is_playlist
- type
- uid
type: object
properties:
uid:
type: string
type:
type: string
is_playlist:
type: boolean
inline_response_200_5:
required:
- success
type: object
properties:
success:
type: boolean
body_4:
required:
- type
- uid
type: object
properties:
type:
type: string
uid:
type: string
description: uid is either the video uid or the playlist ID
is_playlist:
type: boolean
body_5:
required:
- url
type: object
properties:
name:
type: string
url:
type: string
timerange:
type: string
streamingOnly:
type: boolean
inline_response_200_6:
required:
- new_sub
type: object
properties:
new_sub:
$ref: '#/components/schemas/inline_response_200_6_new_sub'
error:
type: string
apiunsubscribe_sub:
required:
- id
- name
- url
- videos
type: object
properties:
name:
type: string
url:
type: string
id:
type: string
streamingOnly:
type: boolean
videos:
type: array
items:
type: object
body_6:
required:
- sub
type: object
properties:
sub:
$ref: '#/components/schemas/apiunsubscribe_sub'
deleteMode:
type: boolean
description: Defaults to false
inline_response_200_7:
required:
- success
type: object
properties:
success:
type: boolean
error:
type: string
apideleteSubscriptionFile_sub:
required:
- id
- isPlaylist
- name
- url
- videos
type: object
properties:
name:
type: string
url:
type: string
id:
type: string
streamingOnly:
type: boolean
isPlaylist:
type: boolean
videos:
type: array
items:
type: object
body_7:
required:
- file
- sub
type: object
properties:
file:
type: string
sub:
$ref: '#/components/schemas/apideleteSubscriptionFile_sub'
deleteForever:
type: boolean
description: 'If true, does not remove id from archive. Only valid if youtube-dl archive is enabled in settings.'
inline_response_200_8:
type: object
properties:
success:
type: boolean
body_8:
required:
- subID
type: object
properties:
subID:
type: string
inline_response_200_9:
required:
- files
- subscription
type: object
properties:
subscription:
$ref: '#/components/schemas/inline_response_200_9_subscription'
files:
type: array
items:
type: object
body_9:
required:
- subID
type: object
properties:
subID:
type: string
inline_response_200_10:
required:
- success
type: object
properties:
success:
type: number
inline_response_200_11:
required:
- subscriptions
type: object
properties:
subscriptions:
type: array
items:
$ref: '#/components/schemas/inline_response_200_11_subscriptions'
body_10:
required:
- fileNames
- playlistName
- thumbnailURL
- type
type: object
properties:
playlistName:
type: string
fileNames:
type: array
items:
type: string
type:
type: string
thumbnailURL:
type: string
inline_response_200_12:
required:
- new_playlist
- success
type: object
properties:
new_playlist:
$ref: '#/components/schemas/inline_response_200_12_new_playlist'
success:
type: boolean
body_11:
required:
- playlistID
- type
type: object
properties:
playlistID:
type: string
type:
type: string
inline_response_200_13:
required:
- playlist
- success
- type
type: object
properties:
playlist:
$ref: '#/components/schemas/inline_response_200_2_playlists'
type:
type: string
success:
type: boolean
body_12:
required:
- fileNames
- playlistID
- type
type: object
properties:
playlistID:
type: string
fileNames:
type: array
items:
type: string
type:
type: string
body_13:
required:
- playlistID
- type
type: object
properties:
playlistID:
type: string
type:
type: string
body_14:
required:
- uid
type: object
properties:
uid:
type: string
body_15:
required:
- fileNames
- type
type: object
properties:
fileNames:
type: array
description: Array of 1 or more files to download
items:
type: string
zip_mode:
type: boolean
type:
type: string
outputName:
type: string
fullPathProvided:
type: string
subscriptionName:
type: boolean
description: Only used for subscriptions
subscriptionPlaylist:
type: boolean
description: Only used for subscriptions
body_16:
required:
- fileName
- type
type: object
properties:
fileName:
type: string
type:
type: string
apidownloadArchive_sub:
required:
- archive_dir
type: object
properties:
archive_dir:
type: string
body_17:
required:
- sub
type: object
properties:
sub:
$ref: '#/components/schemas/apidownloadArchive_sub'
inline_response_200_14:
required:
- details
- updating
type: object
properties:
updating:
type: boolean
details:
type: string
body_18:
type: object
properties:
tag:
type: string
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
inline_response_200_16:
required:
- new_api_key
type: object
properties:
new_api_key:
type: string
example: 4241b401-7236-493e-92b5-b72696b9d853
body_21:
required:
- uid
type: object
properties:
uid:
type: string
inline_response_200_17:
required:
- config_file
- success
type: object
properties:
config_file:
type: object
success:
type: boolean
body_22:
required:
- new_config_file
type: object
properties:
new_config_file:
type: object
inline_response_200_2_mp3s:
required:
- duration
- id
- isAudio
- path
- size
- thumbnailURL
- title
- uid
- upload_date
- uploader
- url
type: object
properties:
id:
type: string
title:
type: string
thumbnailURL:
type: string
isAudio:
type: boolean
duration:
type: number
description: In seconds
url:
type: string
uploader:
type: string
size:
type: number
path:
type: string
upload_date:
type: string
uid:
type: string
sharingEnabled:
type: boolean
inline_response_200_2_playlists:
required:
- fileNames
- id
- name
- thumbnailURL
type: object
properties:
name:
type: string
fileNames:
type: array
items:
type: string
id:
type: string
thumbnailURL:
type: string
inline_response_200_3_mp4s:
required:
- duration
- id
- isAudio
- path
- size
- thumbnailURL
- title
- uid
- upload_date
- uploader
- url
type: object
properties:
id:
type: string
title:
type: string
thumbnailURL:
type: string
isAudio:
type: boolean
duration:
type: number
url:
type: string
uploader:
type: string
size:
type: number
path:
type: string
upload_date:
type: string
uid:
type: string
sharingEnabled:
type: boolean
inline_response_200_6_new_sub:
required:
- id
- name
- url
type: object
properties:
name:
type: string
url:
type: string
id:
type: string
streamingOnly:
type: boolean
timerange:
type: string
inline_response_200_9_subscription:
required:
- archive
- id
- isPlaylist
- name
- url
type: object
properties:
name:
type: string
url:
type: string
id:
type: string
streamingOnly:
type: boolean
isPlaylist:
type: boolean
archive:
type: string
inline_response_200_11_subscriptions:
required:
- archive
- id
- isPlaylist
- name
- streamingOnly
- url
type: object
properties:
name:
type: string
url:
type: string
id:
type: string
streamingOnly:
type: boolean
isPlaylist:
type: boolean
archive:
type: string
inline_response_200_12_new_playlist:
required:
- fileNames
- id
- name
- thumbnailURL
- type
type: object
properties:
name:
type: string
fileNames:
type: string
id:
type: string
thumbnailURL:
type: string
type:
type: string
user:
title: user
type: object
properties:
uid:
type: string
name:
type: string
passhash:
type: string
files:
type: object
properties:
audio:
type: array
items:
$ref: '#/components/schemas/file'
video:
type: array
items:
$ref: '#/components/schemas/file'
playlists:
type: object
properties:
audio:
type: array
items:
$ref: '#/components/schemas/file'
video:
type: array
items:
$ref: '#/components/schemas/file'
subscriptions:
type: array
items:
$ref: '#/components/schemas/inline_response_200_9_subscription'
created:
type: number
role:
type: string
permissions:
type: array
items:
type: string
permission_overrides:
type: array
items:
type: string
file:
title: file
type: object
properties:
id:
type: string
5 years ago
securitySchemes:
Auth query parameter:
name: apiKey
5 years ago
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'