mothermachine

Browse / Video and streaming

PeerTube

Federated self-hosted video platform with live streaming, an OpenAPI REST API, and peertube-cli.

AdaptableOperable Business appWeb app Deterministic TypeScript API License: AGPL-3.0

Framasoft's ActivityPub video platform: upload, transcode, live stream, moderate, and federate from your own server. Everything the web client does goes through the documented REST API, and configuration is a production.yaml file.

Alternative to YouTube, Vimeo

Use it when
  • I need to host training or community video on my own domain with an API my agent can upload to
  • I want live streaming plus VOD without YouTube's policies, and I can accept AGPL
Gotchas
  • AGPL-3.0; modifications to a public instance must be published
  • Needs PostgreSQL, Redis, nginx, and ffmpeg; the FAQ warns transcoding is CPU-heavy
  • YAML config is read at start; restart after edits

Last activity Aug 28, 2026. Fit: adaptable 2, operable 3.

Editions

Free · Free open source

  • Clonegit clone https://github.com/Chocobozzz/PeerTube
  • ImageContainer
  • InstallInstall

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only12 things to edit

Copy config/production.yaml.example to config/production.yaml and set webserver, database, redis, smtp, transcoding, live, and storage. Docker deployments override with PEERTUBE_* variables. Runtime settings land in config/local-production.json through the admin UI or API. Plugins and themes extend behavior without forking.

Env vars
PEERTUBE_* (Docker overrides) PT_INITIAL_ROOT_PASSWORD NODE_ENV NODE_CONFIG_DIR FFMPEG_PATH FFPROBE_PATH YOUTUBE_DL_DOWNLOAD_BEARER_TOKEN HTTP_PROXY HTTPS_PROXY
Config files
config/production.yaml config/default.yaml config/local-production.json
Prompt files
none
Accounts you need
none

Source

Operable: what an agent can drive

Interface

OfficialAPIpublished by the builderlocal

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
docs.joinpeertube.org/api-rest-reference.html

Reach

Partial coverage. 9 of 10 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Upload and import videosReachableREST API videos/upload and imports; docs.joinpeertube.org/maintain/tools covers CLI import
Manage channels and playlistsReachableREST API video-channels and video-playlists sections
Create and manage live streamsReachableREST API videos/live; README: permanent live streams supported
Moderate: abuses, blocklists, commentsReachableREST API abuses and server blocklist sections
Manage users and registrationsReachableREST API users section
Follow and unfollow other instancesReachableREST API server following; docs admin/following-instances
Change instance configuration at runtimeReachableREST API config/custom writes local-production.json, reloaded on the fly
Install plugins and themesReachableREST API plugins section (admin)
Run remote transcoding runnersReachableREST API runners section
Serve video P2P to viewersNot reachableBrowser-side WebRTC behavior; no API action, it is a viewer feature

Code stack

Languages
TypeScript
Frameworks
AngularExpressffmpeg
Package manager
npm
Database
PostgreSQLRedis
Hosting target
Linux serverDockerYunoHost
Built
Human-written (recorded, never ranked)

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: web platform, Angular client, server on any OS99%
executionModelno model at runtime; ffmpeg transcoding99%
operabilityOpenAPI schema at support/doc/api/openapi.yaml and docs.joinpeertube.org/api-rest-reference.html, published by the PeerTube project95%
effortdocs.joinpeertube.org/maintain/configuration: production.yaml overrides default.yaml; PEERTUBE_* env for Docker90%
editionsREADME license section: AGPL-3.0; no paid edition99%
activeGitHub pushedAt 2026-08-28; release v8.2.4 2026-08-04–
reach85%

Open questions

  • Confirm the exact PEERTUBE_* variable names from support/docker/production/.env

Sources