PeerTube API Reference
Federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.
API Endpoint
https://peertube.example.com/api/v1
Schemes: https
Version: 1.0.0-beta
Accounts
GET /accounts/{id}
The id of the account
starting page
stoping page
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
GET /accounts
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
]
Config
GET /config
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"signup": {
"allowed": "boolean"
},
"transcoding": {
"enabledResolutions": [
"number"
]
},
"avatar": {
"file": {
"size": {
"max": "number"
}
},
"extensions": [
"string"
]
},
"video": {
"file": {
"extensions": [
"string"
]
}
}
}
Job
GET /jobs
The id of the account
starting page
(no description)
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"state": "string",
"category": "string",
"handlerName": "string",
"handlerInputData": "string",
"createdAt": "string",
"updatedAt": "string"
}
]
ServerFollowing
DELETE /server/following/{host}
The host to unfollow
successful operation
Response Content-Types: application/json
GET /server/followers
starting page
stoping page
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"follower": {
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"following": {
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"score": "number",
"state": "string",
"createdAt": "string",
"updatedAt": "string"
}
]
GET /server/following
starting page
stoping page
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"follower": {
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"following": {
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"score": "number",
"state": "string",
"createdAt": "string",
"updatedAt": "string"
}
]
POST /server/following
Request Content-Types: application/json
Request Example
{
"id": "number",
"follower": {
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"following": {
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"score": "number",
"state": "string",
"createdAt": "string",
"updatedAt": "string"
}
successful operation
Response Content-Types: application/json
User
POST /users
Request Content-Types: application/json
Request Example
{
"username": "string",
"password": "string",
"email": "string",
"videoQuota": "string",
"role": "string"
}
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"id": "number",
"uuid": "string"
}
GET /users
starting page
stoping page
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"username": "string",
"email": "string",
"displayNSFW": "boolean",
"autoPlayVideo": "boolean",
"role": "string",
"videoQuota": "number",
"createdAt": "string",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"videoChannels": [
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"owner": {
"name": "string",
"uuid": "string"
},
"videos": [
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
}
]
}
]
DELETE /users/{id}
The user id
successful operation
Response Content-Types: application/json
GET /users/{id}
The user id
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"id": "number",
"username": "string",
"email": "string",
"displayNSFW": "boolean",
"autoPlayVideo": "boolean",
"role": "string",
"videoQuota": "number",
"createdAt": "string",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"videoChannels": [
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"owner": {
"name": "string",
"uuid": "string"
},
"videos": [
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
}
]
}
PUT /users/{id}
The user id
Request Content-Types: application/json
Request Example
{
"id": "string",
"email": "string",
"videoQuota": "string",
"role": "string"
}
successful operation
Response Content-Types: application/json
GET /users/me
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"username": "string",
"email": "string",
"displayNSFW": "boolean",
"autoPlayVideo": "boolean",
"role": "string",
"videoQuota": "number",
"createdAt": "string",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"videoChannels": [
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"owner": {
"name": "string",
"uuid": "string"
},
"videos": [
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
}
]
}
]
PUT /users/me
Request Content-Types: application/json
Request Example
{
"password": "string",
"email": "string",
"displayNSFW": "string",
"autoPlayVideo": "string"
}
successful operation
Response Content-Types: application/json
GET /users/me/video-quota-used
successful operation
Response Content-Types: application/json
Response Example (200 OK)
"number"
GET /users/me/videos/{videoId}/rating
The video id
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"id": "string",
"rating": "number"
}
GET /users/me/videos
starting page
stoping page
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
POST /users/register
Request Content-Types: application/json
Request Example
{
"username": "string",
"password": "string",
"email": "string"
}
successful operation
Response Content-Types: application/json
POST /users/me/avatar/pick
The file to upload.
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
Video
GET /videos
starting page
stoping page
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
GET /videos/categories
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
"string"
]
GET /videos/licences
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
"string"
]
GET /videos/languages
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
"string"
]
GET /videos/privacies
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
"string"
]
GET /videos/search
starting page
stoping page
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
PUT /videos/{id}
The video id
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
GET /videos/{id}
The video id
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
DELETE /videos/{id}
The video id
successful operation
Response Content-Types: application/json
GET /videos/{id}/description
The video id
successful operation
Response Content-Types: application/json
Response Example (200 OK)
"string"
POST /videos/{id}/views
The video id
successful operation
Response Content-Types: application/json
POST /videos/upload
The file to upload.
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"id": "number",
"uuid": "string"
}
VideoAbuse
GET /videos/abuse
starting page
stoping page
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"reason": "string",
"reporterAccount": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"createdAt": "string"
}
]
POST /videos/{id}/abuse
The video id
successful operation
Response Content-Types: application/json
VideoBlacklist
POST /videos/{videoId}/blacklist
The video id
successful operation
Response Content-Types: application/json
DELETE /videos/{videoId}/blacklist
The video id
successful operation
Response Content-Types: application/json
GET /videos/blacklist
starting page
stoping page
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"name": "string",
"uuid": "string",
"description": "string",
"duration": "number",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
VideoChannel
GET /videos/channels
starting page
stoping page
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"owner": {
"name": "string",
"uuid": "string"
},
"videos": [
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
}
]
POST /videos/channels
Request Content-Types: application/json
Request Example
{
"name": "string",
"description": "string"
}
successful operation
Response Content-Types: application/json
GET /videos/channels/{id}
The video id
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"owner": {
"name": "string",
"uuid": "string"
},
"videos": [
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
}
PUT /videos/channels/{id}
The video id
Request Content-Types: application/json
Request Example
{
"name": "string",
"description": "string"
}
successful operation
Response Content-Types: application/json
DELETE /videos/channels/{id}
The video id
successful operation
Response Content-Types: application/json
GET /videos/accounts/{accountId}/channels
The account id
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"owner": {
"name": "string",
"uuid": "string"
},
"videos": [
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
}
]
VideoComment
GET /videos/{videoId}/comment-threads
The video id
starting page
stoping page
sorting
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"total": "number",
"data": [
{
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
]
}
POST /videos/{videoId}/comment-threads
The video id
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"comment": {
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
}
GET /videos/{videoId}/comment-threads/{threadId}
The video id
The thread id
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"comment": {
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
},
"children": [
{
"comment": {
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
},
"children": [
{
"comment": {
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
}
]
}
]
}
POST /videos/{videoId}/comments/{commentId}
The video id
The comment id
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"comment": {
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
}
DELETE /videos/{videoId}/comments/{commentId}
The video id
The comment id
successful operation
Response Content-Types: application/json
VideoRate
PUT /videos/{id}/rate
The video id
successful operation
Response Content-Types: application/json
Schema Definitions
Video:
- id: number
- uuid: string
- createdAt: string
- updatedAt: string
- category: VideoConstant
- licence: VideoConstant
- language: VideoConstant
- description: string
- duration: number
- isLocal: boolean
- name: string
- thumbnailPath: string
- previewPath: string
- embedPath: string
- views: number
- likes: number
- dislikes: number
- nsfw: boolean
- account: object
Example
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
VideoAbuse:
- id: number
- reason: string
- reporterAccount: Account
- video: object
- createdAt: string
Example
{
"id": "number",
"reason": "string",
"reporterAccount": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"createdAt": "string"
}
VideoBlacklist:
- id: number
- videoId: number
- createdAt: string
- updatedAt: string
- name: string
- uuid: string
- description: string
- duration: number
- views: number
- likes: number
- dislikes: number
- nsfw: boolean
Example
{
"id": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"name": "string",
"uuid": "string",
"description": "string",
"duration": "number",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
VideoChannel:
- displayName: string
- description: string
- isLocal: boolean
- owner: object
- videos: Video
Example
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"owner": {
"name": "string",
"uuid": "string"
},
"videos": [
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
}
VideoComment:
- id: number
- url: string
- text: string
- threadId: number
- inReplyToCommentId: number
- videoId: number
- createdAt: string
- updatedAt: string
- totalReplies: number
- account: Account
Example
{
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
VideoCommentThreadTree:
- comment: VideoComment
- children: VideoCommentThreadTree
Example
{
"comment": {
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
},
"children": [
{
"comment": {
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
},
"children": [
{
"comment": {
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
}
]
}
]
}
Avatar:
- path: string
- createdAt: string
- updatedAt: string
Example
{
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
Actor:
- id: number
- uuid: string
- url: string
- name: string
- host: string
- followingCount: number
- followersCount: number
- createdAt: string
- updatedAt: string
- avatar: Avatar
Example
{
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
Account:
- displayName: string
Example
{
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
User:
- id: number
- username: string
- email: string
- displayNSFW: boolean
- autoPlayVideo: boolean
- role: string User, Moderator, Administrator
- videoQuota: number
- createdAt: string
- account: Account
- videoChannels: VideoChannel
Example
{
"id": "number",
"username": "string",
"email": "string",
"displayNSFW": "boolean",
"autoPlayVideo": "boolean",
"role": "string",
"videoQuota": "number",
"createdAt": "string",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"videoChannels": [
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"owner": {
"name": "string",
"uuid": "string"
},
"videos": [
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "number",
"label": "string"
},
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean"
}
]
}
]
}
ServerConfig:
- signup: object
- transcoding: object
- avatar: object
- video: object
Example
{
"signup": {
"allowed": "boolean"
},
"transcoding": {
"enabledResolutions": [
"number"
]
},
"avatar": {
"file": {
"size": {
"max": "number"
}
},
"extensions": [
"string"
]
},
"video": {
"file": {
"extensions": [
"string"
]
}
}
}
Follow:
Example
{
"id": "number",
"follower": {
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"following": {
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
},
"score": "number",
"state": "string",
"createdAt": "string",
"updatedAt": "string"
}
Job:
- id: number
- state: string pending, processing, error, success
- category: string transcoding, activitypub-http
- handlerName: string
- handlerInputData: string
- createdAt: string
- updatedAt: string
Example
{
"id": "number",
"state": "string",
"category": "string",
"handlerName": "string",
"handlerInputData": "string",
"createdAt": "string",
"updatedAt": "string"
}
CommentThreadResponse:
- total: number
- data: VideoComment
Example
{
"total": "number",
"data": [
{
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
]
}
CommentThreadPostResponse:
- comment: VideoComment
Example
{
"comment": {
"id": "number",
"url": "string",
"text": "string",
"threadId": "number",
"inReplyToCommentId": "number",
"videoId": "number",
"createdAt": "string",
"updatedAt": "string",
"totalReplies": "number",
"account": {
"displayName": "string",
"id": "number",
"uuid": "string",
"url": "string",
"name": "string",
"host": "string",
"followingCount": "number",
"followersCount": "number",
"createdAt": "string",
"updatedAt": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
}
AddUser:
- username: string
-
The user username
- password: string
-
The user password
- email: string
-
The user email
- videoQuota: string
-
The user videoQuota
- role: string
-
The user role
Example
{
"username": "string",
"password": "string",
"email": "string",
"videoQuota": "string",
"role": "string"
}
UpdateUser:
- id: string
-
The user id
- email: string
-
The updated email of the user
- videoQuota: string
-
The updated videoQuota of the user
- role: string
-
The updated role of the user
Example
{
"id": "string",
"email": "string",
"videoQuota": "string",
"role": "string"
}
UpdateMe:
- password: string
-
Your new password
- email: string
-
Your new email
- displayNSFW: string
-
Your new displayNSFW
- autoPlayVideo: string
-
Your new autoPlayVideo
Example
{
"password": "string",
"email": "string",
"displayNSFW": "string",
"autoPlayVideo": "string"
}
GetMeVideoRating:
- id: string
-
Id of the video
- rating: number
-
Rating of the video
Example
{
"id": "string",
"rating": "number"
}
RegisterUser:
- username: string
-
The username of the user
- password: string
-
The password of the user
- email: string
-
The email of the user
Example
{
"username": "string",
"password": "string",
"email": "string"
}