PeerTube · Schema

VideoUploadRequestCommon

VideoDecentralizedFederationOpen-SourceActivityPubSelf-HostedStreaming

Properties

Name Type Description
name string Video name
channelId integer Channel id that will contain this video
privacy object
category object
licence object
language object
description string Video description
waitTranscoding boolean Whether or not we wait transcoding before publish the video
generateTranscription boolean **PeerTube >= 6.2** If enabled by the admin, automatically generate a subtitle of the video
support string A text tell the audience how to support the video creator
nsfw boolean Whether or not this video contains sensitive content
nsfwSummary object More information about the sensitive content of the video
nsfwFlags object
tags array Video tags (maximum 5 tags each between 2 and 30 characters)
commentsPolicy object
downloadEnabled boolean Enable or disable downloading for this video
originallyPublishedAt string Date when the content was originally published
scheduleUpdate object
thumbnailfile string Video thumbnail file
previewfile string Deprecated in PeerTube v8.1, use thumbnailfile instead
videoPasswords object
View JSON Schema on GitHub

JSON Schema

VideoUploadRequestCommon.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/peertube/main/json-schema/VideoUploadRequestCommon.json",
  "title": "VideoUploadRequestCommon",
  "properties": {
    "name": {
      "description": "Video name",
      "type": "string",
      "example": "What is PeerTube?",
      "minLength": 3,
      "maxLength": 120
    },
    "channelId": {
      "description": "Channel id that will contain this video",
      "type": "integer",
      "example": 3,
      "minimum": 1
    },
    "privacy": {
      "$ref": "#/components/schemas/VideoPrivacySet"
    },
    "category": {
      "$ref": "#/components/schemas/VideoCategorySet"
    },
    "licence": {
      "$ref": "#/components/schemas/VideoLicenceSet"
    },
    "language": {
      "$ref": "#/components/schemas/VideoLanguageSet"
    },
    "description": {
      "description": "Video description",
      "type": "string",
      "example": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\n"
    },
    "waitTranscoding": {
      "description": "Whether or not we wait transcoding before publish the video",
      "type": "boolean"
    },
    "generateTranscription": {
      "description": "**PeerTube >= 6.2** If enabled by the admin, automatically generate a subtitle of the video",
      "type": "boolean"
    },
    "support": {
      "description": "A text tell the audience how to support the video creator",
      "example": "Please support our work on https://soutenir.framasoft.org/en/ <3",
      "type": "string"
    },
    "nsfw": {
      "description": "Whether or not this video contains sensitive content",
      "type": "boolean"
    },
    "nsfwSummary": {
      "description": "More information about the sensitive content of the video"
    },
    "nsfwFlags": {
      "$ref": "#/components/schemas/NSFWFlag"
    },
    "tags": {
      "description": "Video tags (maximum 5 tags each between 2 and 30 characters)",
      "type": "array",
      "minItems": 1,
      "maxItems": 5,
      "uniqueItems": true,
      "example": [
        "framasoft",
        "peertube"
      ],
      "items": {
        "type": "string",
        "minLength": 2,
        "maxLength": 30
      }
    },
    "commentsPolicy": {
      "$ref": "#/components/schemas/VideoCommentsPolicySet"
    },
    "downloadEnabled": {
      "description": "Enable or disable downloading for this video",
      "type": "boolean"
    },
    "originallyPublishedAt": {
      "description": "Date when the content was originally published",
      "type": "string",
      "format": "date-time"
    },
    "scheduleUpdate": {
      "$ref": "#/components/schemas/VideoScheduledUpdate"
    },
    "thumbnailfile": {
      "description": "Video thumbnail file",
      "type": "string",
      "format": "binary"
    },
    "previewfile": {
      "description": "Deprecated in PeerTube v8.1, use thumbnailfile instead",
      "deprecated": true,
      "type": "string",
      "format": "binary"
    },
    "videoPasswords": {
      "$ref": "#/components/schemas/AddVideoPasswords"
    }
  },
  "required": [
    "channelId",
    "name"
  ]
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/VideoUploadRequestCommon"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.