Deployed 3477d09 with MkDocs version: 1.6.1

This commit is contained in:
2026-10-06 18:47:00 +00:00
parent fb371274d9
commit a9485266ec
9 changed files with 154 additions and 81 deletions
+12
View File
@@ -3866,6 +3866,12 @@ ignore it safely. See <a href="../../creating-a-service/#split-episodes">Split e
<td>Include forced subtitles.</td> <td>Include forced subtitles.</td>
</tr> </tr>
<tr> <tr>
<td><code>forced_subs_only</code></td>
<td>boolean</td>
<td><code>false</code></td>
<td>Download forced subtitles and no other subtitle; implies <code>forced_subs</code>. Not valid with <code>no_subs</code>, <code>video_only</code>, <code>audio_only</code> or <code>chapters_only</code>.</td>
</tr>
<tr>
<td><code>forced_s_lang</code></td> <td><code>forced_s_lang</code></td>
<td>string[]</td> <td>string[]</td>
<td><code>[]</code></td> <td><code>[]</code></td>
@@ -3902,6 +3908,12 @@ ignore it safely. See <a href="../../creating-a-service/#split-episodes">Split e
<td>Download audio description.</td> <td>Download audio description.</td>
</tr> </tr>
<tr> <tr>
<td><code>audio_description_only</code></td>
<td>boolean</td>
<td><code>false</code></td>
<td>Download audio description and no standard audio. Not valid with <code>no_audio</code>, <code>video_only</code>, <code>subs_only</code> or <code>chapters_only</code>.</td>
</tr>
<tr>
<td><code>slow</code></td> <td><code>slow</code></td>
<td>boolean/string</td> <td>boolean/string</td>
<td><code>null</code></td> <td><code>null</code></td>
+3 -2
View File
@@ -2905,8 +2905,9 @@ the <code>dl</code> default for each absent or malformed value: <code>lang</code
server drops an unknown codec name. An empty array is a valid value and stays server drops an unknown codec name. An empty array is a valid value and stays
empty.</p> empty.</p>
<p>The server does not forward the <code>dl</code> mode flags: <code>video_only</code>, <code>audio_only</code>, <p>The server does not forward the <code>dl</code> mode flags: <code>video_only</code>, <code>audio_only</code>,
<code>subs_only</code>, <code>chapters_only</code>, <code>list_</code>, <code>skip_dl</code>, <code>sub_format</code> and <code>subs_only</code>, <code>chapters_only</code>, <code>list_</code>, <code>skip_dl</code>, <code>sub_format</code>,
<code>no_attachments</code>. A service that reads one of them to skip work fetches more on <code>no_attachments</code>, <code>audio_description</code>, <code>audio_description_only</code> and
<code>forced_subs_only</code>. A service that reads one of them to skip work fetches more on
the server, but the result is the same.</p> the server, but the result is the same.</p>
<p>In a client-login session (not a server account), the server gives the service <p>In a client-login session (not a server account), the server gives the service
the client's <code>profile</code> in <code>ctx.parent.params</code>, the same as a local run with that the client's <code>profile</code> in <code>ctx.parent.params</code>, the same as a local run with that
+9
View File
@@ -3134,6 +3134,11 @@
<td>Include forced subtitle tracks.</td> <td>Include forced subtitle tracks.</td>
</tr> </tr>
<tr> <tr>
<td><code>-fso</code>, <code>--forced-subs-only</code></td>
<td>off</td>
<td>Keep only forced subtitle tracks; drop the other subtitles. Implies <code>-fs</code>.</td>
</tr>
<tr>
<td><code>-fsl</code>, <code>--forced-s-lang</code></td> <td><code>-fsl</code>, <code>--forced-s-lang</code></td>
<td>none</td> <td>none</td>
<td>Language(s) wanted for forced subtitles; implies <code>-fs</code>. A <code>-</code> prefix excludes.</td> <td>Language(s) wanted for forced subtitles; implies <code>-fs</code>. A <code>-</code> prefix excludes.</td>
@@ -3234,6 +3239,10 @@ configuration file.</p>
<td>Include descriptive (audio-description) tracks.</td> <td>Include descriptive (audio-description) tracks.</td>
</tr> </tr>
<tr> <tr>
<td><code>-ado</code>, <code>--audio-description-only</code></td>
<td>Keep only descriptive (audio-description) tracks; drop the standard audio. Does not need <code>-ad</code>.</td>
</tr>
<tr>
<td><code>--skip-subtitle-errors</code></td> <td><code>--skip-subtitle-errors</code></td>
<td>Skip a failed subtitle instead of aborting the title. Video/audio failures remain fatal.</td> <td>Skip a failed subtitle instead of aborting the title. Video/audio failures remain fatal.</td>
</tr> </tr>
+41 -19
View File
@@ -3549,6 +3549,8 @@ video track counts. <code>--no-audio</code> and <code>--no-video</code> drop the
<code>-fs</code>). Works independently of <code>--s-lang</code>, so <code>-sl all -fsl en</code> grabs every full <code>-fs</code>). Works independently of <code>--s-lang</code>, so <code>-sl all -fsl en</code> grabs every full
subtitle but only the English forced track. It accepts exclusions too: <code>-fsl all,-es</code> subtitle but only the English forced track. It accepts exclusions too: <code>-fsl all,-es</code>
keeps every forced subtitle except the Spanish one, and <code>-fsl -es</code> means the same.</li> keeps every forced subtitle except the Spanish one, and <code>-fsl -es</code> means the same.</li>
<li><code>-fso</code> / <code>--forced-subs-only</code>: keep only the forced subtitle tracks and drop every
other subtitle (implies <code>-fs</code>). <code>--s-lang</code> and <code>-fsl</code> still select the languages.</li>
<li><code>--sub-format</code>: set the output subtitle format, converting only when necessary. <li><code>--sub-format</code>: set the output subtitle format, converting only when necessary.
Accepts codec names/values and common aliases (<code>srt</code>, <code>vtt</code>, <code>ass</code>, <code>ssa</code>, <code>ttml</code>, Accepts codec names/values and common aliases (<code>srt</code>, <code>vtt</code>, <code>ass</code>, <code>ssa</code>, <code>ttml</code>,
and the other codec aliases), or the literal <code>original</code> to keep the source format.</li> and the other codec aliases), or the literal <code>original</code> to keep the source format.</li>
@@ -3803,12 +3805,32 @@ or negatively (everything but these).</p>
<ul> <ul>
<li><code>-ad</code> / <code>--audio-description</code>: include descriptive (audio-description) tracks, which <li><code>-ad</code> / <code>--audio-description</code>: include descriptive (audio-description) tracks, which
unshackle drops by default.</li> unshackle drops by default.</li>
<li><code>-ado</code> / <code>--audio-description-only</code>: keep only the descriptive tracks and drop the
standard audio. It does not need <code>-ad</code>. Add <code>-A</code> to download no video or subtitles.</li>
<li><code>--skip-subtitle-errors</code>: if a subtitle fails to download, skip it and continue rather <li><code>--skip-subtitle-errors</code>: if a subtitle fails to download, skip it and continue rather
than aborting the whole title. Video and audio failures remain fatal.</li> than aborting the whole title. Video and audio failures remain fatal.</li>
</ul> </ul>
<div class="language-shell highlight"><span class="filename">Subtitles only</span><pre><span></span><code><span id="__span-33-1"><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>-S<span class="w"> </span>-sl<span class="w"> </span>en<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="admonition note">
<p class="admonition-title">The <code>-only</code> kind flags</p>
<p><code>-ado</code> and <code>-fso</code> each keep one kind of track inside its track type. They do not drop
the other track types: <code>-ado</code> still downloads the video, and <code>-fso</code> still downloads
video and audio. Add <code>-A</code> or <code>-S</code> for that.</p>
<ul>
<li>The language flags still apply. With the default <code>-l orig</code>, <code>-ado</code> fails when the
descriptive track is not in the original language. Select the language with <code>-al</code>.</li>
<li>A flag that drops the same tracks is an error, for example <code>-ado</code> with <code>--no-audio</code>
or <code>-fso</code> with <code>-A</code>.</li>
<li>A title with no track of that kind stops a run of one title. A run of more than one
title skips that title with a warning and continues.</li>
<li>unshackle reads the kind from the manifest or from the service. A track that
neither of them marks as descriptive or forced does not match.</li>
</ul>
</div>
<div class="language-shell highlight"><span class="filename">Audio description only, in English</span><pre><span></span><code><span id="__span-33-1"><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>-A<span class="w"> </span>-ado<span class="w"> </span>-al<span class="w"> </span>en<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<div class="language-shell highlight"><span class="filename">Everything except chapters</span><pre><span></span><code><span id="__span-34-1"><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>-nc<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Subtitles only</span><pre><span></span><code><span id="__span-34-1"><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>-S<span class="w"> </span>-sl<span class="w"> </span>en<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div>
<div class="language-shell highlight"><span class="filename">Everything except chapters</span><pre><span></span><code><span id="__span-35-1"><a id="__codelineno-35-1" name="__codelineno-35-1" href="#__codelineno-35-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>-nc<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<div class="admonition note"> <div class="admonition note">
<p class="admonition-title">Note</p> <p class="admonition-title">Note</p>
@@ -3844,7 +3866,7 @@ are always kept.</p>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<div class="language-shell highlight"><span class="filename">See the track selection without downloading</span><pre><span></span><code><span id="__span-35-1"><a id="__codelineno-35-1" name="__codelineno-35-1" href="#__codelineno-35-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>-q<span class="w"> </span><span class="m">1080</span><span class="w"> </span>-v<span class="w"> </span>H.265<span class="w"> </span>-r<span class="w"> </span>HDR10<span class="w"> </span>--list<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">See the track selection without downloading</span><pre><span></span><code><span id="__span-36-1"><a id="__codelineno-36-1" name="__codelineno-36-1" href="#__codelineno-36-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>-q<span class="w"> </span><span class="m">1080</span><span class="w"> </span>-v<span class="w"> </span>H.265<span class="w"> </span>-r<span class="w"> </span>HDR10<span class="w"> </span>--list<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<h2 id="output-and-muxing">Output and muxing<a class="headerlink" href="#output-and-muxing" title="Permanent link">&para;</a></h2> <h2 id="output-and-muxing">Output and muxing<a class="headerlink" href="#output-and-muxing" title="Permanent link">&para;</a></h2>
<h3 id="output-location-and-folders">Output location and folders<a class="headerlink" href="#output-location-and-folders" title="Permanent link">&para;</a></h3> <h3 id="output-location-and-folders">Output location and folders<a class="headerlink" href="#output-location-and-folders" title="Permanent link">&para;</a></h3>
@@ -3854,7 +3876,7 @@ are always kept.</p>
<li><code>--no-folder</code>: do not make a per-show folder for TV downloads.</li> <li><code>--no-folder</code>: do not make a per-show folder for TV downloads.</li>
<li><code>--no-source</code>: remove the service source tag from the filename and path.</li> <li><code>--no-source</code>: remove the service source tag from the filename and path.</li>
</ul> </ul>
<div class="language-shell highlight"><span class="filename">Send this download somewhere specific</span><pre><span></span><code><span id="__span-36-1"><a id="__codelineno-36-1" name="__codelineno-36-1" href="#__codelineno-36-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>-o<span class="w"> </span>~/Videos/incoming<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Send this download somewhere specific</span><pre><span></span><code><span id="__span-37-1"><a id="__codelineno-37-1" name="__codelineno-37-1" href="#__codelineno-37-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>-o<span class="w"> </span>~/Videos/incoming<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<h3 id="muxing-behaviour">Muxing behaviour<a class="headerlink" href="#muxing-behaviour" title="Permanent link">&para;</a></h3> <h3 id="muxing-behaviour">Muxing behaviour<a class="headerlink" href="#muxing-behaviour" title="Permanent link">&para;</a></h3>
<p>By default, <code>mkvmerge</code> muxes the tracks of a movie or an episode into a single Matroska <p>By default, <code>mkvmerge</code> muxes the tracks of a movie or an episode into a single Matroska
@@ -3896,11 +3918,11 @@ Read <a href="../output-and-naming/#music-output-files">Music output files</a>.<
metadata substituted into <code>{variable}</code> placeholders. It is repeatable, and it replaces the metadata substituted into <code>{variable}</code> placeholders. It is repeatable, and it replaces the
<code>post_scripts</code> config for that run. No <code>success</code> post-script operates under <code>--no-mux</code>, because <code>post_scripts</code> config for that run. No <code>success</code> post-script operates under <code>--no-mux</code>, because
that run writes no muxed output. A <code>failure</code> post-script still operates if the download fails.</p> that run writes no muxed output. A <code>failure</code> post-script still operates if the download fails.</p>
<div class="language-shell highlight"><span class="filename">Hand each finished file to an uploader</span><pre><span></span><code><span id="__span-37-1"><a id="__codelineno-37-1" name="__codelineno-37-1" href="#__codelineno-37-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--postscript<span class="w"> </span><span class="s2">"python /opt/upload.py {filepath} --service={service}"</span><span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Hand each finished file to an uploader</span><pre><span></span><code><span id="__span-38-1"><a id="__codelineno-38-1" name="__codelineno-38-1" href="#__codelineno-38-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--postscript<span class="w"> </span><span class="s2">"python /opt/upload.py {filepath} --service={service}"</span><span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<p><code>--no-postscript</code> operates the run with no post-script at all. It silences the <code>post_scripts</code> <p><code>--no-postscript</code> operates the run with no post-script at all. It silences the <code>post_scripts</code>
config and <code>--postscript</code> together, for every event and mode.</p> config and <code>--postscript</code> together, for every event and mode.</p>
<div class="language-shell highlight"><span class="filename">Skip the uploader for one run</span><pre><span></span><code><span id="__span-38-1"><a id="__codelineno-38-1" name="__codelineno-38-1" href="#__codelineno-38-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--no-postscript<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Skip the uploader for one run</span><pre><span></span><code><span id="__span-39-1"><a id="__codelineno-39-1" name="__codelineno-39-1" href="#__codelineno-39-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--no-postscript<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<p>For post-scripts that continue across runs, for the <code>season</code> and <code>run</code> modes, for <code>failure</code> <p>For post-scripts that continue across runs, for the <code>season</code> and <code>run</code> modes, for <code>failure</code>
post-scripts and for the full variable list, see post-scripts and for the full variable list, see
@@ -3910,16 +3932,16 @@ post-scripts and for the full variable list, see
<li><code>--tag</code>: set the release group tag (overrides the configured tag).</li> <li><code>--tag</code>: set the release group tag (overrides the configured tag).</li>
<li><code>--repack</code>: add a <code>REPACK</code> tag to the output filename.</li> <li><code>--repack</code>: add a <code>REPACK</code> tag to the output filename.</li>
</ul> </ul>
<div class="language-shell highlight"><span class="filename">Custom group tag and a REPACK label</span><pre><span></span><code><span id="__span-39-1"><a id="__codelineno-39-1" name="__codelineno-39-1" href="#__codelineno-39-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--tag<span class="w"> </span>MYGRP<span class="w"> </span>--repack<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Custom group tag and a REPACK label</span><pre><span></span><code><span id="__span-40-1"><a id="__codelineno-40-1" name="__codelineno-40-1" href="#__codelineno-40-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--tag<span class="w"> </span>MYGRP<span class="w"> </span>--repack<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<h2 id="proxies">Proxies<a class="headerlink" href="#proxies" title="Permanent link">&para;</a></h2> <h2 id="proxies">Proxies<a class="headerlink" href="#proxies" title="Permanent link">&para;</a></h2>
<p><code>--proxy</code> accepts a full proxy URI, a country or location code (resolved through your <p><code>--proxy</code> accepts a full proxy URI, a country or location code (resolved through your
configured proxy providers), or a <code>provider:region</code> form. See configured proxy providers), or a <code>provider:region</code> form. See
<a href="../proxies-and-vpn/#how-proxy-resolution-works">Proxies &amp; VPN</a> for the exact grammar.</p> <a href="../proxies-and-vpn/#how-proxy-resolution-works">Proxies &amp; VPN</a> for the exact grammar.</p>
<div class="language-shell highlight"><span class="filename">Proxy forms</span><pre><span></span><code><span id="__span-40-1"><a id="__codelineno-40-1" name="__codelineno-40-1" href="#__codelineno-40-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--proxy<span class="w"> </span>us<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Proxy forms</span><pre><span></span><code><span id="__span-41-1"><a id="__codelineno-41-1" name="__codelineno-41-1" href="#__codelineno-41-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--proxy<span class="w"> </span>us<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span><span id="__span-40-2"><a id="__codelineno-40-2" name="__codelineno-40-2" href="#__codelineno-40-2"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--proxy<span class="w"> </span>nordvpn:ca<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> </span><span id="__span-41-2"><a id="__codelineno-41-2" name="__codelineno-41-2" href="#__codelineno-41-2"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--proxy<span class="w"> </span>nordvpn:ca<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span><span id="__span-40-3"><a id="__codelineno-40-3" name="__codelineno-40-3" href="#__codelineno-40-3"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--proxy<span class="w"> </span>controld:yul<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> </span><span id="__span-41-3"><a id="__codelineno-41-3" name="__codelineno-41-3" href="#__codelineno-41-3"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--proxy<span class="w"> </span>controld:yul<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span><span id="__span-40-4"><a id="__codelineno-40-4" name="__codelineno-40-4" href="#__codelineno-40-4"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--proxy<span class="w"> </span><span class="s1">'http://user:pass@host:8080'</span><span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> </span><span id="__span-41-4"><a id="__codelineno-41-4" name="__codelineno-41-4" href="#__codelineno-41-4"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--proxy<span class="w"> </span><span class="s1">'http://user:pass@host:8080'</span><span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<p>Three related flags:</p> <p>Three related flags:</p>
<ul> <ul>
@@ -3974,9 +3996,9 @@ configured proxy providers), or a <code>provider:region</code> form. See
</tr> </tr>
</tbody> </tbody>
</table> </table>
<div class="language-shell highlight"><span class="filename">Two tracks at a time, eight threads each</span><pre><span></span><code><span id="__span-41-1"><a id="__codelineno-41-1" name="__codelineno-41-1" href="#__codelineno-41-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--downloads<span class="w"> </span><span class="m">2</span><span class="w"> </span>--workers<span class="w"> </span><span class="m">8</span><span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Two tracks at a time, eight threads each</span><pre><span></span><code><span id="__span-42-1"><a id="__codelineno-42-1" name="__codelineno-42-1" href="#__codelineno-42-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--downloads<span class="w"> </span><span class="m">2</span><span class="w"> </span>--workers<span class="w"> </span><span class="m">8</span><span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<div class="language-shell highlight"><span class="filename">Space out a season download</span><pre><span></span><code><span id="__span-42-1"><a id="__codelineno-42-1" name="__codelineno-42-1" href="#__codelineno-42-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>-w<span class="w"> </span>S01<span class="w"> </span>--slow<span class="w"> </span><span class="m">30</span>-60<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Space out a season download</span><pre><span></span><code><span id="__span-43-1"><a id="__codelineno-43-1" name="__codelineno-43-1" href="#__codelineno-43-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>-w<span class="w"> </span>S01<span class="w"> </span>--slow<span class="w"> </span><span class="m">30</span>-60<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<h2 id="keys-vaults-and-export">Keys, vaults, and export<a class="headerlink" href="#keys-vaults-and-export" title="Permanent link">&para;</a></h2> <h2 id="keys-vaults-and-export">Keys, vaults, and export<a class="headerlink" href="#keys-vaults-and-export" title="Permanent link">&para;</a></h2>
<p>By default, unshackle checks your <strong>key vaults</strong> first and only asks a <strong>CDM</strong> to license <p>By default, unshackle checks your <strong>key vaults</strong> first and only asks a <strong>CDM</strong> to license
@@ -3987,19 +4009,19 @@ a content key when the vault misses. You can force one side or the other:</p>
<li><code>--vaults-only</code>: only use key vaults and never license through the CDM. A missing <li><code>--vaults-only</code>: only use key vaults and never license through the CDM. A missing
content key fails.</li> content key fails.</li>
</ul> </ul>
<div class="language-shell highlight"><span class="filename">Fetch keys only, no download</span><pre><span></span><code><span id="__span-43-1"><a id="__codelineno-43-1" name="__codelineno-43-1" href="#__codelineno-43-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--skip-dl<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Fetch keys only, no download</span><pre><span></span><code><span id="__span-44-1"><a id="__codelineno-44-1" name="__codelineno-44-1" href="#__codelineno-44-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--skip-dl<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<p><code>--export</code> writes a <code>mediaexport</code> JSON file into the configured exports directory. It holds <p><code>--export</code> writes a <code>mediaexport</code> JSON file into the configured exports directory. It holds
the manifest, the DRM init data, the content keys, the KIDs of each track and the title the manifest, the DRM init data, the content keys, the KIDs of each track and the title
metadata for each title. <code>unshackle import</code> reads it to reconstruct a download later, and gives metadata for each title. <code>unshackle import</code> reads it to reconstruct a download later, and gives
each track only the content keys for its KIDs. The importer also reads the each track only the content keys for its KIDs. The importer also reads the
older unshackle <code>version: 2</code> files and unidl's own export files.</p> older unshackle <code>version: 2</code> files and unidl's own export files.</p>
<div class="language-shell highlight"><span class="filename">Export track info and keys</span><pre><span></span><code><span id="__span-44-1"><a id="__codelineno-44-1" name="__codelineno-44-1" href="#__codelineno-44-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--skip-dl<span class="w"> </span>--export<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Export track info and keys</span><pre><span></span><code><span id="__span-45-1"><a id="__codelineno-45-1" name="__codelineno-45-1" href="#__codelineno-45-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--skip-dl<span class="w"> </span>--export<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<p>Add <code>--all-drm</code> to get the content keys of each DRM system the title offers. The export then <p>Add <code>--all-drm</code> to get the content keys of each DRM system the title offers. The export then
holds the DRM init data of both. A Key Vault that has a content key stops the challenge for holds the DRM init data of both. A Key Vault that has a content key stops the challenge for
its KID; add <code>--cdm-only</code> to send a challenge for each DRM system.</p> its KID; add <code>--cdm-only</code> to send a challenge for each DRM system.</p>
<div class="language-shell highlight"><span class="filename">License with Widevine and PlayReady, no download</span><pre><span></span><code><span id="__span-45-1"><a id="__codelineno-45-1" name="__codelineno-45-1" href="#__codelineno-45-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--skip-dl<span class="w"> </span>--all-drm<span class="w"> </span>--export<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">License with Widevine and PlayReady, no download</span><pre><span></span><code><span id="__span-46-1"><a id="__codelineno-46-1" name="__codelineno-46-1" href="#__codelineno-46-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--skip-dl<span class="w"> </span>--all-drm<span class="w"> </span>--export<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<p>The file name tells what the file holds, in the form <p>The file name tells what the file holds, in the form
<code>{title}.{scope}.{resolutions}.{codecs}.{ranges}.{manifests}.{audio}-{SERVICE}.json</code>:</p> <code>{title}.{scope}.{resolutions}.{codecs}.{ranges}.{manifests}.{audio}-{SERVICE}.json</code>:</p>
@@ -4123,9 +4145,9 @@ lookups but keep the IDs you give, set
</tr> </tr>
</tbody> </tbody>
</table> </table>
<div class="language-shell highlight"><span class="filename">Force the right IMDb match, and keep the service&#x27;s own naming</span><pre><span></span><code><span id="__span-46-1"><a id="__codelineno-46-1" name="__codelineno-46-1" href="#__codelineno-46-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--imdb<span class="w"> </span>tt1375666<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Force the right IMDb match, and keep the service&#x27;s own naming</span><pre><span></span><code><span id="__span-47-1"><a id="__codelineno-47-1" name="__codelineno-47-1" href="#__codelineno-47-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--imdb<span class="w"> </span>tt1375666<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<div class="language-shell highlight"><span class="filename">Force the match and take IMDb&#x27;s title, year and language too</span><pre><span></span><code><span id="__span-47-1"><a id="__codelineno-47-1" name="__codelineno-47-1" href="#__codelineno-47-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--imdb<span class="w"> </span>tt1375666<span class="w"> </span>--enrich<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Force the match and take IMDb&#x27;s title, year and language too</span><pre><span></span><code><span id="__span-48-1"><a id="__codelineno-48-1" name="__codelineno-48-1" href="#__codelineno-48-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--imdb<span class="w"> </span>tt1375666<span class="w"> </span>--enrich<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<h3 id="what-each-metadata-provider-supplies">What each metadata provider supplies<a class="headerlink" href="#what-each-metadata-provider-supplies" title="Permanent link">&para;</a></h3> <h3 id="what-each-metadata-provider-supplies">What each metadata provider supplies<a class="headerlink" href="#what-each-metadata-provider-supplies" title="Permanent link">&para;</a></h3>
<p>Metadata providers differ in what they answer with, so the fields <code>--enrich</code> can replace <p>Metadata providers differ in what they answer with, so the fields <code>--enrich</code> can replace
@@ -4243,7 +4265,7 @@ selection.</p>
TVDB's <code>alternate</code> (Streaming) order for Futurama, for example, while TVDB's <code>official</code> order TVDB's <code>alternate</code> (Streaming) order for Futurama, for example, while TVDB's <code>official</code> order
holds back four season-one episodes to the start of season two. <code>--tvdb-order</code> works out which holds back four season-one episodes to the start of season two. <code>--tvdb-order</code> works out which
order the service used, then renumbers the episodes into the order you asked for:</p> order the service used, then renumbers the episodes into the order you asked for:</p>
<div class="language-shell highlight"><span class="filename">Download Futurama in DVD order</span><pre><span></span><code><span id="__span-48-1"><a id="__codelineno-48-1" name="__codelineno-48-1" href="#__codelineno-48-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--tvdb-order<span class="w"> </span>dvd<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Download Futurama in DVD order</span><pre><span></span><code><span id="__span-49-1"><a id="__codelineno-49-1" name="__codelineno-49-1" href="#__codelineno-49-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--tvdb-order<span class="w"> </span>dvd<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<p>Available orders are <code>official</code> (aired), <code>dvd</code>, <code>absolute</code>, <code>alternate</code>, and <code>regional</code>. Set <p>Available orders are <code>official</code> (aired), <code>dvd</code>, <code>absolute</code>, <code>alternate</code>, and <code>regional</code>. Set
<code>tvdb_order</code> in your config to apply one by default.</p> <code>tvdb_order</code> in your config to apply one by default.</p>
+32 -21
View File
@@ -2588,6 +2588,10 @@ format-appropriate clean-up to make a single, valid file:</p>
<td>Include forced subtitle tracks (excluded by default).</td> <td>Include forced subtitle tracks (excluded by default).</td>
</tr> </tr>
<tr> <tr>
<td><code>-fso</code>, <code>--forced-subs-only</code></td>
<td>Keep only forced subtitle tracks and drop the other subtitles; implies <code>-fs</code>.</td>
</tr>
<tr>
<td><code>-fsl</code>, <code>--forced-s-lang</code></td> <td><code>-fsl</code>, <code>--forced-s-lang</code></td>
<td>Language(s) wanted for forced subtitles; implies <code>-fs</code>. A <code>-</code> prefix excludes.</td> <td>Language(s) wanted for forced subtitles; implies <code>-fs</code>. A <code>-</code> prefix excludes.</td>
</tr> </tr>
@@ -2651,6 +2655,13 @@ you do not need both:</p>
<p>If you pass both flags, <code>-fsl</code> wins and keeps only forced tracks in its languages. <p>If you pass both flags, <code>-fsl</code> wins and keeps only forced tracks in its languages.
It also understands <code>orig</code> (the title's original language) and <code>all</code> (every forced It also understands <code>orig</code> (the title's original language) and <code>all</code> (every forced
track, same as plain <code>-fs</code>).</p> track, same as plain <code>-fs</code>).</p>
<p>To download the forced tracks and no other subtitle, use <code>-fso</code> / <code>--forced-subs-only</code>.
It implies <code>-fs</code>, and <code>--s-lang</code> and <code>-fsl</code> still select the languages:</p>
<div class="language-shell highlight"><span class="filename">Only the English forced track</span><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>dl<span class="w"> </span>--s-lang<span class="w"> </span>en<span class="w"> </span>--forced-subs-only<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div>
<p><code>-fso</code> does not drop video or audio. Add <code>-S</code> for a subtitle-only download. A title with
no forced track stops a run of one title. A run of more than one title skips that title
with a warning.</p>
<h2 id="track-types-forced-sdh-and-cc">Track types: forced, SDH, and CC<a class="headerlink" href="#track-types-forced-sdh-and-cc" title="Permanent link">&para;</a></h2> <h2 id="track-types-forced-sdh-and-cc">Track types: forced, SDH, and CC<a class="headerlink" href="#track-types-forced-sdh-and-cc" title="Permanent link">&para;</a></h2>
<p>Every subtitle track carries flags describing what kind of captions it holds. These <p>Every subtitle track carries flags describing what kind of captions it holds. These
flags drive selection, sort order, output filenames, and the Matroska track flags.</p> flags drive selection, sort order, output filenames, and the Matroska track flags.</p>
@@ -2744,12 +2755,12 @@ hearing-impaired cues stay in the file.</p>
<p>By default unshackle keeps each subtitle in its downloaded format (only auto-converting <p>By default unshackle keeps each subtitle in its downloaded format (only auto-converting
TTML to WebVTT for muxing, as noted above). To force a specific output format, use TTML to WebVTT for muxing, as noted above). To force a specific output format, use
<code>--sub-format</code>:</p> <code>--sub-format</code>:</p>
<div class="language-shell highlight"><span class="filename">Convert every subtitle to SRT</span><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>dl<span class="w"> </span>--s-lang<span class="w"> </span>en,es<span class="w"> </span>--sub-format<span class="w"> </span>srt<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span> <div class="language-shell highlight"><span class="filename">Convert every subtitle to SRT</span><pre><span></span><code><span id="__span-6-1"><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--s-lang<span class="w"> </span>en,es<span class="w"> </span>--sub-format<span class="w"> </span>srt<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="m">81234567</span>
</span></code></pre></div> </span></code></pre></div>
<p><code>--sub-format</code> accepts the common format names and aliases, including <code>srt</code>, <code>vtt</code>, <p><code>--sub-format</code> accepts the common format names and aliases, including <code>srt</code>, <code>vtt</code>,
<code>ssa</code>, <code>ass</code>, and <code>ttml</code>. Pass <code>original</code> to explicitly keep the source format and skip <code>ssa</code>, <code>ass</code>, and <code>ttml</code>. Pass <code>original</code> to explicitly keep the source format and skip
all conversion:</p> all conversion:</p>
<div class="language-shell highlight"><span class="filename">Keep whatever the service delivered</span><pre><span></span><code><span id="__span-6-1"><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>unshackle<span class="w"> </span>dl<span class="w"> </span>--sub-format<span class="w"> </span>original<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="s1">'https://www.example.com/...'</span> <div class="language-shell highlight"><span class="filename">Keep whatever the service delivered</span><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>dl<span class="w"> </span>--sub-format<span class="w"> </span>original<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="s1">'https://www.example.com/...'</span>
</span></code></pre></div> </span></code></pre></div>
<p>Conversion only runs when the source format differs from the target, so <p>Conversion only runs when the source format differs from the target, so
<code>--sub-format srt</code> on a track that is already SRT is a no-op.</p> <code>--sub-format srt</code> on a track that is already SRT is a no-op.</p>
@@ -2949,23 +2960,23 @@ additionally) write them as separate sidecar files next to the video, controlled
<div class="tabbed-set tabbed-alternate" data-tabs="1:3"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">mux (default)</label><label for="__tabbed_1_2">sidecar</label><label for="__tabbed_1_3">both</label></div> <div class="tabbed-set tabbed-alternate" data-tabs="1:3"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">mux (default)</label><label for="__tabbed_1_2">sidecar</label><label for="__tabbed_1_3">both</label></div>
<div class="tabbed-content"> <div class="tabbed-content">
<div class="tabbed-block"> <div class="tabbed-block">
<div class="language-yaml highlight"><span class="filename">unshackle.yaml</span><pre><span></span><code><span id="__span-7-1"><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="nt">subtitle</span><span class="p">:</span> <div class="language-yaml highlight"><span class="filename">unshackle.yaml</span><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="nt">subtitle</span><span class="p">:</span>
</span><span id="__span-7-2"><a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="w"> </span><span class="nt">output_mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">mux</span> </span><span id="__span-8-2"><a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a><span class="w"> </span><span class="nt">output_mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">mux</span>
</span></code></pre></div> </span></code></pre></div>
<p>unshackle embeds the subtitles in the Matroska file. It writes nothing separately.</p> <p>unshackle embeds the subtitles in the Matroska file. It writes nothing separately.</p>
</div> </div>
<div class="tabbed-block"> <div class="tabbed-block">
<div class="language-yaml highlight"><span class="filename">unshackle.yaml</span><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="nt">subtitle</span><span class="p">:</span> <div class="language-yaml highlight"><span class="filename">unshackle.yaml</span><pre><span></span><code><span id="__span-9-1"><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="nt">subtitle</span><span class="p">:</span>
</span><span id="__span-8-2"><a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a><span class="w"> </span><span class="nt">output_mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">sidecar</span> </span><span id="__span-9-2"><a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="w"> </span><span class="nt">output_mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">sidecar</span>
</span><span id="__span-8-3"><a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="w"> </span><span class="nt">sidecar_format</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">srt</span> </span><span id="__span-9-3"><a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="w"> </span><span class="nt">sidecar_format</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">srt</span>
</span></code></pre></div> </span></code></pre></div>
<p>unshackle writes the subtitles as standalone files and does <strong>not</strong> mux them into <p>unshackle writes the subtitles as standalone files and does <strong>not</strong> mux them into
the video (when there is a video or audio track to sit beside).</p> the video (when there is a video or audio track to sit beside).</p>
</div> </div>
<div class="tabbed-block"> <div class="tabbed-block">
<div class="language-yaml highlight"><span class="filename">unshackle.yaml</span><pre><span></span><code><span id="__span-9-1"><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="nt">subtitle</span><span class="p">:</span> <div class="language-yaml highlight"><span class="filename">unshackle.yaml</span><pre><span></span><code><span id="__span-10-1"><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="nt">subtitle</span><span class="p">:</span>
</span><span id="__span-9-2"><a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="w"> </span><span class="nt">output_mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">both</span> </span><span id="__span-10-2"><a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="w"> </span><span class="nt">output_mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">both</span>
</span><span id="__span-9-3"><a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="w"> </span><span class="nt">sidecar_format</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">srt</span> </span><span id="__span-10-3"><a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="w"> </span><span class="nt">sidecar_format</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">srt</span>
</span></code></pre></div> </span></code></pre></div>
<p>unshackle muxes the subtitles into the video <strong>and</strong> writes them as sidecar files.</p> <p>unshackle muxes the subtitles into the video <strong>and</strong> writes them as sidecar files.</p>
</div> </div>
@@ -2973,9 +2984,9 @@ the video (when there is a video or audio track to sit beside).</p>
</div> </div>
<p>unshackle names sidecar files after the output file, with the language and flags encoded <p>unshackle names sidecar files after the output file, with the language and flags encoded
in the name, so players and media managers can match them automatically:</p> in the name, so players and media managers can match them automatically:</p>
<div class="language-text highlight"><pre><span></span><code><span id="__span-10-1"><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>Show.S01E01.1080p.WEB.en.srt <div class="language-text highlight"><pre><span></span><code><span id="__span-11-1"><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>Show.S01E01.1080p.WEB.en.srt
</span><span id="__span-10-2"><a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>Show.S01E01.1080p.WEB.en.forced.srt </span><span id="__span-11-2"><a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a>Show.S01E01.1080p.WEB.en.forced.srt
</span><span id="__span-10-3"><a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a>Show.S01E01.1080p.WEB.en.sdh.srt </span><span id="__span-11-3"><a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a>Show.S01E01.1080p.WEB.en.sdh.srt
</span></code></pre></div> </span></code></pre></div>
<p>The pattern is <code>{base}.{language}[.forced][.sdh].{extension}</code>. The <p>The pattern is <code>{base}.{language}[.forced][.sdh].{extension}</code>. The
<a href="#subtitle-configuration"><code>sidecar_format</code></a> config key sets the sidecar file format. Use <a href="#subtitle-configuration"><code>sidecar_format</code></a> config key sets the sidecar file format. Use
@@ -2990,14 +3001,14 @@ relevant font packages.</p>
<h2 id="subtitle-configuration">Subtitle configuration<a class="headerlink" href="#subtitle-configuration" title="Permanent link">&para;</a></h2> <h2 id="subtitle-configuration">Subtitle configuration<a class="headerlink" href="#subtitle-configuration" title="Permanent link">&para;</a></h2>
<p>You can set defaults for all of the behaviour above in the <code>subtitle</code> block of your <p>You can set defaults for all of the behaviour above in the <code>subtitle</code> block of your
<a href="../../getting-started/configuration-file/">configuration file</a>:</p> <a href="../../getting-started/configuration-file/">configuration file</a>:</p>
<div class="language-yaml highlight"><span class="filename">unshackle.yaml</span><pre><span></span><code><span id="__span-11-1"><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="nt">subtitle</span><span class="p">:</span> <div class="language-yaml highlight"><span class="filename">unshackle.yaml</span><pre><span></span><code><span id="__span-12-1"><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="nt">subtitle</span><span class="p">:</span>
</span><span id="__span-11-2"><a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="w"> </span><span class="nt">strip_sdh</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> </span><span id="__span-12-2"><a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a><span class="w"> </span><span class="nt">strip_sdh</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
</span><span id="__span-11-3"><a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="w"> </span><span class="nt">preserve_formatting</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> </span><span id="__span-12-3"><a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a><span class="w"> </span><span class="nt">preserve_formatting</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
</span><span id="__span-11-4"><a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="w"> </span><span class="nt">conversion_method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">auto</span> </span><span id="__span-12-4"><a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a><span class="w"> </span><span class="nt">conversion_method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">auto</span>
</span><span id="__span-11-5"><a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="w"> </span><span class="nt">sdh_method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">auto</span> </span><span id="__span-12-5"><a id="__codelineno-12-5" name="__codelineno-12-5" href="#__codelineno-12-5"></a><span class="w"> </span><span class="nt">sdh_method</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">auto</span>
</span><span id="__span-11-6"><a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a><span class="w"> </span><span class="nt">convert_before_strip</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> </span><span id="__span-12-6"><a id="__codelineno-12-6" name="__codelineno-12-6" href="#__codelineno-12-6"></a><span class="w"> </span><span class="nt">convert_before_strip</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
</span><span id="__span-11-7"><a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a><span class="w"> </span><span class="nt">output_mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">mux</span> </span><span id="__span-12-7"><a id="__codelineno-12-7" name="__codelineno-12-7" href="#__codelineno-12-7"></a><span class="w"> </span><span class="nt">output_mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">mux</span>
</span><span id="__span-11-8"><a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a><span class="w"> </span><span class="nt">sidecar_format</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">srt</span> </span><span id="__span-12-8"><a id="__codelineno-12-8" name="__codelineno-12-8" href="#__codelineno-12-8"></a><span class="w"> </span><span class="nt">sidecar_format</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">srt</span>
</span></code></pre></div> </span></code></pre></div>
<table> <table>
<thead> <thead>
@@ -2295,6 +2295,24 @@ default. In other words, config only fills in options you did not set on the com
<td>Forced subtitle language(s); implies <code>forced_subs</code>. A <code>-</code> prefix excludes.</td> <td>Forced subtitle language(s); implies <code>forced_subs</code>. A <code>-</code> prefix excludes.</td>
</tr> </tr>
<tr> <tr>
<td><code>forced_subs_only</code></td>
<td>bool</td>
<td><code>false</code></td>
<td>Keep only forced subtitle tracks; implies <code>forced_subs</code>.</td>
</tr>
<tr>
<td><code>audio_description</code></td>
<td>bool</td>
<td><code>false</code></td>
<td>Include descriptive (audio-description) tracks.</td>
</tr>
<tr>
<td><code>audio_description_only</code></td>
<td>bool</td>
<td><code>false</code></td>
<td>Keep only descriptive (audio-description) tracks.</td>
</tr>
<tr>
<td><code>no_subs</code> / <code>no_audio</code> / <code>no_chapters</code> / <code>no_attachments</code></td> <td><code>no_subs</code> / <code>no_audio</code> / <code>no_chapters</code> / <code>no_attachments</code></td>
<td>bool</td> <td>bool</td>
<td><code>false</code></td> <td><code>false</code></td>
File diff suppressed because one or more lines are too long
+38 -38
View File
@@ -2,154 +2,154 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url> <url>
<loc>https://docs.unshackle.dev/</loc> <loc>https://docs.unshackle.dev/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/dev/creating-a-service/</loc> <loc>https://docs.unshackle.dev/dev/creating-a-service/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/dev/service-architecture/</loc> <loc>https://docs.unshackle.dev/dev/service-architecture/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/dev/rest-api/</loc> <loc>https://docs.unshackle.dev/dev/rest-api/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/dev/rest-api/authentication/</loc> <loc>https://docs.unshackle.dev/dev/rest-api/authentication/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/dev/rest-api/dashboard/</loc> <loc>https://docs.unshackle.dev/dev/rest-api/dashboard/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/dev/rest-api/endpoints/</loc> <loc>https://docs.unshackle.dev/dev/rest-api/endpoints/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/dev/rest-api/errors/</loc> <loc>https://docs.unshackle.dev/dev/rest-api/errors/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/dev/rest-api/job-lifecycle/</loc> <loc>https://docs.unshackle.dev/dev/rest-api/job-lifecycle/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/dev/rest-api/quickstart/</loc> <loc>https://docs.unshackle.dev/dev/rest-api/quickstart/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/dev/rest-api/remote-sessions/</loc> <loc>https://docs.unshackle.dev/dev/rest-api/remote-sessions/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/getting-started/configuration-file/</loc> <loc>https://docs.unshackle.dev/getting-started/configuration-file/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/getting-started/installation/</loc> <loc>https://docs.unshackle.dev/getting-started/installation/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/getting-started/quickstart/</loc> <loc>https://docs.unshackle.dev/getting-started/quickstart/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/guide/cli-reference/</loc> <loc>https://docs.unshackle.dev/guide/cli-reference/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/guide/downloading/</loc> <loc>https://docs.unshackle.dev/guide/downloading/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/guide/drm-and-cdm/</loc> <loc>https://docs.unshackle.dev/guide/drm-and-cdm/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/guide/output-and-naming/</loc> <loc>https://docs.unshackle.dev/guide/output-and-naming/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/guide/proxies-and-vpn/</loc> <loc>https://docs.unshackle.dev/guide/proxies-and-vpn/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/guide/subtitles/</loc> <loc>https://docs.unshackle.dev/guide/subtitles/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/guide/troubleshooting/</loc> <loc>https://docs.unshackle.dev/guide/troubleshooting/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/guide/vaults/</loc> <loc>https://docs.unshackle.dev/guide/vaults/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/api/config/</loc> <loc>https://docs.unshackle.dev/reference/api/config/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/api/drm/</loc> <loc>https://docs.unshackle.dev/reference/api/drm/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/api/service/</loc> <loc>https://docs.unshackle.dev/reference/api/service/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/api/titles/</loc> <loc>https://docs.unshackle.dev/reference/api/titles/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/api/tracks/</loc> <loc>https://docs.unshackle.dev/reference/api/tracks/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/configuration/</loc> <loc>https://docs.unshackle.dev/reference/configuration/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/configuration/directories/</loc> <loc>https://docs.unshackle.dev/reference/configuration/directories/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/configuration/download/</loc> <loc>https://docs.unshackle.dev/reference/configuration/download/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/configuration/drm/</loc> <loc>https://docs.unshackle.dev/reference/configuration/drm/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/configuration/example/</loc> <loc>https://docs.unshackle.dev/reference/configuration/example/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/configuration/misc/</loc> <loc>https://docs.unshackle.dev/reference/configuration/misc/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/configuration/network/</loc> <loc>https://docs.unshackle.dev/reference/configuration/network/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/configuration/output/</loc> <loc>https://docs.unshackle.dev/reference/configuration/output/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/configuration/post-scripts/</loc> <loc>https://docs.unshackle.dev/reference/configuration/post-scripts/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/configuration/services/</loc> <loc>https://docs.unshackle.dev/reference/configuration/services/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
<url> <url>
<loc>https://docs.unshackle.dev/reference/configuration/vaults/</loc> <loc>https://docs.unshackle.dev/reference/configuration/vaults/</loc>
<lastmod>2026-10-05</lastmod> <lastmod>2026-10-06</lastmod>
</url> </url>
</urlset> </urlset>
BIN
View File
Binary file not shown.