Skip to content

Quick Start

# Start the server (no authentication)
unshackle serve --no-key

# Start with authentication (api_secret in unshackle.yaml)
unshackle serve

# Serve only the REST API (no pywidevine/pyplayready CDM)
unshackle serve --api-only

# Serve only the remote-dl session endpoints (CORS/Cloudflare friendly)
unshackle serve --remote-only

# Disable just one CDM
unshackle serve --no-widevine
unshackle serve --no-playready

# Verbose error responses (tracebacks/stderr in JSON)
unshackle serve --debug-api

serve flags:

Flag Description
-h, --host Bind host (default 127.0.0.1)
-p, --port Bind port (default 8786)
--caddy Also launch Caddy using Caddyfile next to the unshackle config
--api-only REST API only; skip the bundled pywidevine/pyplayready CDM endpoints
--no-widevine Disable Widevine CDM endpoints
--no-playready Disable PlayReady CDM endpoints
--no-key Disable API key authentication entirely
--debug-api Include tracebacks/stderr in error responses
--debug Enable DEBUG-level logging for API operations
--remote-only Expose only /api/health, /api/services, /api/search, and /api/session/* (implies --api-only)