Marketplace
The plugin marketplace is the official plugin index (plugin-registry.json at the main repo root). The admin fetches and displays it; installation goes through npm (version-selectable).
Registry Format (v2: versions + dependencies)
json
{
"updated": "2026-08-08",
"plugins": [
{
"name": "openvideo-plugin-demo",
"description": "Official demo plugin",
"author": "yangyang8002",
"homepage": "https://github.com/yangyang8002/OpenVideoAPI",
"tags": ["official", "demo"],
"versions": ["1.0.0"],
"dependencies": []
}
]
}| Field | Description |
|---|---|
name | npm package name (installed via npm install) |
versions | available versions (descending, first = latest), selectable in the UI |
dependencies | dependent plugin packages (loaded in topological order) |
Usage
- Admin "Plugins" → "Plugin market" → Refresh
- Pick a version → Install (
npm install <name>@<version>in background) - Enable it in the plugin list
Configurable Registry URL
data/config.json:
json
{ "plugin": { "registry": "https://your-mirror/plugin-registry.json" } }or env OPENVIDEO_PLUGIN_REGISTRY. Defaults to the official repo.
Submitting a Plugin
- Publish your plugin as an npm package (follow the plugin guide manifest conventions)
- Open a PR to the OpenVideoAPI repo adding an entry to
plugin-registry.json(with versions & dependencies)
Hosting Tips
- Plugins must be npm packages (local dev:
npm install <local path>intoplugins/) - Name packages
openvideo-plugin-*for discoverability - Client assets live under
lib/client/inside the package and are injected via/api/plugins/client/*— no bundler needed