PeerTube · Schema

ServerConfigCustom

VideoDecentralizedFederationOpen SourceActivityPubSelf-HostedStreaming

Properties

Name Type Description
instance object
theme object
services object
cache object
signup object
admin object
contactForm object
user object Settings that apply to new users, if registration is enabled
transcoding object Settings pertaining to transcoding jobs
import object
autoBlacklist object
followers object
storyboard object
defaults object
View JSON Schema on GitHub

JSON Schema

ServerConfigCustom.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/peertube/main/json-schema/ServerConfigCustom.json",
  "title": "ServerConfigCustom",
  "properties": {
    "instance": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "shortDescription": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "terms": {
          "type": "string"
        },
        "codeOfConduct": {
          "type": "string"
        },
        "creationReason": {
          "type": "string"
        },
        "moderationInformation": {
          "type": "string"
        },
        "administrator": {
          "type": "string"
        },
        "maintenanceLifetime": {
          "type": "string"
        },
        "businessModel": {
          "type": "string"
        },
        "hardwareInformation": {
          "type": "string"
        },
        "languages": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "isNSFW": {
          "type": "boolean"
        },
        "defaultNSFWPolicy": {
          "type": "string"
        },
        "serverCountry": {
          "type": "string"
        },
        "support": {
          "type": "object",
          "properties": {
            "text": {
              "type": "string"
            }
          }
        },
        "social": {
          "type": "object",
          "properties": {
            "externalLink": {
              "type": "string"
            },
            "mastodonLink": {
              "type": "string"
            },
            "blueskyLink": {
              "type": "string"
            },
            "xLink": {
              "type": "string"
            }
          }
        },
        "defaultClientRoute": {
          "type": "string"
        },
        "customizations": {
          "type": "object",
          "properties": {
            "javascript": {
              "type": "string"
            },
            "css": {
              "type": "string"
            }
          }
        }
      }
    },
    "theme": {
      "type": "object",
      "properties": {
        "default": {
          "type": "string"
        }
      }
    },
    "services": {
      "type": "object",
      "properties": {
        "twitter": {
          "type": "object",
          "properties": {
            "username": {
              "type": "string"
            }
          }
        }
      }
    },
    "cache": {
      "type": "object",
      "properties": {
        "previews": {
          "type": "object",
          "properties": {
            "size": {
              "type": "integer"
            }
          }
        },
        "captions": {
          "type": "object",
          "properties": {
            "size": {
              "type": "integer"
            }
          }
        }
      }
    },
    "signup": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "limit": {
          "type": "integer"
        },
        "requiresEmailVerification": {
          "type": "boolean"
        }
      }
    },
    "admin": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "format": "email"
        }
      }
    },
    "contactForm": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      }
    },
    "user": {
      "type": "object",
      "description": "Settings that apply to new users, if registration is enabled",
      "properties": {
        "videoQuota": {
          "type": "integer",
          "example": 16810141515
        },
        "videoQuotaDaily": {
          "type": "integer",
          "example": 1681014151
        }
      }
    },
    "transcoding": {
      "type": "object",
      "description": "Settings pertaining to transcoding jobs",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "originalFile": {
          "type": "object",
          "properties": {
            "keep": {
              "type": "boolean"
            }
          }
        },
        "allowAdditionalExtensions": {
          "type": "boolean",
          "description": "Allow your users to upload .mkv, .mov, .avi, .wmv, .flv, .f4v, .3g2, .3gp, .mts, m2ts, .mxf, .nut videos"
        },
        "allowAudioFiles": {
          "type": "boolean",
          "description": "If a user uploads an audio file, PeerTube will create a video by merging the preview file and the audio file"
        },
        "threads": {
          "type": "integer",
          "description": "Amount of threads used by ffmpeg for 1 transcoding job"
        },
        "concurrency": {
          "type": "number",
          "description": "Amount of transcoding jobs to execute in parallel"
        },
        "profile": {
          "type": "string",
          "enum": [
            "default"
          ],
          "description": "New profiles can be added by plugins ; available in core PeerTube: 'default'.\n"
        },
        "resolutions": {
          "type": "object",
          "description": "Resolutions to transcode _new videos_ to",
          "properties": {
            "0p": {
              "type": "boolean"
            },
            "144p": {
              "type": "boolean"
            },
            "240p": {
              "type": "boolean"
            },
            "360p": {
              "type": "boolean"
            },
            "480p": {
              "type": "boolean"
            },
            "720p": {
              "type": "boolean"
            },
            "1080p": {
              "type": "boolean"
            },
            "1440p": {
              "type": "boolean"
            },
            "2160p": {
              "type": "boolean"
            }
          }
        },
        "web_videos": {
          "type": "object",
          "description": "Web Video specific settings",
          "properties": {
            "enabled": {
              "type": "boolean"
            }
          }
        },
        "hls": {
          "type": "object",
          "description": "HLS specific settings",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "splitAudioAndVideo": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "import": {
      "type": "object",
      "properties": {
        "videos": {
          "type": "object",
          "properties": {
            "http": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean"
                }
              }
            },
            "torrent": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "video_channel_synchronization": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "autoBlacklist": {
      "type": "object",
      "properties": {
        "videos": {
          "type": "object",
          "properties": {
            "ofUsers": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "followers": {
      "type": "object",
      "properties": {
        "instance": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "manualApproval": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "storyboard": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      }
    },
    "defaults": {
      "type": "object",
      "properties": {
        "publish": {
          "type": "object",
          "properties": {
            "downloadEnabled": {
              "type": "boolean"
            },
            "commentsPolicy": {
              "$ref": "#/components/schemas/VideoCommentsPolicySet"
            },
            "privacy": {
              "$ref": "#/components/schemas/VideoPrivacySet"
            },
            "licence": {
              "$ref": "#/components/schemas/VideoLicenceSet"
            }
          }
        },
        "p2p": {
          "type": "object",
          "properties": {
            "webapp": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean"
                }
              }
            },
            "embed": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "player": {
          "type": "object",
          "properties": {
            "autoPlay": {
              "type": "boolean"
            }
          }
        }
      }
    }
  }
}