2018-01-24 04:44:52 -05:00
|
|
|
swagger: '2.0'
|
|
|
|
info:
|
2018-01-24 05:54:32 -05:00
|
|
|
title: PeerTube
|
2018-11-13 08:31:31 -05:00
|
|
|
version: 1.1.0-alpha.2
|
2018-11-13 17:27:58 -05:00
|
|
|
contact:
|
|
|
|
name: PeerTube Community
|
|
|
|
url: 'https://joinpeertube.org'
|
|
|
|
license:
|
|
|
|
name: AGPLv3.0
|
|
|
|
url: 'https://github.com/Chocobozzz/PeerTube/blob/master/LICENSE'
|
|
|
|
x-logo:
|
|
|
|
url: 'https://joinpeertube.org/img/brand.png'
|
|
|
|
description: |
|
|
|
|
# Introduction
|
|
|
|
The PeerTube API is built on HTTP(S). Our API is RESTful. It has predictable
|
|
|
|
resource URLs. It returns HTTP response codes to indicate errors. It also
|
|
|
|
accepts and returns JSON in the HTTP body. You can use your favorite
|
|
|
|
HTTP/REST library for your programming language to use PeerTube. No official
|
|
|
|
SDK is currently provided.
|
|
|
|
|
|
|
|
# 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
|
|
|
|
currently be used at a time.
|
2018-04-16 04:48:17 -04:00
|
|
|
securityDefinitions:
|
|
|
|
OAuth2:
|
2018-11-13 17:27:58 -05:00
|
|
|
description: |
|
|
|
|
In the header: *Authorization: Bearer <token\>*
|
|
|
|
|
|
|
|
Authenticating via OAuth requires the following steps:
|
|
|
|
|
|
|
|
- Have an account with sufficient authorization levels
|
|
|
|
- [Generate](https://docs.joinpeertube.org/lang/en/devdocs/rest.html) a Bearer Token
|
|
|
|
- Make Authenticated Requests
|
2018-04-16 04:48:17 -04:00
|
|
|
type: oauth2
|
|
|
|
flow: password
|
|
|
|
# Not implemented yet
|
|
|
|
# authorizationUrl: https://example.com/oauth/authorize
|
|
|
|
tokenUrl: https://peertube.example.com/api/v1/users/token
|
2018-11-13 17:27:58 -05:00
|
|
|
scopes:
|
|
|
|
admin: Admin scope
|
|
|
|
moderator: Moderator scope
|
|
|
|
user: User scope
|
2018-03-07 07:13:40 -05:00
|
|
|
basePath: '/api/v1'
|
|
|
|
schemes:
|
|
|
|
- https
|
2018-11-13 17:27:58 -05:00
|
|
|
host: peertube.example.com
|
|
|
|
x-servers:
|
|
|
|
- url: 'https://peertube.cpy.re/api/v1'
|
|
|
|
description: Live Server
|
|
|
|
produces:
|
|
|
|
- application/json; charset=utf-8
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
tags:
|
|
|
|
- name: Accounts
|
|
|
|
description: |
|
|
|
|
Using some features of PeerTube require authentication, for which Accounts
|
|
|
|
provide different levels of permission as well as associated user information.
|
|
|
|
Accounts also encompass remote accounts discovered across the federation.
|
|
|
|
- name: Config
|
|
|
|
description: |
|
|
|
|
Each server exposes public information regarding supported videos and options.
|
|
|
|
- name: Feeds
|
|
|
|
description: |
|
|
|
|
Feeds of videos and feeds of comments allow to see updates and get them in
|
|
|
|
an aggregator or script of your choice.
|
|
|
|
- name: Job
|
|
|
|
description: |
|
|
|
|
Jobs are long-running tasks enqueued and processed by the instance itself.
|
|
|
|
No additional worker registration is currently available.
|
|
|
|
- name: ServerFollowing
|
|
|
|
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
|
|
|
|
information across its social graph by posting activities to actors' inbox
|
|
|
|
endpoints.
|
|
|
|
- name: VideoAbuse
|
|
|
|
description: |
|
|
|
|
Video abuses deal with reports of local or remote videos alike.
|
|
|
|
- name: Video
|
|
|
|
description: |
|
|
|
|
Operations dealing with listing, uploading, fetching or modifying videos.
|
|
|
|
- name: Search
|
|
|
|
description: |
|
|
|
|
The search helps to find _videos_ from within the instance and beyond.
|
|
|
|
Videos from other instances federated by the instance (that is, instances
|
|
|
|
followed by the instance) can be found via keywords and other criteria of
|
|
|
|
the advanced search.
|
|
|
|
- name: VideoComment
|
|
|
|
description: |
|
|
|
|
Operations dealing with comments to a video. Comments are organized in threads.
|
|
|
|
- name: VideoChannel
|
|
|
|
description: |
|
|
|
|
Operations dealing with creation, modification and video listing of a user's
|
|
|
|
channels.
|
2018-01-24 04:44:52 -05:00
|
|
|
paths:
|
2018-05-25 03:57:16 -04:00
|
|
|
'/accounts/{name}':
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- Accounts
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get the account by name
|
2018-01-24 04:44:52 -05:00
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "accounts.yaml#/parameters/name"
|
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/Account'
|
2018-05-25 03:57:16 -04:00
|
|
|
'/accounts/{name}/videos':
|
2018-04-25 04:21:38 -04:00
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- Accounts
|
2018-11-13 17:27:58 -05:00
|
|
|
- Video
|
|
|
|
summary: Get videos for an account, provided the name of that account
|
2018-04-25 04:21:38 -04:00
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "accounts.yaml#/parameters/name"
|
2018-04-25 04:21:38 -04:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/Video'
|
2018-11-13 17:27:58 -05:00
|
|
|
x-code-samples:
|
|
|
|
- lang: JavaScript
|
|
|
|
source: |
|
|
|
|
fetch('https://peertube.cpy.re/api/v1/accounts/{name}/videos')
|
|
|
|
.then(function(response) {
|
|
|
|
return response.json()
|
|
|
|
}).then(function(data) {
|
|
|
|
console.log(data)
|
|
|
|
})
|
2018-01-24 04:44:52 -05:00
|
|
|
/accounts:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- Accounts
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get all accounts
|
2018-01-24 04:44:52 -05:00
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
2018-11-13 17:27:58 -05:00
|
|
|
- application/jsonhttps://peertube.cpy.re/api/v1
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/Account'
|
|
|
|
/config:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- Config
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get the configuration of the server
|
2018-01-24 04:44:52 -05:00
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
2018-03-19 07:36:41 -04:00
|
|
|
$ref: '#/definitions/ServerConfig'
|
2018-04-16 18:49:04 -04:00
|
|
|
/feeds/videos.{format}:
|
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get the feed of videos for the server, with optional filter by account name or id
|
2018-04-16 18:49:04 -04:00
|
|
|
tags:
|
|
|
|
- Feeds
|
|
|
|
produces:
|
2018-04-23 08:39:52 -04:00
|
|
|
- application/atom+xml
|
|
|
|
- application/rss+xml
|
2018-04-16 18:49:04 -04:00
|
|
|
- application/json
|
|
|
|
parameters:
|
|
|
|
- name: format
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
type: string
|
2018-04-24 11:05:32 -04:00
|
|
|
enum: [ 'xml', 'atom', 'json']
|
2018-04-16 18:49:04 -04:00
|
|
|
default: 'xml'
|
|
|
|
description: 'The format expected (xml defaults to RSS 2.0, atom to ATOM 1.0 and json to JSON FEED 1.0'
|
|
|
|
- name: accountId
|
|
|
|
in: query
|
|
|
|
required: false
|
|
|
|
type: number
|
|
|
|
description: 'The id of the local account to filter to (beware, users IDs and not actors IDs which will return empty feeds'
|
|
|
|
- name: accountName
|
|
|
|
in: query
|
|
|
|
required: false
|
|
|
|
type: string
|
|
|
|
description: 'The name of the local account to filter to'
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
2018-01-24 04:44:52 -05:00
|
|
|
/jobs:
|
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get list of jobs
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
2018-11-13 17:27:58 -05:00
|
|
|
- OAuth2: [ admin ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Job
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
2018-02-17 13:24:56 -05:00
|
|
|
parameters:
|
|
|
|
- name: state
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
type: string
|
2018-07-17 10:37:28 -04:00
|
|
|
description: 'The state of the job'
|
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
2018-03-19 07:36:41 -04:00
|
|
|
$ref: '#/definitions/Job'
|
2018-01-24 04:44:52 -05:00
|
|
|
'/server/following/{host}':
|
|
|
|
delete:
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
2018-11-13 17:27:58 -05:00
|
|
|
- OAuth2: [ admin ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- ServerFollowing
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Unfollow a server by hostname
|
2018-01-24 04:44:52 -05:00
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
|
|
|
- name: host
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
description: 'The host to unfollow '
|
|
|
|
responses:
|
|
|
|
'201':
|
|
|
|
description: successful operation
|
|
|
|
/server/followers:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- ServerFollowing
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get followers of the server
|
2018-01-24 04:44:52 -05:00
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
2018-02-17 13:24:56 -05:00
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/Follow'
|
|
|
|
/server/following:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- ServerFollowing
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get servers followed by the server
|
2018-01-24 04:44:52 -05:00
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
2018-02-17 13:24:56 -05:00
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/Follow'
|
|
|
|
post:
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
2018-11-13 17:27:58 -05:00
|
|
|
- OAuth2: [ admin ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- ServerFollowing
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Follow a server
|
2018-01-24 04:44:52 -05:00
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/Follow'
|
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-01-24 04:44:52 -05:00
|
|
|
/users:
|
|
|
|
post:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Creates user
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
2018-11-13 17:27:58 -05:00
|
|
|
- OAuth2: [ admin ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
required: true
|
2018-04-06 04:17:06 -04:00
|
|
|
description: 'User to create'
|
2018-01-24 04:44:52 -05:00
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/AddUser'
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/AddUserResponse'
|
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get a list of users
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
2018-02-17 13:24:56 -05:00
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/User'
|
|
|
|
'/users/{id}':
|
|
|
|
delete:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Delete a user by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
2018-11-13 17:27:58 -05:00
|
|
|
- OAuth2: [ admin ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "users.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get user by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "users.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/User'
|
|
|
|
put:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Update user profile by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "users.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/UpdateUser'
|
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-01-24 04:44:52 -05:00
|
|
|
/users/me:
|
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get current user information
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/User'
|
|
|
|
put:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Update current user information
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/UpdateMe'
|
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-01-24 04:44:52 -05:00
|
|
|
/users/me/video-quota-used:
|
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get current user used quota
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters: []
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: number
|
|
|
|
'/users/me/videos/{videoId}/rating':
|
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get rating of video by its id, among those of the current user
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
|
|
|
- name: videoId
|
|
|
|
in: path
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
description: 'The video id '
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/GetMeVideoRating'
|
|
|
|
/users/me/videos:
|
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get videos of the current user
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
2018-02-17 13:24:56 -05:00
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/Video'
|
|
|
|
/users/register:
|
|
|
|
post:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Register a user
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/RegisterUser'
|
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-01-24 04:44:52 -05:00
|
|
|
/users/me/avatar/pick:
|
|
|
|
post:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Update current user avatar
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- User
|
|
|
|
consumes:
|
|
|
|
- multipart/form-data
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
|
|
|
- in: formData
|
|
|
|
name: avatarfile
|
|
|
|
type: file
|
|
|
|
description: The file to upload.
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/Avatar'
|
2018-01-25 12:39:51 -05:00
|
|
|
/videos:
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get list of videos
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Video
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
2018-02-17 13:24:56 -05:00
|
|
|
parameters:
|
2018-06-27 08:24:49 -04:00
|
|
|
- name: category
|
|
|
|
in: query
|
|
|
|
required: false
|
|
|
|
type: number
|
|
|
|
description: category id of the video
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/Video'
|
2018-01-25 12:39:51 -05:00
|
|
|
/videos/categories:
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get list of video licences known by the server
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Video
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: string
|
2018-01-25 12:39:51 -05:00
|
|
|
/videos/licences:
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get list of video licences known by the server
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Video
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: string
|
2018-01-25 12:39:51 -05:00
|
|
|
/videos/languages:
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get list of languages known by the server
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Video
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: string
|
2018-01-25 12:39:51 -05:00
|
|
|
/videos/privacies:
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get list of privacy policies supported by the server
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Video
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: string
|
2018-01-25 12:39:51 -05:00
|
|
|
"/videos/{id}":
|
2018-01-24 04:44:52 -05:00
|
|
|
put:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Update metadata for a video by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Video
|
|
|
|
consumes:
|
2018-04-06 04:17:06 -04:00
|
|
|
- multipart/form-data
|
2018-01-24 04:44:52 -05:00
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
|
|
|
- $ref: "videos.yaml#/parameters/thumbnailfile"
|
|
|
|
- $ref: "videos.yaml#/parameters/previewfile"
|
|
|
|
- $ref: "videos.yaml#/parameters/category"
|
|
|
|
- $ref: "videos.yaml#/parameters/licence"
|
|
|
|
- $ref: "videos.yaml#/parameters/language"
|
|
|
|
- $ref: "videos.yaml#/parameters/description"
|
|
|
|
- $ref: "videos.yaml#/parameters/waitTranscoding"
|
|
|
|
- $ref: "videos.yaml#/parameters/support"
|
|
|
|
- $ref: "videos.yaml#/parameters/nsfw"
|
|
|
|
- $ref: "videos.yaml#/parameters/name"
|
|
|
|
- $ref: "videos.yaml#/parameters/tags"
|
|
|
|
- $ref: "videos.yaml#/parameters/commentsEnabled"
|
|
|
|
- $ref: "videos.yaml#/parameters/privacy"
|
|
|
|
- $ref: "videos.yaml#/parameters/scheduleUpdate"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/Video'
|
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get a video by its id
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Video
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/Video'
|
|
|
|
delete:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Delete a video by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Video
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-01-25 12:39:51 -05:00
|
|
|
"/videos/{id}/description":
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get a video description by its id
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Video
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: string
|
2018-01-25 12:39:51 -05:00
|
|
|
"/videos/{id}/views":
|
2018-01-24 04:44:52 -05:00
|
|
|
post:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Add a view to the video by its id
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Video
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-01-25 12:39:51 -05:00
|
|
|
/videos/upload:
|
2018-01-24 04:44:52 -05:00
|
|
|
post:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Upload a video file with its metadata
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- Video
|
|
|
|
consumes:
|
|
|
|
- multipart/form-data
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-04-06 04:17:06 -04:00
|
|
|
- name: videofile
|
|
|
|
in: formData
|
2018-01-24 04:44:52 -05:00
|
|
|
type: file
|
2018-04-06 04:17:06 -04:00
|
|
|
required: true
|
|
|
|
description: 'Video file'
|
|
|
|
- name: channelId
|
|
|
|
in: formData
|
|
|
|
required: true
|
|
|
|
type: number
|
|
|
|
description: 'Channel id that will contain this video'
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/thumbnailfile"
|
|
|
|
- $ref: "videos.yaml#/parameters/previewfile"
|
|
|
|
- $ref: "videos.yaml#/parameters/category"
|
|
|
|
- $ref: "videos.yaml#/parameters/licence"
|
|
|
|
- $ref: "videos.yaml#/parameters/language"
|
|
|
|
- $ref: "videos.yaml#/parameters/description"
|
|
|
|
- $ref: "videos.yaml#/parameters/waitTranscoding"
|
|
|
|
- $ref: "videos.yaml#/parameters/support"
|
|
|
|
- $ref: "videos.yaml#/parameters/nsfw"
|
|
|
|
- $ref: "videos.yaml#/parameters/name"
|
|
|
|
- $ref: "videos.yaml#/parameters/tags"
|
|
|
|
- $ref: "videos.yaml#/parameters/commentsEnabled"
|
|
|
|
- $ref: "videos.yaml#/parameters/privacy"
|
|
|
|
- $ref: "videos.yaml#/parameters/scheduleUpdate"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/VideoUploadResponse'
|
2018-01-25 12:39:51 -05:00
|
|
|
/videos/abuse:
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get list of reported video abuses
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoAbuse
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
2018-02-17 13:24:56 -05:00
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/VideoAbuse'
|
2018-01-25 12:39:51 -05:00
|
|
|
"/videos/{id}/abuse":
|
2018-01-24 04:44:52 -05:00
|
|
|
post:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Report an abuse, on a video by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoAbuse
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
|
|
|
"/videos/{id}/blacklist":
|
2018-01-24 04:44:52 -05:00
|
|
|
post:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Put on blacklist a video by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
2018-11-13 17:27:58 -05:00
|
|
|
- OAuth2: [ admin, moderator ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoBlacklist
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-01-24 04:44:52 -05:00
|
|
|
delete:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Delete an entry of the blacklist of a video by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
2018-11-13 17:27:58 -05:00
|
|
|
- OAuth2: [ admin, moderator ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoBlacklist
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-01-25 12:39:51 -05:00
|
|
|
/videos/blacklist:
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get list of videos on blacklist
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
2018-11-13 17:27:58 -05:00
|
|
|
- OAuth2: [ admin, moderator ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoBlacklist
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
2018-02-17 13:24:56 -05:00
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/VideoBlacklist'
|
2018-04-24 11:05:32 -04:00
|
|
|
/video-channels:
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get list of video channels
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoChannel
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
2018-02-17 13:24:56 -05:00
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/VideoChannel'
|
|
|
|
post:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Creates a video channel for the current user
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoChannel
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/VideoChannelInput'
|
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-04-25 10:15:39 -04:00
|
|
|
"/video-channels/{id}":
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get a video channel by its id
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoChannel
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "video-channels.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/VideoChannel'
|
|
|
|
put:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Update a video channel by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoChannel
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "video-channels.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
- in: body
|
|
|
|
name: body
|
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/VideoChannelInput'
|
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-01-24 04:44:52 -05:00
|
|
|
delete:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Delete a video channel by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoChannel
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "video-channels.yaml#/parameters/id"
|
2018-04-25 10:15:39 -04:00
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-04-25 10:15:39 -04:00
|
|
|
"/video-channels/{id}/videos":
|
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get videos of a video channel by its id
|
2018-04-25 10:15:39 -04:00
|
|
|
tags:
|
|
|
|
- VideoChannel
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "video-channels.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
2018-04-25 10:15:39 -04:00
|
|
|
'200':
|
2018-01-24 04:44:52 -05:00
|
|
|
description: successful operation
|
2018-04-25 10:15:39 -04:00
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/Video'
|
2018-05-25 03:57:16 -04:00
|
|
|
/accounts/{name}/video-channels:
|
2018-04-25 04:21:38 -04:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get video channels of an account by its name
|
2018-04-25 04:21:38 -04:00
|
|
|
tags:
|
|
|
|
- VideoChannel
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "accounts.yaml#/parameters/name"
|
2018-04-25 04:21:38 -04:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
2018-04-25 10:15:39 -04:00
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/VideoChannel'
|
2018-07-17 10:37:28 -04:00
|
|
|
"/videos/{id}/comment-threads":
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get the comment threads of a video by its id
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoComment
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
2018-01-24 05:54:32 -05:00
|
|
|
schema:
|
2018-01-25 12:39:51 -05:00
|
|
|
$ref: '#/definitions/CommentThreadResponse'
|
2018-01-24 04:44:52 -05:00
|
|
|
post:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Creates a comment thread, on a video by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoComment
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
2018-01-25 12:39:51 -05:00
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/CommentThreadPostResponse'
|
2018-07-17 10:37:28 -04:00
|
|
|
"/videos/{id}/comment-threads/{threadId}":
|
2018-01-24 04:44:52 -05:00
|
|
|
get:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get the comment thread by its id, of a video by its id
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoComment
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
|
|
|
- $ref: "video-comments.yaml#/parameters/threadId"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
2018-01-24 05:54:32 -05:00
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/VideoCommentThreadTree'
|
2018-07-17 10:37:28 -04:00
|
|
|
"/videos/{id}/comments/{commentId}":
|
2018-01-24 04:44:52 -05:00
|
|
|
post:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Creates a comment in a comment thread by its id, of a video by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoComment
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
|
|
|
- $ref: "video-comments.yaml#/parameters/commentId"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
2018-01-25 12:39:51 -05:00
|
|
|
schema:
|
|
|
|
$ref: '#/definitions/CommentThreadPostResponse'
|
2018-01-24 04:44:52 -05:00
|
|
|
delete:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Delete a comment in a comment therad by its id, of a video by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoComment
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
|
|
|
- $ref: "video-comments.yaml#/parameters/commentId"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-01-25 12:39:51 -05:00
|
|
|
"/videos/{id}/rate":
|
2018-01-24 04:44:52 -05:00
|
|
|
put:
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Vote for a video by its id
|
2018-04-16 04:48:17 -04:00
|
|
|
security:
|
|
|
|
- OAuth2: [ ]
|
2018-01-24 04:44:52 -05:00
|
|
|
tags:
|
|
|
|
- VideoRate
|
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
2018-07-17 10:37:28 -04:00
|
|
|
- $ref: "videos.yaml#/parameters/id"
|
2018-01-24 04:44:52 -05:00
|
|
|
responses:
|
|
|
|
'204':
|
2018-07-17 10:37:28 -04:00
|
|
|
$ref: "commons.yaml#/responses/emptySuccess"
|
2018-07-28 14:38:49 -04:00
|
|
|
/search/videos:
|
|
|
|
get:
|
|
|
|
tags:
|
|
|
|
- Search
|
2018-11-13 17:27:58 -05:00
|
|
|
summary: Get the videos corresponding to a given query
|
2018-07-28 14:38:49 -04:00
|
|
|
consumes:
|
|
|
|
- application/json
|
|
|
|
produces:
|
|
|
|
- application/json
|
|
|
|
parameters:
|
|
|
|
- $ref: "commons.yaml#/parameters/start"
|
|
|
|
- $ref: "commons.yaml#/parameters/count"
|
|
|
|
- $ref: "commons.yaml#/parameters/sort"
|
2018-07-29 16:26:05 -04:00
|
|
|
- name: search
|
2018-07-28 14:38:49 -04:00
|
|
|
in: query
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
description: 'String to search'
|
|
|
|
responses:
|
|
|
|
'200':
|
|
|
|
description: successful operation
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/definitions/Video'
|
2018-01-24 04:44:52 -05:00
|
|
|
definitions:
|
2018-04-23 08:39:52 -04:00
|
|
|
VideoConstantNumber:
|
2018-03-19 07:36:41 -04:00
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
label:
|
|
|
|
type: string
|
2018-04-23 08:39:52 -04:00
|
|
|
VideoConstantString:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: string
|
|
|
|
label:
|
|
|
|
type: string
|
2018-04-06 04:17:06 -04:00
|
|
|
VideoPrivacy:
|
|
|
|
type: string
|
|
|
|
enum: [Public, Unlisted, Private]
|
2018-01-24 04:44:52 -05:00
|
|
|
Video:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
uuid:
|
|
|
|
type: string
|
|
|
|
createdAt:
|
|
|
|
type: string
|
2018-04-06 04:17:06 -04:00
|
|
|
publishedAt:
|
|
|
|
type: string
|
2018-01-24 04:44:52 -05:00
|
|
|
updatedAt:
|
|
|
|
type: string
|
|
|
|
category:
|
2018-04-23 08:39:52 -04:00
|
|
|
$ref: "#/definitions/VideoConstantNumber"
|
2018-01-24 04:44:52 -05:00
|
|
|
licence:
|
2018-04-23 08:39:52 -04:00
|
|
|
$ref: "#/definitions/VideoConstantNumber"
|
2018-01-24 04:44:52 -05:00
|
|
|
language:
|
2018-04-23 08:39:52 -04:00
|
|
|
$ref: "#/definitions/VideoConstantString"
|
2018-04-06 04:17:06 -04:00
|
|
|
privacy:
|
|
|
|
$ref: "#/definitions/VideoPrivacy"
|
2018-01-24 04:44:52 -05:00
|
|
|
description:
|
|
|
|
type: string
|
|
|
|
duration:
|
|
|
|
type: number
|
|
|
|
isLocal:
|
|
|
|
type: boolean
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
thumbnailPath:
|
|
|
|
type: string
|
|
|
|
previewPath:
|
|
|
|
type: string
|
|
|
|
embedPath:
|
|
|
|
type: string
|
|
|
|
views:
|
|
|
|
type: number
|
|
|
|
likes:
|
|
|
|
type: number
|
|
|
|
dislikes:
|
|
|
|
type: number
|
|
|
|
nsfw:
|
|
|
|
type: boolean
|
2018-03-12 06:06:15 -04:00
|
|
|
account:
|
2018-04-06 04:17:06 -04:00
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
displayName:
|
|
|
|
type: string
|
|
|
|
url:
|
|
|
|
type: string
|
|
|
|
host:
|
|
|
|
type: string
|
|
|
|
avatar:
|
|
|
|
$ref: "#/definitions/Avatar"
|
2018-01-24 04:44:52 -05:00
|
|
|
VideoAbuse:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
reason:
|
|
|
|
type: string
|
2018-03-12 06:29:46 -04:00
|
|
|
reporterAccount:
|
|
|
|
$ref: "#/definitions/Account"
|
|
|
|
video:
|
2018-04-06 04:17:06 -04:00
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
uuid:
|
|
|
|
type: string
|
|
|
|
url:
|
|
|
|
type: string
|
2018-01-24 04:44:52 -05:00
|
|
|
createdAt:
|
|
|
|
type: string
|
|
|
|
VideoBlacklist:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
videoId:
|
|
|
|
type: number
|
|
|
|
createdAt:
|
|
|
|
type: string
|
|
|
|
updatedAt:
|
|
|
|
type: string
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
uuid:
|
|
|
|
type: string
|
|
|
|
description:
|
|
|
|
type: string
|
|
|
|
duration:
|
|
|
|
type: number
|
|
|
|
views:
|
|
|
|
type: number
|
|
|
|
likes:
|
|
|
|
type: number
|
|
|
|
dislikes:
|
|
|
|
type: number
|
|
|
|
nsfw:
|
|
|
|
type: boolean
|
|
|
|
VideoChannel:
|
|
|
|
properties:
|
|
|
|
displayName:
|
|
|
|
type: string
|
|
|
|
description:
|
|
|
|
type: string
|
|
|
|
isLocal:
|
|
|
|
type: boolean
|
2018-04-25 04:21:38 -04:00
|
|
|
ownerAccount:
|
2018-01-24 04:44:52 -05:00
|
|
|
type: object
|
2018-03-19 07:36:41 -04:00
|
|
|
properties:
|
2018-04-25 04:21:38 -04:00
|
|
|
id:
|
|
|
|
type: number
|
2018-03-19 07:36:41 -04:00
|
|
|
uuid:
|
2018-01-24 04:44:52 -05:00
|
|
|
type: string
|
|
|
|
VideoComment:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
url:
|
|
|
|
type: string
|
|
|
|
text:
|
|
|
|
type: string
|
|
|
|
threadId:
|
|
|
|
type: number
|
|
|
|
inReplyToCommentId:
|
|
|
|
type: number
|
|
|
|
videoId:
|
|
|
|
type: number
|
|
|
|
createdAt:
|
|
|
|
type: string
|
|
|
|
updatedAt:
|
|
|
|
type: string
|
|
|
|
totalReplies:
|
|
|
|
type: number
|
|
|
|
account:
|
|
|
|
$ref: "#/definitions/Account"
|
2018-01-24 05:54:32 -05:00
|
|
|
VideoCommentThreadTree:
|
|
|
|
properties:
|
|
|
|
comment:
|
|
|
|
$ref: "#/definitions/VideoComment"
|
|
|
|
children:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: "#/definitions/VideoCommentThreadTree"
|
2018-01-24 04:44:52 -05:00
|
|
|
Avatar:
|
|
|
|
properties:
|
|
|
|
path:
|
|
|
|
type: string
|
|
|
|
createdAt:
|
|
|
|
type: string
|
|
|
|
updatedAt:
|
|
|
|
type: string
|
|
|
|
Actor:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
uuid:
|
|
|
|
type: string
|
|
|
|
url:
|
|
|
|
type: string
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
host:
|
|
|
|
type: string
|
|
|
|
followingCount:
|
|
|
|
type: number
|
|
|
|
followersCount:
|
|
|
|
type: number
|
|
|
|
createdAt:
|
|
|
|
type: string
|
|
|
|
updatedAt:
|
|
|
|
type: string
|
|
|
|
avatar:
|
|
|
|
$ref: "#/definitions/Avatar"
|
|
|
|
Account:
|
|
|
|
allOf:
|
|
|
|
- $ref: "#/definitions/Actor"
|
|
|
|
- properties:
|
|
|
|
displayName:
|
|
|
|
type: string
|
|
|
|
User:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
displayNSFW:
|
|
|
|
type: boolean
|
|
|
|
autoPlayVideo:
|
|
|
|
type: boolean
|
|
|
|
role:
|
|
|
|
type: string
|
2018-03-19 07:36:41 -04:00
|
|
|
enum: [User, Moderator, Administrator]
|
2018-01-24 04:44:52 -05:00
|
|
|
videoQuota:
|
|
|
|
type: number
|
|
|
|
createdAt:
|
|
|
|
type: string
|
|
|
|
account:
|
|
|
|
$ref: "#/definitions/Account"
|
|
|
|
videoChannels:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: "#/definitions/VideoChannel"
|
|
|
|
ServerConfig:
|
|
|
|
properties:
|
2018-03-19 07:36:41 -04:00
|
|
|
signup:
|
2018-01-24 04:44:52 -05:00
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
allowed:
|
|
|
|
type: boolean
|
|
|
|
transcoding:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
enabledResolutions:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: number
|
|
|
|
avatar:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
file:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
size:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
max:
|
|
|
|
type: number
|
2018-03-19 07:36:41 -04:00
|
|
|
extensions:
|
2018-01-24 04:44:52 -05:00
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: string
|
|
|
|
video:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
file:
|
|
|
|
type: object
|
2018-03-19 07:36:41 -04:00
|
|
|
properties:
|
|
|
|
extensions:
|
2018-01-24 04:44:52 -05:00
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
type: string
|
|
|
|
Follow:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
follower:
|
|
|
|
$ref: "#/definitions/Actor"
|
|
|
|
following:
|
|
|
|
$ref: "#/definitions/Actor"
|
|
|
|
score:
|
|
|
|
type: number
|
|
|
|
state:
|
|
|
|
type: string
|
|
|
|
enum: [pending, accepted]
|
|
|
|
createdAt:
|
|
|
|
type: string
|
|
|
|
updatedAt:
|
|
|
|
type: string
|
|
|
|
Job:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
state:
|
|
|
|
type: string
|
|
|
|
enum: [pending, processing, error, success]
|
|
|
|
category:
|
|
|
|
type: string
|
|
|
|
enum: [transcoding, activitypub-http]
|
|
|
|
handlerName:
|
|
|
|
type: string
|
|
|
|
handlerInputData:
|
|
|
|
type: string
|
|
|
|
createdAt:
|
|
|
|
type: string
|
|
|
|
updatedAt:
|
|
|
|
type: string
|
|
|
|
|
2018-04-06 04:17:06 -04:00
|
|
|
# Api responses
|
2018-01-24 04:44:52 -05:00
|
|
|
AddUserResponse:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
uuid:
|
|
|
|
type: string
|
|
|
|
VideoUploadResponse:
|
|
|
|
properties:
|
2018-04-06 04:17:06 -04:00
|
|
|
video:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: number
|
|
|
|
uuid:
|
|
|
|
type: string
|
2018-01-25 12:39:51 -05:00
|
|
|
CommentThreadResponse:
|
|
|
|
properties:
|
|
|
|
total:
|
|
|
|
type: number
|
|
|
|
data:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: "#/definitions/VideoComment"
|
|
|
|
CommentThreadPostResponse:
|
|
|
|
properties:
|
|
|
|
comment:
|
|
|
|
$ref: "#/definitions/VideoComment"
|
2018-01-24 04:44:52 -05:00
|
|
|
|
2018-04-06 04:17:06 -04:00
|
|
|
# Request bodies
|
2018-01-24 04:44:52 -05:00
|
|
|
AddUser:
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
description: 'The user username '
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
description: 'The user password '
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
description: 'The user email '
|
|
|
|
videoQuota:
|
|
|
|
type: string
|
|
|
|
description: 'The user videoQuota '
|
|
|
|
role:
|
|
|
|
type: string
|
|
|
|
description: 'The user role '
|
|
|
|
required:
|
|
|
|
- username
|
|
|
|
- password
|
|
|
|
- email
|
|
|
|
- videoQuota
|
|
|
|
- role
|
|
|
|
UpdateUser:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: string
|
|
|
|
description: 'The user id '
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
description: 'The updated email of the user '
|
|
|
|
videoQuota:
|
|
|
|
type: string
|
|
|
|
description: 'The updated videoQuota of the user '
|
|
|
|
role:
|
|
|
|
type: string
|
|
|
|
description: 'The updated role of the user '
|
|
|
|
required:
|
|
|
|
- id
|
|
|
|
- email
|
|
|
|
- videoQuota
|
|
|
|
- role
|
|
|
|
UpdateMe:
|
|
|
|
properties:
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
description: 'Your new password '
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
description: 'Your new email '
|
|
|
|
displayNSFW:
|
|
|
|
type: string
|
|
|
|
description: 'Your new displayNSFW '
|
|
|
|
autoPlayVideo:
|
|
|
|
type: string
|
|
|
|
description: 'Your new autoPlayVideo '
|
|
|
|
required:
|
|
|
|
- password
|
|
|
|
- email
|
|
|
|
- displayNSFW
|
|
|
|
- autoPlayVideo
|
|
|
|
GetMeVideoRating:
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: string
|
|
|
|
description: 'Id of the video '
|
|
|
|
rating:
|
|
|
|
type: number
|
|
|
|
description: 'Rating of the video '
|
|
|
|
required:
|
|
|
|
- id
|
|
|
|
- rating
|
|
|
|
RegisterUser:
|
|
|
|
properties:
|
|
|
|
username:
|
|
|
|
type: string
|
|
|
|
description: 'The username of the user '
|
|
|
|
password:
|
|
|
|
type: string
|
|
|
|
description: 'The password of the user '
|
|
|
|
email:
|
|
|
|
type: string
|
|
|
|
description: 'The email of the user '
|
|
|
|
required:
|
|
|
|
- username
|
|
|
|
- password
|
|
|
|
- email
|
|
|
|
VideoChannelInput:
|
|
|
|
properties:
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
description:
|
2018-11-13 17:27:58 -05:00
|
|
|
type: string
|