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"
            }
          }
        }
      }
    }
  }
}