openapi: 3.0.0
info:
title: PeerTube
- version: 1.1.0-rc.1
+ version: 1.2.0-rc.1
contact:
name: PeerTube Community
url: 'https://joinpeertube.org'
# Authentication
When you sign up for an account, you are given the possibility to generate
- sessions, and authenticate using this session token. One session token can
+ sessions, and authenticate using this session token. One session token can
currently be used at a time.
# Errors
description: >
Managing servers which the instance interacts with is crucial to the
concept of federation in PeerTube and external video indexation. The PeerTube
- server then deals with inter-server ActivityPub operations and propagates
+ server then deals with inter-server ActivityPub operations and propagates
information across its social graph by posting activities to actors' inbox
endpoints.
- name: Video Abuse
parameters:
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- - $ref: '#/components/parameters/sort'
+ - $ref: '#/components/parameters/usersSort'
responses:
'200':
description: successful operation
get:
summary: Get current user information
security:
- - OAuth2: []
+ - OAuth2:
+ - user
tags:
- User
responses:
put:
summary: Update current user information
security:
- - OAuth2: []
+ - OAuth2:
+ - user
tags:
- User
responses:
get:
summary: Get current user used quota
security:
- - OAuth2: []
+ - OAuth2:
+ - user
tags:
- User
responses:
get:
summary: Get videos of the current user
security:
- - OAuth2: []
+ - OAuth2:
+ - user
tags:
- User
parameters:
type: array
items:
$ref: '#/components/schemas/Video'
+ /users/me/subscriptions:
+ get:
+ summary: Get subscriptions of the current user
+ security:
+ - OAuth2:
+ - user
+ tags:
+ - User
+ parameters:
+ - $ref: '#/components/parameters/start'
+ - $ref: '#/components/parameters/count'
+ - $ref: '#/components/parameters/sort'
+ responses:
+ '200':
+ description: successful operation
+ post:
+ summary: Add subscription to the current user
+ security:
+ - OAuth2:
+ - user
+ tags:
+ - User
+ responses:
+ '200':
+ description: successful operation
+ /users/me/subscriptions/exist:
+ get:
+ summary: Get if subscriptions exist for the current user
+ security:
+ - OAuth2:
+ - user
+ tags:
+ - User
+ parameters:
+ - $ref: '#/components/parameters/subscriptionsUris'
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ type: object
+ /users/me/subscriptions/videos:
+ get:
+ summary: Get videos of subscriptions of the current user
+ security:
+ - OAuth2:
+ - user
+ tags:
+ - User
+ parameters:
+ - $ref: '#/components/parameters/start'
+ - $ref: '#/components/parameters/count'
+ - $ref: '#/components/parameters/sort'
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Video'
+ '/users/me/subscriptions/{uri}':
+ get:
+ summary: Get subscription of the current user for a given uri
+ security:
+ - OAuth2:
+ - user
+ tags:
+ - User
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VideoChannel'
+ delete:
+ summary: Delete subscription of the current user for a given uri
+ security:
+ - OAuth2:
+ - user
+ tags:
+ - User
+ responses:
+ '200':
+ description: successful operation
/users/register:
post:
summary: Register a user
tags:
- Video
parameters:
- - name: category
- in: query
- required: false
- description: category id of the video
- schema:
- type: number
+ - $ref: '#/components/parameters/categoryOneOf'
+ - $ref: '#/components/parameters/tagsOneOf'
+ - $ref: '#/components/parameters/tagsAllOf'
+ - $ref: '#/components/parameters/licenceOneOf'
+ - $ref: '#/components/parameters/languageOneOf'
+ - $ref: '#/components/parameters/nsfw'
+ - $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- - $ref: '#/components/parameters/sort'
+ - $ref: '#/components/parameters/videosSort'
responses:
'200':
description: successful operation
type: string
tags:
description: Video tags
- type: string
+ type: array
+ items:
+ type: string
commentsEnabled:
description: Enable or disable comments for this video
type: string
$ref: '#/paths/~1users~1me/put/responses/204'
'/videos/{id}/watching':
put:
- summary: Indicate progress of in watching the video by its id for a user
+ summary: Set watching progress of a video by its id for a user
tags:
- Video
security:
type: string
tags:
description: Video tags
- type: string
+ type: array
+ items:
+ type: string
commentsEnabled:
description: Enable or disable comments for this video
type: string
parameters:
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- - $ref: '#/components/parameters/sort'
+ - $ref: '#/components/parameters/abusesSort'
responses:
'200':
description: successful operation
parameters:
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- - $ref: '#/components/parameters/sort'
+ - $ref: '#/components/parameters/blacklistsSort'
responses:
'200':
description: successful operation
parameters:
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/count'
- - $ref: '#/components/parameters/sort'
+ - $ref: '#/components/parameters/videosSearchSort'
- name: search
in: query
required: true
description: Sort column (-createdAt for example)
schema:
type: string
+ videosSort:
+ name: sort
+ in: query
+ required: false
+ description: Sort videos by criteria
+ schema:
+ type: string
+ enum:
+ - -name
+ - -duration
+ - -createdAt
+ - -publishedAt
+ - -views
+ - -likes
+ - -trending
+ videosSearchSort:
+ name: sort
+ in: query
+ required: false
+ description: Sort videos by criteria
+ schema:
+ type: string
+ enum:
+ - -name
+ - -duration
+ - -createdAt
+ - -publishedAt
+ - -views
+ - -likes
+ - -match
+ blacklistsSort:
+ name: sort
+ in: query
+ required: false
+ description: Sort blacklists by criteria
+ schema:
+ type: string
+ enum:
+ - -id
+ - -name
+ - -duration
+ - -views
+ - -likes
+ - -dislikes
+ - -uuid
+ - -createdAt
+ usersSort:
+ name: sort
+ in: query
+ required: false
+ description: Sort users by criteria
+ schema:
+ type: string
+ enum:
+ - -id
+ - -username
+ - -createdAt
+ abusesSort:
+ name: sort
+ in: query
+ required: false
+ description: Sort abuses by criteria
+ schema:
+ type: string
+ enum:
+ - -id
+ - -createdAt
+ - -state
name:
name: name
in: path
description: The comment id
schema:
type: number
+ categoryOneOf:
+ name: categoryOneOf
+ in: query
+ required: false
+ description: category id of the video
+ schema:
+ oneOf:
+ - type: number
+ - type: array
+ items:
+ type: number
+ style: form
+ explode: false
+ tagsOneOf:
+ name: tagsOneOf
+ in: query
+ required: false
+ description: tag(s) of the video
+ schema:
+ oneOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ style: form
+ explode: false
+ tagsAllOf:
+ name: tagsAllOf
+ in: query
+ required: false
+ description: tag(s) of the video, where all should be present in the video
+ schema:
+ oneOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ style: form
+ explode: false
+ languageOneOf:
+ name: languageOneOf
+ in: query
+ required: false
+ description: language id of the video
+ schema:
+ oneOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ style: form
+ explode: false
+ licenceOneOf:
+ name: licenceOneOf
+ in: query
+ required: false
+ description: licence id of the video
+ schema:
+ oneOf:
+ - type: number
+ - type: array
+ items:
+ type: number
+ style: form
+ explode: false
+ nsfw:
+ name: nsfw
+ in: query
+ required: false
+ description: whether to include nsfw videos, if any
+ schema:
+ type: string
+ enum:
+ - 'true'
+ - 'false'
+ filter:
+ name: filter
+ in: query
+ required: false
+ description: >
+ Special filters (local for instance) which might require special rights:
+ * `local` - only videos local to the instance
+ * `all-local` - only videos local to the instance, but showing private and unlisted videos (requires Admin privileges)
+ schema:
+ type: string
+ enum:
+ - local
+ - all-local
+ subscriptionsUris:
+ name: uris
+ in: query
+ required: true
+ description: list of uris to check if each is part of the user subscriptions
+ schema:
+ type: array
+ items:
+ type: string
requestBodies:
VideoChannelInput:
content: