summary: Follow a server
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
requestBody:
content:
application/json:
- $ref: '#/components/parameters/id'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
get:
summary: Get a user
security:
- $ref: '#/components/parameters/id'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
requestBody:
content:
application/json:
- Users
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
requestBody:
content:
application/json:
- $ref: '#/components/parameters/idOrUUID'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
'/videos/ownership/{id}/refuse':
post:
summary: Refuse ownership change request
- $ref: '#/components/parameters/idOrUUID'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
'/videos/{id}/give-ownership':
post:
summary: Request ownership change
- username
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
'400':
description: 'Changing video ownership to a remote account is not supported yet'
/videos:
language:
description: Video language
type: string
+ privacy:
+ $ref: '#/components/schemas/VideoPrivacySet'
description:
description: Video description
type: string
- $ref: '#/components/parameters/idOrUUID'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
'/videos/{id}/description':
get:
summary: Get complete video description
- $ref: '#/components/parameters/idOrUUID'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
'/videos/{id}/watching':
put:
summary: Set watching progress of a video
required: true
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
/videos/upload:
post:
summary: Upload a video
- $ref: '#/components/parameters/idOrUUID'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
'/videos/{id}/blacklist':
post:
summary: Blacklist a video
- $ref: '#/components/parameters/idOrUUID'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
delete:
summary: Delete an entry of the blacklist of a video by its id
security:
- $ref: '#/components/parameters/idOrUUID'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
/videos/blacklist:
get:
summary: List blacklisted videos
contentType: text/vtt, application/x-subrip, text/plain
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
delete:
summary: Delete a video caption
tags:
- $ref: '#/components/parameters/captionLanguage'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
/video-channels:
get:
summary: List video channels
- Video Channels
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
requestBody:
content:
application/json:
- $ref: '#/components/parameters/channelHandle'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
requestBody:
content:
application/json:
- $ref: '#/components/parameters/channelHandle'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
'/video-channels/{channelHandle}/videos':
get:
summary: List videos of a video channel
application/json:
schema:
$ref: '#/components/schemas/VideoListResponse'
+
+ /video-playlists/privacies:
+ get:
+ summary: List available playlist privacies
+ tags:
+ - Video Playlists
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ type: string
+
/video-playlists:
get:
summary: List video playlists
type: array
items:
$ref: '#/components/schemas/VideoPlaylist'
+ post:
+ summary: Create a video playlist
+ description: 'If the video playlist is set as public, the videoChannelId is mandatory.'
+ security:
+ - OAuth2: []
+ tags:
+ - Video Playlists
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ videoPlaylist:
+ type: object
+ properties:
+ id:
+ type: number
+ uuid:
+ type: string
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ displayName:
+ description: Video playlist display name
+ type: string
+ thumbnailfile:
+ description: Video playlist thumbnail file
+ type: string
+ format: binary
+ privacy:
+ $ref: '#/components/schemas/VideoPlaylistPrivacySet'
+ description:
+ description: Video playlist description
+ type: string
+ videoChannelId:
+ description: Video channel in which the playlist will be published
+ type: number
+ required:
+ - displayName
+
+ /video-playlists/{id}:
+ get:
+ summary: Get a video playlist
+ tags:
+ - Video Playlists
+ parameters:
+ - $ref: '#/components/parameters/idOrUUID'
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VideoPlaylist'
+ put:
+ summary: Update a video playlist
+ description: 'If the video playlist is set as public, the playlist must have a assigned channel.'
+ security:
+ - OAuth2: []
+ tags:
+ - Video Playlists
+ responses:
+ '204':
+ description: successful operation
+ parameters:
+ - $ref: '#/components/parameters/idOrUUID'
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ displayName:
+ description: Video playlist display name
+ type: string
+ thumbnailfile:
+ description: Video playlist thumbnail file
+ type: string
+ format: binary
+ privacy:
+ $ref: '#/components/schemas/VideoPlaylistPrivacySet'
+ description:
+ description: Video playlist description
+ type: string
+ videoChannelId:
+ description: Video channel in which the playlist will be published
+ type: number
+ delete:
+ summary: Delete a video playlist
+ security:
+ - OAuth2: []
+ tags:
+ - Video Playlists
+ parameters:
+ - $ref: '#/components/parameters/idOrUUID'
+ responses:
+ '204':
+ description: successful operation
+
+ /video-playlists/{id}/videos:
+ get:
+ summary: 'List videos of a playlist'
+ tags:
+ - Videos
+ - Video Playlists
+ parameters:
+ - $ref: '#/components/parameters/idOrUUID'
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VideoListResponse'
+ post:
+ summary: 'Add a video in a playlist'
+ security:
+ - OAuth2: []
+ tags:
+ - Videos
+ - Video Playlists
+ parameters:
+ - $ref: '#/components/parameters/idOrUUID'
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ videoPlaylistElement:
+ type: object
+ properties:
+ id:
+ type: number
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ videoId:
+ type: number
+ description: 'Video to add in the playlist'
+ startTimestamp:
+ type: number
+ description: 'Start the video at this specific timestamp (in seconds)'
+ stopTimestamp:
+ type: number
+ description: 'Stop the video at this specific timestamp (in seconds)'
+ required:
+ - videoId
+
+ /video-playlists/{id}/videos/reorder:
+ post:
+ summary: 'Reorder a playlist'
+ security:
+ - OAuth2: []
+ tags:
+ - Video Playlists
+ parameters:
+ - $ref: '#/components/parameters/idOrUUID'
+ responses:
+ '204':
+ description: successful operation
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ startPosition:
+ type: number
+ description: 'Start position of the element to reorder (starts from 1)'
+ insertAfterPosition:
+ type: number
+ description: 'New position for the block to reorder (starts from 0, to add the block before the first element)'
+ reorderLength:
+ type: number
+ description: 'How many element from startPosition to reorder (minimum length is 1)'
+ required:
+ - startPosition
+ - insertAfterPosition
+
+ /video-playlists/{id}/videos/:playlistElementId:
+ put:
+ summary: 'Update a playlist element'
+ security:
+ - OAuth2: []
+ tags:
+ - Video Playlists
+ parameters:
+ - $ref: '#/components/parameters/idOrUUID'
+ - $ref: '#/components/parameters/playlistElementId'
+ responses:
+ '204':
+ description: successful operation
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ startTimestamp:
+ type: number
+ description: 'Start the video at this specific timestamp (in seconds)'
+ stopTimestamp:
+ type: number
+ description: 'Stop the video at this specific timestamp (in seconds)'
+ delete:
+ summary: 'Delete an element from a playlist'
+ security:
+ - OAuth2: []
+ tags:
+ - Video Playlists
+ parameters:
+ - $ref: '#/components/parameters/idOrUUID'
+ - $ref: '#/components/parameters/playlistElementId'
+ responses:
+ '204':
+ description: successful operation
+
'/accounts/{name}/video-channels':
get:
summary: List video channels of an account
- $ref: '#/components/parameters/commentId'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
'/videos/{id}/rate':
put:
summary: Like/dislike a video
- $ref: '#/components/parameters/idOrUUID'
responses:
'204':
- $ref: '#/paths/~1users~1me/put/responses/204'
+ description: successful operation
/search/videos:
get:
tags:
name: id
in: path
required: true
- description: The video id or uuid
+ description: The object id or uuid
schema:
type: string
+ playlistElementId:
+ name: playlistElementId
+ in: path
+ required: true
+ description: Playlist element id
+ schema:
+ type: number
captionLanguage:
name: captionLanguage
in: path
type: string
label:
type: string
+
+ VideoPlaylistPrivacySet:
+ type: integer
+ enum:
+ - 1
+ - 2
+ - 3
+ description: 'The video playlist privacy (Public = 1, Unlisted = 2, Private = 3)'
+ VideoPlaylistPrivacyConstant:
+ properties:
+ id:
+ $ref: '#/components/schemas/VideoPlaylistPrivacySet'
+ label:
+ type: string
+
+ VideoPlaylistTypeSet:
+ type: integer
+ enum:
+ - 1
+ - 2
+ description: 'The video playlist type (Regular = 1, Watch Later = 2)'
+ VideoPlaylistTypeConstant:
+ properties:
+ id:
+ $ref: '#/components/schemas/VideoPlaylistTypeSet'
+ label:
+ type: string
+
VideoPrivacySet:
type: integer
enum:
- 1
- 2
- 3
- description: 'The video privacy (Public = 1, Unlisted = 2, Private = 3)'
+ - 4
+ description: 'The video privacy (Public = 1, Unlisted = 2, Private = 3, Internal = 4)'
VideoPrivacyConstant:
properties:
id:
- type: integer
- enum:
- - 1
- - 2
- - 3
+ $ref: '#/components/schemas/VideoPrivacySet'
label:
type: string
VideoStateConstant:
properties:
privacy:
$ref: '#/components/schemas/VideoPrivacySet'
- description: Video privacy target
updateAt:
type: string
format: date
description: When to update the video
required:
- updateAt
- VideoAccountSummary:
+ AccountSummary:
properties:
id:
type: number
type: string
avatar:
nullable: true
- $ref: '#/components/schemas/Avatar'
+ allOf:
+ - $ref: '#/components/schemas/Avatar'
VideoChannelSummary:
properties:
id:
type: string
avatar:
nullable: true
- $ref: '#/components/schemas/Avatar'
+ allOf:
+ - $ref: '#/components/schemas/Avatar'
PlaylistElement:
properties:
position:
type: number
video:
nullable: true
- $ref: '#/components/schemas/Video'
+ allOf:
+ - $ref: '#/components/schemas/Video'
VideoFile:
properties:
magnetUri:
$ref: '#/components/schemas/VideoStateConstant'
scheduledUpdate:
nullable: true
- $ref: '#/components/schemas/VideoScheduledUpdate'
+ allOf:
+ - $ref: '#/components/schemas/VideoScheduledUpdate'
blacklisted:
nullable: true
type: boolean
nullable: true
type: string
account:
- $ref: '#/components/schemas/VideoAccountSummary'
+ $ref: '#/components/schemas/AccountSummary'
channel:
$ref: '#/components/schemas/VideoChannelSummary'
userHistory:
thumbnailPath:
type: string
privacy:
- type: object
- properties:
- id:
- type: number
- label:
- type: string
+ $ref: '#/components/schemas/VideoPlaylistPrivacyConstant'
type:
- type: object
- properties:
- id:
- type: number
- label:
- type: string
+ $ref: '#/components/schemas/VideoPlaylistTypeConstant'
ownerAccount:
- type: object
- properties:
- id:
- type: number
- name:
- type: string
- displayName:
- type: string
- url:
- type: string
- host:
- type: string
+ $ref: '#/components/schemas/AccountSummary'
+ videoChannel:
+ $ref: '#/components/schemas/VideoChannelSummary'
VideoComment:
properties:
id: