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/{id}
The id of the account
starting page
stopping 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/{id}/videos
The id of the account
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 id of the account
starting page
(no description)
sorting
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
stopping page
sorting
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
stopping page
sorting
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
starting page
stopping page
sorting
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
starting page
stopping page
sorting
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
starting page
stopping page
sorting
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"
]
GET /videos/search
starting page
stopping page
sorting
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"
}
}
}
]
PUT /videos/{id}
The video id
Video thumbnail file
Video preview file
Video category
Video licence
Video language
Video description
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
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
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
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
Video file
Video thumbnail file
Video preview file
Video category
Video licence
Video language
Video description
Text describing how to support the video uploader
Channel id that will contain this video
Whether or not this video contains sensitive content
Video name
Video tags
Enable or disable comments for this video
Video privacy
successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"video": {
"id": "number",
"uuid": "string"
}
}
VideoAbuse
GET /videos/abuse
starting page
stopping 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"
}
},
"video": {
"id": "number",
"name": "string",
"uuid": "string",
"url": "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
stopping 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 /video-channels
starting page
stopping page
sorting
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
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
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
successful operation
Response Content-Types: application/json
GET /video-channels/{id}/videos
The video channel id
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/{accountId}/video-channels
The account id
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/{videoId}/comment-threads
The video id
starting page
stopping 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
- 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
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
- 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
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
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",
"ownerAccount": {
"id": "number",
"uuid": "string"
}
}
]
}
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"
}