Admin-only form at /plugins/manual-video-settings/admin/ for hand-editing the host's transcoding config: HLS latency level, output codec, autoplay, and each output variant's resolution, framerate, video bitrate, CPU usage level, and passthrough flag. The form reads the current state via owncast.video_config.read() and POSTs partial updates through owncast.video_config.write().
Demonstrates: combining manifest.admin.pages (host-gated routes, no auth code in the plugin) with the videoconfig.read / videoconfig.write permission split. The handler accepts a partial VideoConfigUpdate so fields the form didn't touch are left untouched by the host.
{
"permissions": ["http.serve", "videoconfig.read", "videoconfig.write"],
"admin": { "pages": { "/admin": { "title": "Manual Video Settings" } } }
}Layout:
| Route | Behavior |
|---|---|
GET /admin/ |
Static HTML form (auth-gated by the host). |
GET /admin/api/config |
Returns the current VideoConfig as JSON. |
POST /admin/api/config |
Applies a VideoConfigUpdate, 204 on success. |
See stream-ops for the same APIs driven from chat commands instead of a UI, and admin-demo for the bare minimum admin-page pattern.