Skip to main content

Backend development SDK for OmniPlayr plugins.

Project description

omniplayr-plugins

Backend development SDK for OmniPlayr plugins.

Install it in a plugin development environment:

pip install omniplayr-plugins

Plugin authors can import the public backend SDK from one namespace:

from omniplayr.plugins import BackendPlugin, api, register

This package is intentionally lightweight. It provides type hints, typed placeholders, protocols, docstrings, and IDE autocomplete support for backend plugin development. The actual runtime implementation is provided by the OmniPlayr server and Docker runtime when a plugin is loaded.

Documentation

Read the full backend plugin documentation:

https://omniplayr.wokki20.nl/docs/plugins/building/backend/#backend-plugin-overview

API Map

  • BackendPlugin, PluginBase, register, get_plugin, get_backend_plugin_dir, get_plugin_router, load_plugins View Documentation

  • api, PluginApi, RouteHandler, RouteDecorator View Documentation

  • PluginFunctions, expose, expose_function, call, call_plugin_function, is_installed, is_plugin_available, has_function, is_plugin_function_available, mark_plugin_loaded, remove_plugin, PluginNotAvailableError, PluginFunctionNotFoundError View Documentation

  • get_plugin_config, reload_plugin_config, flatten_plugin_configs, get_config, load_configs, flatten_configs, flatten_frontend_configs, TomlValue, FlatConfigItem, deep_merge, sync_config, start_config_watcher, ConfigChangeHandler

  • request_db_access, PluginDB, ProtectionLevel, get_conn, is_safe_sql_identifier, parse_column_type, can_convert_column, init_db, init_db_when_ready

  • verify_auth, verify_admin, verify_token, get_admin_status, match_account, get_token_user, create_access_token, parse_interval

  • list_accounts, get_account, create_account, update_account, delete_account, account tokens, password verification, and two-factor helpers

  • notify, notify_once, notify_sync, notify_once_sync, get_notifications, get_unread_count, mark_read, delete_notification, NotificationManager

  • log, log_exception, get_logs, exception hook setup helpers, diagnostics helpers, health, ServiceStatus, HealthResponse

  • fetch_plugin_info, install_plugin, install_local_plugin, check_for_updates, apply_update, start_https_proxy, user_warn

Local Testing

From this package:

python -m pip install -e .
python - <<'PY'
from omniplayr.plugins import BackendPlugin, api, register

class MyPlugin(BackendPlugin):
    source_type = "example"

register(MyPlugin())

@api.get("/health")
def health() -> dict[str, str]:
    return {"ok": "true"}

print("omniplayr.plugins import OK")
PY

The SDK exports a PEP 561 py.typed marker so type checkers such as Pylance, Pyright, and mypy can understand the package.

Deprecation Policy

Backend SDK APIs should be deprecated before they are removed. When an API is being replaced, the OmniPlayr server should keep a compatibility wrapper with metadata at the top of the docstring:

def old_helper() -> None:
    """@deprecated=true
    Use `new_helper` instead.
    """

The SDK generator records the first backend version where the marker appears in backend/deprecations.json, then renders the SDK docstring as a normal deprecation notice. You can also pin the version manually:

def old_helper() -> None:
    """@deprecated=true
    @deprecated_since=2026.7.2
    Use `new_helper` instead.
    """

Deprecated APIs remain exported by this SDK for at least one year. They are only removed during an annual major compatibility cleanup, so plugin authors have a full yearly release window to migrate.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omniplayr_plugins-2026.7.0.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omniplayr_plugins-2026.7.0-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file omniplayr_plugins-2026.7.0.tar.gz.

File metadata

  • Download URL: omniplayr_plugins-2026.7.0.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omniplayr_plugins-2026.7.0.tar.gz
Algorithm Hash digest
SHA256 14f07e44bacba20157084df8f2f542a7213f88e8322646e91b30a866e379fddf
MD5 b362a697459ddd6f45b3fc1df1dd8dc7
BLAKE2b-256 dda8259caaa4e1879f419502ebaf4f531cd18d21c8f0db519967fd0917705162

See more details on using hashes here.

Provenance

The following attestation bundles were made for omniplayr_plugins-2026.7.0.tar.gz:

Publisher: publish-backend.yml on OmniPlayr/OmniPlayr-plugin-SDK

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omniplayr_plugins-2026.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for omniplayr_plugins-2026.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6bebcd85daaf6f84278774e8e1b8a24b38de75c56bf7a9ea42eb70e7a37f5429
MD5 ebc001781a3737e4c34670608eee199a
BLAKE2b-256 bbb9367eb4625f3bd5fb9d052fe5149f8a81d525a48da54ba4fda11b4a030200

See more details on using hashes here.

Provenance

The following attestation bundles were made for omniplayr_plugins-2026.7.0-py3-none-any.whl:

Publisher: publish-backend.yml on OmniPlayr/OmniPlayr-plugin-SDK

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page