Deployed 8b10b79 with MkDocs version: 1.6.1

This commit is contained in:
2026-08-20 03:01:15 +00:00
parent 01248725da
commit 94f2b09ef6
40 changed files with 1967 additions and 1920 deletions
+34 -34
View File
@@ -582,10 +582,10 @@
</li>
<li class="md-nav__item">
<a href="#python-version-support" class="md-nav__link">
<a href="#python-versions" class="md-nav__link">
<span class="md-ellipsis">
Python version support
Python versions
</span>
</a>
@@ -672,10 +672,10 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#confirm-the-command-is-available" class="md-nav__link">
<a href="#make-sure-the-command-is-available" class="md-nav__link">
<span class="md-ellipsis">
Confirm the command is available
Make sure the command is available
</span>
</a>
@@ -683,10 +683,10 @@
</li>
<li class="md-nav__item">
<a href="#check-external-dependencies" class="md-nav__link">
<a href="#examine-the-external-dependencies" class="md-nav__link">
<span class="md-ellipsis">
Check external dependencies
Examine the external dependencies
</span>
</a>
@@ -2094,10 +2094,10 @@
</li>
<li class="md-nav__item">
<a href="#python-version-support" class="md-nav__link">
<a href="#python-versions" class="md-nav__link">
<span class="md-ellipsis">
Python version support
Python versions
</span>
</a>
@@ -2184,10 +2184,10 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#confirm-the-command-is-available" class="md-nav__link">
<a href="#make-sure-the-command-is-available" class="md-nav__link">
<span class="md-ellipsis">
Confirm the command is available
Make sure the command is available
</span>
</a>
@@ -2195,10 +2195,10 @@
</li>
<li class="md-nav__item">
<a href="#check-external-dependencies" class="md-nav__link">
<a href="#examine-the-external-dependencies" class="md-nav__link">
<span class="md-ellipsis">
Check external dependencies
Examine the external dependencies
</span>
</a>
@@ -2316,15 +2316,15 @@ provisioning, the REST server, and the helper utilities.</p>
</tr>
</tbody>
</table>
<p>The sections below explain each of these and how to confirm your setup is
complete.</p>
<h2 id="python-version-support">Python version support<a class="headerlink" href="#python-version-support" title="Permanent link">&para;</a></h2>
<p>The sections below tell you about each of these, and how to make sure that your
setup is complete.</p>
<h2 id="python-versions">Python versions<a class="headerlink" href="#python-versions" title="Permanent link">&para;</a></h2>
<p>unshackle requires <strong>Python 3.11 or newer, up to and including 3.14</strong>
(<code>requires-python = "&gt;=3.11,&lt;3.15"</code>). Anything older than 3.11 or 3.15 and
later is unsupported and the installer will refuse to build the environment.</p>
later is unsupported, and the installer refuses to assemble the environment.</p>
<p>You do not usually need to install a matching Python interpreter by hand, since
<code>uv</code> can download and manage one for you. If you are working inside an existing
virtual environment, make sure it is on a supported version.</p>
<code>uv</code> can download and manage one for you. If you work inside an existing
virtual environment, make sure that it is on a supported version.</p>
<h2 id="installing-with-uv">Installing with uv<a class="headerlink" href="#installing-with-uv" title="Permanent link">&para;</a></h2>
<p>The recommended way to install unshackle is as a <code>uv</code> tool. This creates an
isolated environment for the package and puts the <code>unshackle</code> command on your
@@ -2336,28 +2336,28 @@ isolated environment for the package and puts the <code>unshackle</code> command
</span></code></pre></div>
<div class="admonition tip">
<p class="admonition-title">Upgrading and removing</p>
<p>Because it is installed from a git URL, re-run the same
<code>uv tool install</code> command (uv will update in place) to pull a newer build,
<p>Because you installed it from a git URL, re-run the same
<code>uv tool install</code> command (uv will update in place) to get a newer version,
and use <code>uv tool uninstall unshackle</code> to remove it.</p>
</div>
<h3 id="running-from-a-clone">Running from a clone<a class="headerlink" href="#running-from-a-clone" title="Permanent link">&para;</a></h3>
<p>If you would rather work from a checkout of the repository (for example to try
an in-development branch or to keep local service code alongside unshackle), use
an in-development branch or to keep your own local services alongside unshackle), use
<code>uv run</code> inside the clone. This keeps the project's virtual environment active
for the duration of the command, so you do not have to activate it yourself.</p>
<div class="language-shell highlight"><span class="filename">Run from a git clone</span><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/unshackle-dl/unshackle.git
</span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="nb">cd</span><span class="w"> </span>unshackle
</span><span id="__span-2-3"><a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>uv<span class="w"> </span>run<span class="w"> </span>unshackle<span class="w"> </span>--help
</span></code></pre></div>
<p>Every command shown elsewhere in these docs works the same way from a clone,
just prefix it with <code>uv run</code>:</p>
<p>Every command shown elsewhere in these docs works the same way from a clone.
Prefix it with <code>uv run</code>:</p>
<div class="language-shell highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>uv<span class="w"> </span>run<span class="w"> </span>unshackle<span class="w"> </span>env<span class="w"> </span>check
</span></code></pre></div>
<div class="admonition note">
<p class="admonition-title">Developer note</p>
<p>Contributors will also want the development and test dependency groups. The
project defines <code>dev</code> (linters, type checkers) and <code>test</code> (pytest and
friends) groups in <code>pyproject.toml</code>; install them with
friends) groups in <code>pyproject.toml</code>. Install them with
<code>uv sync --group dev --group test</code> inside the clone. End users can ignore
these entirely.</p>
</div>
@@ -2381,7 +2381,7 @@ work.</p>
<tr>
<td>FFmpeg</td>
<td><code>ffmpeg</code></td>
<td>Media processing: remuxing, conversion, stream handling</td>
<td>Media processing: remuxing, conversion, track handling</td>
</tr>
<tr>
<td>FFprobe</td>
@@ -2410,11 +2410,11 @@ work.</p>
<p>unshackle decrypts with shaka-packager unless you explicitly configure a
different decryptor. If it is missing, protected downloads will fail at the
decryption step. See the <a href="../../reference/configuration/drm/#decryption">configuration reference</a> for the
<code>decryption</code> key if you want to switch to <code>mp4decrypt</code>.</p>
<code>decryption</code> config key if you want to switch to <code>mp4decrypt</code>.</p>
</div>
<h3 id="recommended-and-optional-tools">Recommended and optional tools<a class="headerlink" href="#recommended-and-optional-tools" title="Permanent link">&para;</a></h3>
<p>These extend unshackle's capabilities. Install the ones relevant to what you
download. For example, <code>dovi_tool</code> only matters if you handle Dolby Vision.</p>
download. For example, <code>dovi_tool</code> only matters if you download Dolby Vision video.</p>
<table>
<thead>
<tr>
@@ -2489,16 +2489,16 @@ SubtitleEdit 5.x, before falling back to a <code>SubtitleEdit</code> (4.x) binar
automated subtitle conversion.</p>
</div>
<h2 id="verifying-your-installation">Verifying your installation<a class="headerlink" href="#verifying-your-installation" title="Permanent link">&para;</a></h2>
<p>After installing, confirm the command runs and that unshackle can see the tools
it depends on.</p>
<h3 id="confirm-the-command-is-available">Confirm the command is available<a class="headerlink" href="#confirm-the-command-is-available" title="Permanent link">&para;</a></h3>
<p>After installation, make sure that the command works and that unshackle can see
the tools it depends on.</p>
<h3 id="make-sure-the-command-is-available">Make sure the command is available<a class="headerlink" href="#make-sure-the-command-is-available" title="Permanent link">&para;</a></h3>
<div class="language-shell highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>unshackle<span class="w"> </span>--help
</span></code></pre></div>
<p>This prints the list of available commands (<code>dl</code>, <code>env</code>, <code>kv</code>,
<code>serve</code>, <code>wvd</code>, <code>prd</code>, <code>search</code>, <code>util</code>, <code>cfg</code>, <code>import</code>). If your shell reports
that <code>unshackle</code> is not found, the <code>uv tool</code> bin directory is probably not on
your <code>PATH</code>. Run <code>uv tool update-shell</code> and open a new terminal.</p>
<h3 id="check-external-dependencies">Check external dependencies<a class="headerlink" href="#check-external-dependencies" title="Permanent link">&para;</a></h3>
your <code>PATH</code>. Operate <code>uv tool update-shell</code> and open a new terminal.</p>
<h3 id="examine-the-external-dependencies">Examine the external dependencies<a class="headerlink" href="#examine-the-external-dependencies" title="Permanent link">&para;</a></h3>
<p>The <code>env check</code> subcommand inspects your environment and reports which tools it
found:</p>
<div class="language-shell highlight"><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>unshackle<span class="w"> </span>env<span class="w"> </span>check
@@ -2525,12 +2525,12 @@ downloads, caches, cookies, and devices, use:</p>
<div class="language-shell highlight"><pre><span></span><code><span id="__span-7-1"><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>unshackle<span class="w"> </span>env<span class="w"> </span>info
</span></code></pre></div>
<p>If no configuration file exists yet, this command lists the locations unshackle
searches for one, so you know where to create it. See the
searches for one, so you know where to make it. See the
<a href="../configuration-file/">configuration guide</a> for the details of that file.</p>
<h2 id="next-steps">Next steps<a class="headerlink" href="#next-steps" title="Permanent link">&para;</a></h2>
<ul>
<li>Set up your <a href="../configuration-file/">configuration</a> file (<code>unshackle.yaml</code>).</li>
<li>Start <a href="../../guide/downloading/">downloading</a> content once your tools check out.</li>
<li>Start <a href="../../guide/downloading/">downloading</a> titles when <code>env check</code> finds every required tool.</li>
</ul>