mirror of
https://github.com/bybrooklyn/alchemist.git
synced 2026-04-18 09:53:33 -04:00
93 lines
45 KiB
HTML
93 lines
45 KiB
HTML
<!DOCTYPE html><html lang="en" dir="ltr" data-has-toc data-has-sidebar class="astro-bguv2lll"> <head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>API Reference | Alchemist Docs</title><link rel="canonical"/><link rel="shortcut icon" href="/alchemist-docs/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v4.16.19"/><meta name="generator" content="Starlight v0.15.4"/><meta property="og:title" content="API Reference"/><meta property="og:type" content="article"/><meta property="og:url"/><meta property="og:locale" content="en"/><meta property="og:description" content="Detailed reference for the Alchemist REST API."/><meta property="og:site_name" content="Alchemist Docs"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="API Reference"/><meta name="twitter:description" content="Detailed reference for the Alchemist REST API."/><meta name="description" content="Detailed reference for the Alchemist REST API."/><script>
|
||
window.StarlightThemeProvider = (() => {
|
||
const storedTheme =
|
||
typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
|
||
const theme =
|
||
storedTheme ||
|
||
(window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark');
|
||
document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark';
|
||
return {
|
||
updatePickers(theme = storedTheme || 'auto') {
|
||
document.querySelectorAll('starlight-theme-select').forEach((picker) => {
|
||
const select = picker.querySelector('select');
|
||
if (select) select.value = theme;
|
||
/** @type {HTMLTemplateElement | null} */
|
||
const tmpl = document.querySelector(`#theme-icons`);
|
||
const newIcon = tmpl && tmpl.content.querySelector('.' + theme);
|
||
if (newIcon) {
|
||
const oldIcon = picker.querySelector('svg.label-icon');
|
||
if (oldIcon) {
|
||
oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes);
|
||
}
|
||
}
|
||
});
|
||
},
|
||
};
|
||
})();
|
||
</script><template id="theme-icons"><svg aria-hidden="true" class="light astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg> <svg aria-hidden="true" class="dark astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg> <svg aria-hidden="true" class="auto astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> </template><link rel="stylesheet" href="/alchemist-docs/_astro/index.BIxt-62t.css">
|
||
<style>svg:where(.astro-c6vsoqas){color:var(--sl-icon-color);font-size:var(--sl-icon-size, 1em);width:1em;height:1em}
|
||
</style><script type="module" src="/alchemist-docs/_astro/hoisted.CL2tWdHW.js"></script>
|
||
<script type="module" src="/alchemist-docs/_astro/page.7qqag-5g.js"></script></head> <body class="astro-bguv2lll"> <a href="#_top" class="astro-7q3lir66">Skip to content</a> <div class="page sl-flex astro-vrdttmbt"> <header class="header astro-vrdttmbt"><div class="header sl-flex astro-kmkmnagf"> <div class="sl-flex astro-kmkmnagf"> <a href="/alchemist-docs/" class="site-title sl-flex astro-m46x6ez3"> <span class="astro-m46x6ez3"> Alchemist Docs </span> </a> </div> <div class="sl-flex astro-kmkmnagf"> <site-search data-translations="{"placeholder":"Search"}" class="astro-v37mnknz"> <button data-open-modal disabled class="astro-v37mnknz"> <svg aria-label="Search" class="astro-v37mnknz astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg> <span class="sl-hidden md:sl-block astro-v37mnknz" aria-hidden="true">Search</span> <svg aria-label="(Press / to Search)" class="sl-hidden md:sl-block astro-v37mnknz astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 2H7a5 5 0 0 0-5 5v10a5 5 0 0 0 5 5h10a5 5 0 0 0 5-5V7a5 5 0 0 0-5-5Zm3 15a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v10Z"/><path d="M15.293 6.707a1 1 0 1 1 1.414 1.414l-8.485 8.486a1 1 0 0 1-1.414-1.415l8.485-8.485Z"/></svg> </button> <dialog style="padding:0" aria-label="Search" class="astro-v37mnknz"> <div class="dialog-frame sl-flex astro-v37mnknz"> <button data-close-modal class="sl-flex md:sl-hidden astro-v37mnknz"> Cancel </button> <div class="search-container astro-v37mnknz"> <div id="starlight__search" class="astro-v37mnknz"></div> </div> </div> </dialog> </site-search> </div> <div class="sl-hidden md:sl-flex right-group astro-kmkmnagf"> <div class="sl-flex social-icons astro-kmkmnagf"> <a href="https://github.com/alchemist-project/alchemist" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">GitHub</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg> </a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-4yphtoen"> <span class="sr-only astro-4yphtoen">Select theme</span> <svg aria-hidden="true" class="icon label-icon astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select value="auto" class="astro-4yphtoen"> <option value="dark" class="astro-4yphtoen">Dark</option><option value="light" class="astro-4yphtoen">Light</option><option value="auto" selected class="astro-4yphtoen">Auto</option> </select> <svg aria-hidden="true" class="icon caret astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script>
|
||
StarlightThemeProvider.updatePickers();
|
||
</script> </div> </div> </header> <nav class="sidebar astro-vrdttmbt" aria-label="Main"> <starlight-menu-button class="astro-jif73yzw"> <button aria-expanded="false" aria-label="Menu" aria-controls="starlight__sidebar" class="sl-flex md:sl-hidden astro-jif73yzw"> <svg aria-hidden="true" class="astro-jif73yzw astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg> </button> </starlight-menu-button> <div id="starlight__sidebar" class="sidebar-pane astro-vrdttmbt"> <div class="sidebar-content sl-flex astro-vrdttmbt"> <ul class="top-level astro-3ii7xxms"> <li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Getting Started</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/alchemist-docs/getting-started/installation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Installation</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/getting-started/first-run/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">First Run</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/getting-started/quick-start/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Quick Start</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Guides</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/docker/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Docker</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/hardware/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Hardware Support</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/gpu-passthrough/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">GPU Passthrough</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/web-interface/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Web Interface</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/library-setup/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Library Setup</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/profiles/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Profiles</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/stream-rules/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Streaming Rules</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/scheduling/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Scheduling</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/notifications/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Notifications</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/library-doctor/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Library Doctor</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Reference</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/configuration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Configuration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/api/" aria-current="page" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">API Reference</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/database/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Database Schema</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/architecture/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Architecture</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/codecs/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Codecs</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/hardware-support/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Hardware Vendors</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/faq/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">FAQ</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/troubleshooting/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Troubleshooting</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/changelog/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Changelog</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Contributing</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/alchemist-docs/contributing/overview/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/contributing/development/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Development</span> </a> </li> </ul> </details> </li> </ul> <div class="md:sl-hidden"> <div class="mobile-preferences sl-flex astro-wu23bvmt"> <div class="sl-flex social-icons astro-wu23bvmt"> <a href="https://github.com/alchemist-project/alchemist" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">GitHub</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg> </a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-4yphtoen"> <span class="sr-only astro-4yphtoen">Select theme</span> <svg aria-hidden="true" class="icon label-icon astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select value="auto" class="astro-4yphtoen"> <option value="dark" class="astro-4yphtoen">Dark</option><option value="light" class="astro-4yphtoen">Light</option><option value="auto" selected class="astro-4yphtoen">Auto</option> </select> <svg aria-hidden="true" class="icon caret astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script>
|
||
StarlightThemeProvider.updatePickers();
|
||
</script> </div> </div> </div> </div> </nav> <div class="main-frame astro-vrdttmbt"> <div class="lg:sl-flex astro-67yu43on"> <aside class="right-sidebar-container astro-67yu43on"> <div class="right-sidebar astro-67yu43on"> <div class="lg:sl-hidden astro-pb3aqygn"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-doynk5tl"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-doynk5tl"><details id="starlight__mobile-toc" class="astro-doynk5tl"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-doynk5tl"><div class="toggle sl-flex astro-doynk5tl">On this page<svg aria-hidden="true" class="caret astro-doynk5tl astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </div><span class="display-current astro-doynk5tl"></span></summary><div class="dropdown astro-doynk5tl"><ul class="isMobile astro-g2bywc46" style="--depth: 0;"> <li class="astro-g2bywc46" style="--depth: 0;"> <a href="#_top" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Overview</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#authentication" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Authentication</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#jobs" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Jobs</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#statistics" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Statistics</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#engine-control" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Engine Control</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#settings" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Settings</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#server-sent-events" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Server-Sent Events</span> </a> </li> </ul> </div></details></nav></mobile-starlight-toc></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-pb3aqygn"><div class="sl-container astro-pb3aqygn"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-g2bywc46" style="--depth: 0;"> <li class="astro-g2bywc46" style="--depth: 0;"> <a href="#_top" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Overview</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#authentication" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Authentication</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#jobs" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Jobs</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#statistics" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Statistics</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#engine-control" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Engine Control</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#settings" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Settings</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#server-sent-events" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Server-Sent Events</span> </a> </li> </ul> </nav></starlight-toc></div></div> </div> </aside> <div class="main-pane astro-67yu43on"> <main data-pagefind-body lang="en" dir="ltr" class="astro-bguv2lll"> <div class="content-panel astro-7nkwcw3z"> <div class="sl-container astro-7nkwcw3z"> <h1 id="_top" class="astro-j6tvhyss">API Reference</h1> </div> </div> <div class="content-panel astro-7nkwcw3z"> <div class="sl-container astro-7nkwcw3z"> <div class="sl-markdown-content"> <p>All API endpoints require authentication via Bearer token, except for:</p>
|
||
<ul>
|
||
<li><code dir="auto">/api/setup/*</code> - Setup wizard endpoints</li>
|
||
<li><code dir="auto">/api/auth/login</code> - Login endpoint</li>
|
||
<li><code dir="auto">/api/health</code> - Health check (returns status, version, uptime)</li>
|
||
<li><code dir="auto">/api/ready</code> - Readiness check (returns database status)</li>
|
||
</ul>
|
||
<p>Most browser clients use the session cookie returned by <code dir="auto">/api/auth/login</code>.
|
||
Bearer auth is still accepted by the backend, but the web UI authenticates with the session cookie automatically.</p>
|
||
<h2 id="authentication">Authentication</h2>
|
||
<p>To use the API, you first need to log in to get a token.</p>
|
||
<div class="expressive-code"><link rel="stylesheet" href="/alchemist-docs/_astro/ec.usa2f.css"/><script type="module" src="/alchemist-docs/_astro/ec.sgewm.js"></script><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Login</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/auth/login</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">Content-Type:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">application/json</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">{</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"username"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">admin</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"password"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">secret</span><span style="--0:#D9F5DD;--1:#111111">"</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">}</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Response: 200 OK + Set-Cookie: alchemist_session=...</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="POST /api/auth/loginContent-Type: application/json{ "username": "admin", "password": "secret"}"><div></div></button></div></figure></div>
|
||
<h2 id="jobs">Jobs</h2>
|
||
<p>Endpoints for managing transcoding jobs.</p>
|
||
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Get all jobs (canonical endpoint)</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Legacy alias</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs/table</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Get job stats</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/stats</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Cancel job</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs/:id/cancel</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Restart job</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs/:id/restart</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Restart all failed</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs/restart-failed</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Clear completed</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs/clear-completed</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="GET /api/jobsGET /api/jobs/tableGET /api/statsPOST /api/jobs/:id/cancelPOST /api/jobs/:id/restartPOST /api/jobs/restart-failedPOST /api/jobs/clear-completed"><div></div></button></div></figure></div>
|
||
<h2 id="statistics">Statistics</h2>
|
||
<p>Endpoints for retrieving performance and space savings data.</p>
|
||
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Aggregated stats (totals)</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/stats/aggregated</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Response: {total_input_bytes, total_output_bytes, total_savings_bytes,</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># total_time_seconds, total_jobs, avg_vmaf}</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Daily stats (last 30 days)</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/stats/daily</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Response: [{date, jobs_completed, bytes_saved, total_input_bytes,</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># total_output_bytes}, ...]</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Detailed per-job stats</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/stats/detailed</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Response: [{job_id, input_path, input_size_bytes, output_size_bytes,</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># compression_ratio, encode_time_seconds, encode_speed,</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># avg_bitrate_kbps, vmaf_score, created_at}, ...]</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="GET /api/stats/aggregatedGET /api/stats/dailyGET /api/stats/detailed"><div></div></button></div></figure></div>
|
||
<h2 id="engine-control">Engine Control</h2>
|
||
<p>Endpoints for controlling the background processing engine.</p>
|
||
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Pause processing</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/pause</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Resume processing</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/resume</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Drain processing (finish active jobs, stop starting new ones)</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/drain</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Cancel drain and resume normal scheduling</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/stop-drain</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Get engine status</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/status</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Inspect engine mode and computed concurrency limits</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/mode</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Set engine mode and optional overrides</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/mode</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">Content-Type:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">application/json</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">{</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"mode"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">balanced</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"concurrent_jobs_override"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">2</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"threads_override"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">0</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">}</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="POST /api/engine/pausePOST /api/engine/resumePOST /api/engine/drainPOST /api/engine/stop-drainGET /api/engine/statusGET /api/engine/modePOST /api/engine/modeContent-Type: application/json{ "mode": "balanced", "concurrent_jobs_override": 2, "threads_override": 0}"><div></div></button></div></figure></div>
|
||
<p><code dir="auto">/api/engine/status</code> now returns richer runtime state including:</p>
|
||
<ul>
|
||
<li><code dir="auto">status</code>: <code dir="auto">running</code>, <code dir="auto">paused</code>, or <code dir="auto">draining</code></li>
|
||
<li><code dir="auto">manual_paused</code></li>
|
||
<li><code dir="auto">scheduler_paused</code></li>
|
||
<li><code dir="auto">draining</code></li>
|
||
<li><code dir="auto">mode</code></li>
|
||
<li><code dir="auto">concurrent_limit</code></li>
|
||
<li><code dir="auto">is_manual_override</code></li>
|
||
</ul>
|
||
<h2 id="settings">Settings</h2>
|
||
<p>Endpoints for managing application configuration.</p>
|
||
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Get transcode settings</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/settings/transcode</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Update transcode settings</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/settings/transcode</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">Content-Type:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">application/json</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">{</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"concurrent_jobs"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">2</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"size_reduction_threshold"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">0.3</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"min_bpp_threshold"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">0.1</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"min_file_size_mb"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">50</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"output_codec"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">av1</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"allow_fallback"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--1:#3B61B0"><span style="--0:#82AAFF">true</span><span style="--0:#ECC48D">,</span></span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"quality_profile"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">balanced</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"threads"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">0</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"hdr_mode"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">preserve</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"tonemap_algorithm"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">hable</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"tonemap_peak"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">100</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">"tonemap_desat"</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">0.2</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">}</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="GET /api/settings/transcodePOST /api/settings/transcodeContent-Type: application/json{ "concurrent_jobs": 2, "size_reduction_threshold": 0.3, "min_bpp_threshold": 0.1, "min_file_size_mb": 50, "output_codec": "av1", "allow_fallback": true, "quality_profile": "balanced", "threads": 0, "hdr_mode": "preserve", "tonemap_algorithm": "hable", "tonemap_peak": 100, "tonemap_desat": 0.2}"><div></div></button></div></figure></div>
|
||
<p>Additional operational endpoints worth knowing:</p>
|
||
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Runtime hardware details</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/system/hardware</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Hardware probe log</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/system/hardware/probe-log</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Library health overview</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/library/health</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Start a library health scan</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/library/health/scan</span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># List detected health issues</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/library/health/issues</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="GET /api/system/hardwareGET /api/system/hardware/probe-logGET /api/library/healthPOST /api/library/health/scanGET /api/library/health/issues"><div></div></button></div></figure></div>
|
||
<h2 id="server-sent-events">Server-Sent Events</h2>
|
||
<p>Real-time updates are provided via a Server-Sent Events (SSE) stream.</p>
|
||
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Real-time event stream</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/events?token=<auth_token></span></div><div class="ec-line">
|
||
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Event types:</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># - JobStateChanged: {job_id, status}</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># - Progress: {job_id, percentage, time}</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># - Decision: {job_id, action, reason}</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># - Log: {job_id, message}</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="GET /api/events?token=<auth_token>"><div></div></button></div></figure></div> </div> <footer class="astro-3yyafb3n"> <div class="meta sl-flex astro-3yyafb3n"> </div> <div class="pagination-links astro-u2l5gyhi" dir="ltr"> <a href="/alchemist-docs/reference/configuration/" rel="prev" class="astro-u2l5gyhi"> <svg aria-hidden="true" class="astro-u2l5gyhi astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg> <span class="astro-u2l5gyhi"> Previous <br class="astro-u2l5gyhi"> <span class="link-title astro-u2l5gyhi">Configuration</span> </span> </a> <a href="/alchemist-docs/reference/database/" rel="next" class="astro-u2l5gyhi"> <svg aria-hidden="true" class="astro-u2l5gyhi astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg> <span class="astro-u2l5gyhi"> Next <br class="astro-u2l5gyhi"> <span class="link-title astro-u2l5gyhi">Database Schema</span> </span> </a> </div> </footer> </div> </div> </main> </div> </div> </div> </div> </body></html> |