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
Authentication
OAuth2
In the header: Authorization: Bearer mytoken
Accounts
GET /accounts/{name}
The name of the account (chocobozzz or chocobozzz@peertube.cpy.re for example)
Offset
Number of items
Sort column (-createdAt for example)
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/{name}/videos
The name of the account (chocobozzz or chocobozzz@peertube.cpy.re for example)
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"publishedAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "string",
"label": "string"
},
"privacy": "string",
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean",
"account": {
"name": "string",
"displayName": "string",
"url": "string",
"host": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
GET /accounts
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"
]
}
}
}
Feeds
GET /feeds/videos.{format}
The format expected (xml defaults to RSS 2.0, atom to ATOM 1.0 and json to JSON FEED 1.0
The id of the local account to filter to (beware, users IDs and not actors IDs which will return empty feeds
The name of the local account to filter to
successful operation
Response Content-Types: application/atom+xml, application/rss+xml, application/json
Job
GET /jobs
The state of the job
Offset
Number of items
Sort column (-createdAt for example)
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
Offset
Number of items
Sort column (-createdAt for example)
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
Offset
Number of items
Sort column (-createdAt for example)
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
undefined
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
User to create
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
Offset
Number of items
Sort column (-createdAt for example)
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",
"ownerAccount": {
"id": "number",
"uuid": "string"
}
}
]
}
]
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",
"ownerAccount": {
"id": "number",
"uuid": "string"
}
}
]
}
PUT /users/{id}
undefined
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
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",
"ownerAccount": {
"id": "number",
"uuid": "string"
}
}
]
}
]
PUT /users/me
undefined
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
Offset
Number of items
Sort column (-createdAt for example)
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"publishedAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "string",
"label": "string"
},
"privacy": "string",
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean",
"account": {
"name": "string",
"displayName": "string",
"url": "string",
"host": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
]
POST /users/register
undefined
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
category id of the video
Offset
Number of items
Sort column (-createdAt for example)
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"publishedAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "string",
"label": "string"
},
"privacy": "string",
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean",
"account": {
"name": "string",
"displayName": "string",
"url": "string",
"host": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
]
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"
]
PUT /videos/{id}
The video id or uuid
Video thumbnail file
Video preview file
Video category
Video licence
Video language
Video description
Whether or not we wait transcoding before publish the video
Text describing how to support the video uploader
Whether or not this video contains sensitive content
Video name
Video tags
Enable or disable comments for this video
Video privacy
Schedule an update at a specific datetime
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"publishedAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "string",
"label": "string"
},
"privacy": "string",
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean",
"account": {
"name": "string",
"displayName": "string",
"url": "string",
"host": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
GET /videos/{id}
The video id or uuid
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"publishedAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "string",
"label": "string"
},
"privacy": "string",
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean",
"account": {
"name": "string",
"displayName": "string",
"url": "string",
"host": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
DELETE /videos/{id}
The video id or uuid
Successful operation
Response Content-Types: application/json
GET /videos/{id}/description
The video id or uuid
successful operation
Response Content-Types: application/json
Response Example (200 OK)
"string"
POST /videos/{id}/views
The video id or uuid
Successful operation
Response Content-Types: application/json
POST /videos/upload
Video file
Channel id that will contain this video
Video thumbnail file
Video preview file
Video category
Video licence
Video language
Video description
Whether or not we wait transcoding before publish the video
Text describing how to support the video uploader
Whether or not this video contains sensitive content
Video name
Video tags
Enable or disable comments for this video
Video privacy
Schedule an update at a specific datetime
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"video": {
"id": "number",
"uuid": "string"
}
}
VideoAbuse
GET /videos/abuse
Offset
Number of items
Sort column (-createdAt for example)
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"
}
},
"video": {
"id": "number",
"name": "string",
"uuid": "string",
"url": "string"
},
"createdAt": "string"
}
]
POST /videos/{id}/abuse
The video id or uuid
Successful operation
Response Content-Types: application/json
VideoBlacklist
POST /videos/{id}/blacklist
The video id or uuid
Successful operation
Response Content-Types: application/json
DELETE /videos/{id}/blacklist
The video id or uuid
Successful operation
Response Content-Types: application/json
GET /videos/blacklist
Offset
Number of items
Sort column (-createdAt for example)
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 /video-channels
Offset
Number of items
Sort column (-createdAt for example)
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"ownerAccount": {
"id": "number",
"uuid": "string"
}
}
]
POST /video-channels
undefined
Request Content-Types: application/json
Request Example
{
"name": "string",
"description": "string"
}
Successful operation
Response Content-Types: application/json
GET /video-channels/{id}
The video channel id or uuid
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"ownerAccount": {
"id": "number",
"uuid": "string"
}
}
PUT /video-channels/{id}
undefined
The video channel id or uuid
Request Content-Types: application/json
Request Example
{
"name": "string",
"description": "string"
}
Successful operation
Response Content-Types: application/json
DELETE /video-channels/{id}
The video channel id or uuid
Successful operation
Response Content-Types: application/json
GET /video-channels/{id}/videos
The video channel id or uuid
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"publishedAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "string",
"label": "string"
},
"privacy": "string",
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean",
"account": {
"name": "string",
"displayName": "string",
"url": "string",
"host": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
GET /accounts/{name}/video-channels
The name of the account (chocobozzz or chocobozzz@peertube.cpy.re for example)
successful operation
Response Content-Types: application/json
Response Example (200 OK)
[
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"ownerAccount": {
"id": "number",
"uuid": "string"
}
}
]
VideoComment
GET /videos/{id}/comment-threads
The video id or uuid
Offset
Number of items
Sort column (-createdAt for example)
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/{id}/comment-threads
The video id or uuid
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/{id}/comment-threads/{threadId}
The video id or uuid
The thread id (root 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"
}
}
},
"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/{id}/comments/{commentId}
The video id or uuid
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/{id}/comments/{commentId}
The video id or uuid
The comment id
Successful operation
Response Content-Types: application/json
VideoRate
PUT /videos/{id}/rate
The video id or uuid
Successful operation
Response Content-Types: application/json
Search
GET /search/videos
Offset
Number of items
Sort column (-createdAt for example)
String to search
Response Content-Types: application/json
Response Example (200 OK)
[
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"publishedAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "string",
"label": "string"
},
"privacy": "string",
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean",
"account": {
"name": "string",
"displayName": "string",
"url": "string",
"host": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
]
Schema Definitions
Video:
- id: number
- uuid: string
- createdAt: string
- publishedAt: string
- updatedAt: string
- category: VideoConstantNumber
- licence: VideoConstantNumber
- language: VideoConstantString
- privacy: VideoPrivacy
- description: string
- duration: number
- isLocal: boolean
- name: string
- thumbnailPath: string
- previewPath: string
- embedPath: string
- views: number
- likes: number
- dislikes: number
- nsfw: boolean
- account: object
-
- name: string
- displayName: string
- url: string
- host: string
- avatar: Avatar
Example
{
"id": "number",
"uuid": "string",
"createdAt": "string",
"publishedAt": "string",
"updatedAt": "string",
"category": {
"id": "number",
"label": "string"
},
"licence": {
"id": "number",
"label": "string"
},
"language": {
"id": "string",
"label": "string"
},
"privacy": "string",
"description": "string",
"duration": "number",
"isLocal": "boolean",
"name": "string",
"thumbnailPath": "string",
"previewPath": "string",
"embedPath": "string",
"views": "number",
"likes": "number",
"dislikes": "number",
"nsfw": "boolean",
"account": {
"name": "string",
"displayName": "string",
"url": "string",
"host": "string",
"avatar": {
"path": "string",
"createdAt": "string",
"updatedAt": "string"
}
}
}
VideoAbuse:
- id: number
- reason: string
- reporterAccount: Account
- video: object
-
- id: number
- name: string
- uuid: string
- url: string
- 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"
}
},
"video": {
"id": "number",
"name": "string",
"uuid": "string",
"url": "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
- ownerAccount: object
-
- id: number
- uuid: string
Example
{
"displayName": "string",
"description": "string",
"isLocal": "boolean",
"ownerAccount": {
"id": "number",
"uuid": "string"
}
}
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
-
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
-
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",
"ownerAccount": {
"id": "number",
"uuid": "string"
}
}
]
}
ServerConfig:
- signup: object
-
- allowed: boolean
- transcoding: object
-
- enabledResolutions: number[]
-
number
- avatar: object
-
- file: object
-
- size: object
-
- max: number
- extensions: string[]
-
string
- video: object
-
- file: object
-
- extensions: string[]
-
string
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"
}
VideoUploadResponse:
- video: object
-
- id: number
- uuid: string
Example
{
"video": {
"id": "number",
"uuid": "string"
}
}
CommentThreadResponse:
- total: number
- data: VideoComment
-
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"
}