PeerTube · Schema

ServerConfig

VideoDecentralizedFederationOpen SourceActivityPubSelf-HostedStreaming

Properties

Name Type Description
instance object
search object
plugin object
theme object
email object
contactForm object
serverVersion string
serverCommit string
signup object
transcoding object
import object
export object
autoBlacklist object
avatar object
video object
videoCaption object
user object
trending object
tracker object
followings object
federation object
homepage object
openTelemetry object PeerTube >= 6.1
views object PeerTube >= 6.1
View JSON Schema on GitHub

JSON Schema

ServerConfig.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/peertube/main/json-schema/ServerConfig.json",
  "title": "ServerConfig",
  "properties": {
    "instance": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "shortDescription": {
          "type": "string"
        },
        "defaultClientRoute": {
          "type": "string"
        },
        "isNSFW": {
          "type": "boolean"
        },
        "defaultNSFWPolicy": {
          "type": "string"
        },
        "serverCountry": {
          "type": "string"
        },
        "defaultLanguage": {
          "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"
            }
          }
        },
        "customizations": {
          "type": "object",
          "properties": {
            "javascript": {
              "type": "string"
            },
            "css": {
              "type": "string"
            }
          }
        },
        "avatars": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ActorImage"
          }
        },
        "banners": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ActorImage"
          }
        }
      }
    },
    "search": {
      "type": "object",
      "properties": {
        "remoteUri": {
          "type": "object",
          "properties": {
            "users": {
              "type": "boolean"
            },
            "anonymous": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "plugin": {
      "type": "object",
      "properties": {
        "registered": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "theme": {
      "type": "object",
      "properties": {
        "registered": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "email": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      }
    },
    "contactForm": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      }
    },
    "serverVersion": {
      "type": "string"
    },
    "serverCommit": {
      "type": "string"
    },
    "signup": {
      "type": "object",
      "properties": {
        "allowed": {
          "type": "boolean"
        },
        "allowedForCurrentIP": {
          "type": "boolean"
        },
        "requiresEmailVerification": {
          "type": "boolean"
        }
      }
    },
    "transcoding": {
      "type": "object",
      "properties": {
        "hls": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            }
          }
        },
        "web_videos": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            }
          }
        },
        "enabledResolutions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/VideoResolutionSet"
          }
        }
      }
    },
    "import": {
      "type": "object",
      "properties": {
        "videos": {
          "type": "object",
          "properties": {
            "http": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean"
                }
              }
            },
            "torrent": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "videoChannelSynchronization": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            }
          }
        },
        "users": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "export": {
      "type": "object",
      "properties": {
        "users": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "exportExpiration": {
              "type": "number",
              "description": "In milliseconds"
            },
            "maxUserVideoQuota": {
              "type": "number",
              "description": "In bytes"
            }
          }
        }
      }
    },
    "autoBlacklist": {
      "type": "object",
      "properties": {
        "videos": {
          "type": "object",
          "properties": {
            "ofUsers": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "avatar": {
      "type": "object",
      "properties": {
        "file": {
          "type": "object",
          "properties": {
            "size": {
              "type": "object",
              "properties": {
                "max": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "extensions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "video": {
      "type": "object",
      "properties": {
        "image": {
          "type": "object",
          "properties": {
            "extensions": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "size": {
              "type": "object",
              "properties": {
                "max": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "file": {
          "type": "object",
          "properties": {
            "extensions": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "videoCaption": {
      "type": "object",
      "properties": {
        "file": {
          "type": "object",
          "properties": {
            "size": {
              "type": "object",
              "properties": {
                "max": {
                  "type": "integer"
                }
              }
            },
            "extensions": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "user": {
      "type": "object",
      "properties": {
        "videoQuota": {
          "type": "integer",
          "description": "In bytes",
          "example": 16810141515
        },
        "videoQuotaDaily": {
          "type": "integer",
          "description": "In bytes",
          "example": 1681014151
        }
      }
    },
    "trending": {
      "type": "object",
      "properties": {
        "videos": {
          "type": "object",
          "properties": {
            "intervalDays": {
              "type": "integer"
            }
          }
        }
      }
    },
    "tracker": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      }
    },
    "followings": {
      "type": "object",
      "properties": {
        "instance": {
          "type": "object",
          "properties": {
            "autoFollowIndex": {
              "type": "object",
              "properties": {
                "indexUrl": {
                  "type": "string",
                  "format": "url"
                }
              }
            }
          }
        }
      }
    },
    "federation": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      }
    },
    "homepage": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      }
    },
    "openTelemetry": {
      "type": "object",
      "description": "PeerTube >= 6.1",
      "properties": {
        "metrics": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "playbackStatsInterval": {
              "type": "number",
              "description": "Milliseconds"
            }
          }
        }
      }
    },
    "views": {
      "type": "object",
      "description": "PeerTube >= 6.1",
      "properties": {
        "views": {
          "type": "object",
          "properties": {
            "watchingInterval": {
              "type": "object",
              "properties": {
                "anonymous": {
                  "type": "number",
                  "description": "Milliseconds"
                },
                "users": {
                  "type": "number",
                  "description": "Milliseconds"
                }
              }
            }
          }
        }
      }
    }
  }
}