PeerTube + API Reference +
+Federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.
+Version: + 0.0.15-alpha +
+Accounts
++ + GET + /accounts/{id} + +
+The id of the account
+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 + +
+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 + +
+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 + +
+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 + +
+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",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "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",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "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",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "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 + +
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+[
+ {
+ "id": "number",
+ "uuid": "string",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "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 + /video + +
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+[
+ {
+ "id": "number",
+ "uuid": "string",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "string",
+ "thumbnailPath": "string",
+ "previewPath": "string",
+ "embedPath": "string",
+ "views": "number",
+ "likes": "number",
+ "dislikes": "number",
+ "nsfw": "boolean"
+ }
+]
+
+
+ + + GET + /video/categories + +
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+[
+ "string"
+]
+
+
+ + + GET + /video/licences + +
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+[
+ "string"
+]
+
+
+ + + GET + /video/languages + +
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+[
+ "string"
+]
+
+
+ + + GET + /video/privacies + +
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+[
+ "string"
+]
+
+
+ + + GET + /video/search + +
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+[
+ {
+ "id": "number",
+ "uuid": "string",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "string",
+ "thumbnailPath": "string",
+ "previewPath": "string",
+ "embedPath": "string",
+ "views": "number",
+ "likes": "number",
+ "dislikes": "number",
+ "nsfw": "boolean"
+ }
+]
+
+
+ + + PUT + /video/{id} + +
+The video id
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+{
+ "id": "number",
+ "uuid": "string",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "string",
+ "thumbnailPath": "string",
+ "previewPath": "string",
+ "embedPath": "string",
+ "views": "number",
+ "likes": "number",
+ "dislikes": "number",
+ "nsfw": "boolean"
+}
+
+
+ + + GET + /video/{id} + +
+The video id
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+{
+ "id": "number",
+ "uuid": "string",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "string",
+ "thumbnailPath": "string",
+ "previewPath": "string",
+ "embedPath": "string",
+ "views": "number",
+ "likes": "number",
+ "dislikes": "number",
+ "nsfw": "boolean"
+}
+
+
+ + + DELETE + /video/{id} + +
+The video id
+successful operation
+Response Content-Types: + application/json +
++ + GET + /video/{id}/description + +
+The video id
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+"string"
+
+
+ + + POST + /video/{id}/views + +
+The video id
+successful operation
+Response Content-Types: + application/json +
++ + POST + /video/upload + +
+The file to upload.
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+{
+ "id": "number",
+ "uuid": "string"
+}
+
+
+ VideoAbuse
++ + GET + /video/abuse + +
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+[
+ {
+ "id": "number",
+ "reason": "string",
+ "reporterUsername": "string",
+ "reporterServerHost": "string",
+ "videoId": "number",
+ "videoUUID": "string",
+ "videoName": "string",
+ "createdAt": "string"
+ }
+]
+
+
+ + + POST + /video/{id}/abuse + +
+The video id
+successful operation
+Response Content-Types: + application/json +
+VideoBlacklist
++ + POST + /video/{videoId}/blacklist + +
+The video id
+successful operation
+Response Content-Types: + application/json +
++ + DELETE + /video/{videoId}/blacklist + +
+The video id
+successful operation
+Response Content-Types: + application/json +
++ + GET + /video/blacklist + +
+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 + +
+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",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "string",
+ "thumbnailPath": "string",
+ "previewPath": "string",
+ "embedPath": "string",
+ "views": "number",
+ "likes": "number",
+ "dislikes": "number",
+ "nsfw": "boolean"
+ }
+ ]
+ }
+]
+
+
+ + + POST + /video/channels + +
+Request Content-Types: + application/json +
+Request Example
+{
+ "name": "string",
+ "description": "string"
+}
+
+
+ successful operation
+Response Content-Types: + application/json +
++ + GET + /video/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",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "string",
+ "thumbnailPath": "string",
+ "previewPath": "string",
+ "embedPath": "string",
+ "views": "number",
+ "likes": "number",
+ "dislikes": "number",
+ "nsfw": "boolean"
+ }
+ ]
+}
+
+
+ + + PUT + /video/channels/{id} + +
+The video 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 id
+successful operation
+Response Content-Types: + application/json +
++ + GET + /video/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",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "string",
+ "thumbnailPath": "string",
+ "previewPath": "string",
+ "embedPath": "string",
+ "views": "number",
+ "likes": "number",
+ "dislikes": "number",
+ "nsfw": "boolean"
+ }
+ ]
+ }
+]
+
+
+ VideoComment
++ + GET + /video/{videoId}/comment-threads + +
+The video id
+successful operation
+Response Content-Types: + application/json +
+Response Example + (200 OK) +
+ + ++ + POST + /video/{videoId}/comment-threads + +
+The video id
+successful operation
+Response Content-Types: + application/json +
++ + GET + /video/{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 + /video/{videoId}/comments/{commentId} + +
+The video id
+The comment id
+successful operation
+Response Content-Types: + application/json +
++ + DELETE + /video/{videoId}/comments/{commentId} + +
+The video id
+The comment id
+successful operation
+Response Content-Types: + application/json +
+VideoRate
++ + PUT + /video/{id}/rate + +
+The video id
+successful operation
+Response Content-Types: + application/json +
+Schema Definitions
++ Video: + +
+-
+
- + id: + number + + +
- + uuid: + string + + +
- + accountName: + string + + +
- + createdAt: + string + + +
- + updatedAt: + string + + +
- + categoryLabel: + string + + +
- + category: + number + + +
- + licenceLabel: + string + + +
- + licence: + number + + +
- + languageLabel: + string + + +
- + language: + number + + +
- + description: + string + + +
- + duration: + number + + +
- + isLocal: + boolean + + +
- + name: + string + + +
- + serverHost: + string + + +
- + thumbnailPath: + string + + +
- + previewPath: + string + + +
- + embedPath: + string + + +
- + views: + number + + +
- + likes: + number + + +
- + dislikes: + number + + +
- + nsfw: + boolean + + +
Example
+{
+ "id": "number",
+ "uuid": "string",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "string",
+ "thumbnailPath": "string",
+ "previewPath": "string",
+ "embedPath": "string",
+ "views": "number",
+ "likes": "number",
+ "dislikes": "number",
+ "nsfw": "boolean"
+}
+
+
+ + VideoAbuse: + +
+-
+
- + id: + number + + +
- + reason: + string + + +
- + reporterUsername: + string + + +
- + reporterServerHost: + string + + +
- + videoId: + number + + +
- + videoUUID: + string + + +
- + videoName: + string + + +
- + createdAt: + string + + +
Example
+{
+ "id": "number",
+ "reason": "string",
+ "reporterUsername": "string",
+ "reporterServerHost": "string",
+ "videoId": "number",
+ "videoUUID": "string",
+ "videoName": "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",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "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: + +
+-
+
+ Actor
+
+
-
+
- + 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",
+ "accountName": "string",
+ "createdAt": "string",
+ "updatedAt": "string",
+ "categoryLabel": "string",
+ "category": "number",
+ "licenceLabel": "string",
+ "licence": "number",
+ "languageLabel": "string",
+ "language": "number",
+ "description": "string",
+ "duration": "number",
+ "isLocal": "boolean",
+ "name": "string",
+ "serverHost": "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"
+}
+
+
+ + AddUserResponse: + +
+-
+
- + id: + number + + +
- + uuid: + string + + +
Example
+{
+ "id": "number",
+ "uuid": "string"
+}
+
+
+ + VideoUploadResponse: + +
+-
+
- + id: + number + + +
- + uuid: + string + + +
Example
+{
+ "id": "number",
+ "uuid": "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"
+}
+
+
+ + VideoChannelInput: + +
+-
+
- + name: + string + + +
- + description: + string + + +
Example
+{
+ "name": "string",
+ "description": "string"
+}
+
+
+