Deployed d7476ac6 with MkDocs version: 1.6.1

This commit is contained in:
2026-11-15 05:16:23 +00:00
parent 87cdc295e1
commit 7c17f274bf
12 changed files with 77 additions and 15 deletions
+1 -1
View File
@@ -4156,7 +4156,7 @@ ignore it safely. See <a href="../../creating-a-service/#split-episodes">Split e
</tr>
</tbody>
</table>
<p><strong>Validation.</strong> Invalid values return <code>400 INVALID_PARAMETERS</code>. <code>vcodec</code>, <code>acodec</code> and <code>sub_format</code> take the same spellings as the CLI options of the same name (<code>unshackle dl --help</code> prints each list). The API and the CLI read one list, so they cannot disagree. <code>range</code> must be one of SDR/HDR10/HDR10P/DV/HLG/HYBRID, and <code>HDR10+</code> is also valid. The bitrate, download worker, and download counts must be positive integers. You may set at most one of the <code>*_only</code> flags. You cannot combine <code>no_subs</code> with <code>subs_only</code>, or <code>no_audio</code> with <code>audio_only</code>. The language fields (<code>lang</code>, <code>v_lang</code>, <code>a_lang</code>, <code>s_lang</code>, <code>forced_s_lang</code> and the <code>require_*</code> fields) must be arrays of strings: a single string such as <code>"en"</code> returns <code>400</code>. The server checks every other field with the type of its <code>dl</code> option. A <code>null</code> or an empty string gets the default from the table.</p>
<p><strong>Validation.</strong> Invalid values return <code>400 INVALID_PARAMETERS</code>. <code>vcodec</code>, <code>acodec</code> and <code>sub_format</code> take the same spellings as the CLI options of the same name (<code>unshackle dl --help</code> prints each list). The API and the CLI read one list, so they cannot disagree. <code>range</code> must be one of SDR/HDR10/HDR10P/VIVID/DV/HLG/HYBRID, and <code>HDR10+</code> and <code>HDR Vivid</code> are also valid. The bitrate, download worker, and download counts must be positive integers. You may set at most one of the <code>*_only</code> flags. You cannot combine <code>no_subs</code> with <code>subs_only</code>, or <code>no_audio</code> with <code>audio_only</code>. The language fields (<code>lang</code>, <code>v_lang</code>, <code>a_lang</code>, <code>s_lang</code>, <code>forced_s_lang</code> and the <code>require_*</code> fields) must be arrays of strings: a single string such as <code>"en"</code> returns <code>400</code>. The server checks every other field with the type of its <code>dl</code> option. A <code>null</code> or an empty string gets the default from the table.</p>
<p><strong>Service options.</strong> A service's own CLI options travel in the same body. Send them in a nested
<code>service_params</code> object, or as flat top-level keys. When the body has <code>service_params</code>, the server
reads service options only from it, and every flat key is a <code>dl</code> value. Without it, a flat key that
+1 -1
View File
@@ -2516,7 +2516,7 @@
<tr>
<td><code>range</code></td>
<td><code>["SDR"]</code></td>
<td>Dynamic range: <code>SDR</code>, <code>HDR10</code>, <code>HDR10+</code>, <code>DV</code>, <code>HLG</code>, <code>HYBRID</code></td>
<td>Dynamic range: <code>SDR</code>, <code>HDR10</code>, <code>HDR10+</code>, <code>VIVID</code>, <code>DV</code>, <code>HLG</code>, <code>HYBRID</code></td>
</tr>
<tr>
<td><code>wanted</code></td>
+3 -3
View File
@@ -2995,8 +2995,8 @@ do not give a <code>name</code>, unshackle derives a human-readable name from th
closed-caption descriptors. The relevant enums:</p>
<ul>
<li><strong><code>Video.Codec</code></strong>: <code>AVC</code> (H.264), <code>HEVC</code> (H.265), <code>VC1</code>, <code>VP8</code>, <code>VP9</code>, <code>AV1</code>, <code>LCEVC</code>.</li>
<li><strong><code>Video.Range</code></strong>: <code>SDR</code>, <code>HLG</code>, <code>HDR10</code>, <code>HDR10P</code> (HDR10+), <code>DV</code> (Dolby Vision), and
<code>HYBRID</code>. <code>HYBRID</code> is special: it tells the pipeline to select both an HDR10(+) base and
<li><strong><code>Video.Range</code></strong>: <code>SDR</code>, <code>HLG</code>, <code>HDR10</code>, <code>HDR10P</code> (HDR10+), <code>VIVID</code> (HDR Vivid), <code>DV</code> (Dolby
Vision), and <code>HYBRID</code>. <code>HYBRID</code> is special: it tells the pipeline to select both an HDR10(+) base and
a DV track and merge the DV RPU onto the HDR10 track with <code>dovi_tool</code> (see
<a href="#dolby-vision-and-hybrid">Dolby Vision hybrid</a>).</li>
</ul>
@@ -3008,7 +3008,7 @@ string form displays kb/s, and <code>--vbitrate</code> and <code>--abitrate</cod
<h3 id="audio"><code>Audio</code><a class="headerlink" href="#audio" title="Permanent link">&para;</a></h3>
<p><code>Audio</code> adds <code>bitrate</code>, <code>channels</code>, <code>joc</code> (Joint Object Coding, the Atmos indicator),
and <code>descriptive</code>. <code>Audio.Codec</code> covers <code>AAC</code>, <code>AC3</code> (<code>DD</code>), <code>EC3</code> (<code>DD+</code>), <code>AC4</code>,
<code>OPUS</code>, <code>OGG</code> (Vorbis), <code>DTS</code>, <code>DTSX</code>, <code>DTSHD</code>, <code>MPEGH</code>, <code>ALAC</code>, <code>FLAC</code>, and <code>MP3</code>. The <code>atmos</code> property is <code>True</code> when
<code>OPUS</code>, <code>OGG</code> (Vorbis), <code>DTS</code>, <code>DTSX</code>, <code>DTSHD</code>, <code>MPEGH</code>, <code>AV3A</code> (Audio Vivid), <code>ALAC</code>, <code>FLAC</code>, and <code>MP3</code>. The <code>atmos</code> property is <code>True</code> when
<code>joc</code> is set (or when <code>extra</code> flags it).</p>
<h3 id="subtitle"><code>Subtitle</code><a class="headerlink" href="#subtitle" title="Permanent link">&para;</a></h3>
<p><code>Subtitle</code> adds three mutually-constrained flags: <code>cc</code> (closed captions), <code>sdh</code>
+1 -1
View File
@@ -3067,7 +3067,7 @@
<tr>
<td><code>-r</code>, <code>--range</code></td>
<td><code>SDR</code></td>
<td>Colour range(s): <code>SDR</code>, <code>HLG</code>, <code>HDR10</code>, <code>HDR10P</code> (HDR10+), <code>DV</code>, <code>HYBRID</code>.</td>
<td>Colour range(s): <code>SDR</code>, <code>HLG</code>, <code>HDR10</code>, <code>HDR10P</code> (HDR10+), <code>VIVID</code> (HDR Vivid), <code>DV</code>, <code>HYBRID</code>.</td>
</tr>
<tr>
<td><code>--generate-dv</code></td>
+9
View File
@@ -3370,6 +3370,10 @@ alone, so unshackle selects it only when you ask for it with <code>-v LCEVC</cod
<td>HDR10+ (<code>-r HDR10+</code> also works)</td>
</tr>
<tr>
<td><code>VIVID</code></td>
<td>HDR Vivid (<code>-r "HDR Vivid"</code> also works)</td>
</tr>
<tr>
<td><code>DV</code></td>
<td>Dolby Vision</td>
</tr>
@@ -3637,6 +3641,11 @@ non-fatal: the manifest value stays in place.</p>
<td>MPEG-H 3D Audio</td>
</tr>
<tr>
<td><code>AV3A</code></td>
<td><code>Audio Vivid</code></td>
<td>Audio Vivid (AVS3-P3)</td>
</tr>
<tr>
<td><code>ALAC</code></td>
<td><code>ALAC</code></td>
<td>Apple Lossless</td>
+1 -1
View File
@@ -2807,7 +2807,7 @@ For an episode with no on-screen name, <code>{episode_name?}</code> and its adja
<tr>
<td><code>hdr</code></td>
<td>Dynamic-range label</td>
<td><code>HDR</code>, <code>HDR10P</code>, <code>DV</code>, <code>DV.HDR</code>, <code>DV.HDR10P</code>, <code>HLG</code></td>
<td><code>HDR</code>, <code>HDR10P</code>, <code>DV</code>, <code>DV.HDR</code>, <code>DV.HDR10P</code>, <code>HDRVivid</code>, <code>HLG</code></td>
</tr>
<tr>
<td><code>hfr</code></td>
+1 -1
View File
@@ -2139,7 +2139,7 @@ at a title and it will:</p>
</tr>
<tr>
<td>Video</td>
<td>AVC, HEVC, VC-1, VP8, VP9, AV1; SDR, HLG, HDR10, HDR10+, Dolby Vision, and Dolby Vision <strong>hybrid</strong> merging</td>
<td>AVC, HEVC, VC-1, VP8, VP9, AV1; SDR, HLG, HDR10, HDR10+, HDR Vivid, Dolby Vision, and Dolby Vision <strong>hybrid</strong> merging</td>
</tr>
<tr>
<td>Audio</td>
BIN
View File
Binary file not shown.
+50 -3
View File
@@ -1984,6 +1984,17 @@
<nav class="md-nav" aria-label=" Codec">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#unshackle.core.tracks.Audio.Codec.from_ts" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;from_ts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.tracks.Audio.Codec.from_ffprobe" class="md-nav__link">
<span class="md-ellipsis">
@@ -3650,6 +3661,17 @@
<nav class="md-nav" aria-label=" Codec">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#unshackle.core.tracks.Audio.Codec.from_ts" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;from_ts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.tracks.Audio.Codec.from_ffprobe" class="md-nav__link">
<span class="md-ellipsis">
@@ -5771,6 +5793,30 @@ recommended.</p>
<div class="doc doc-object doc-function">
<h4 id="unshackle.core.tracks.Audio.Codec.from_ts" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">from_ts</span>
<span class="doc doc-labels">
<small class="doc doc-label doc-label-staticmethod"><code>staticmethod</code></small>
</span>
<a href="#unshackle.core.tracks.Audio.Codec.from_ts" class="headerlink" title="Permanent link">&para;</a></h4>
<div class="language-python doc-signature highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">from_ts</span><span class="p">(</span><span class="n">stream_type</span><span class="p">,</span> <span class="n">registration</span><span class="p">)</span>
</span></code></pre></div>
<div class="doc doc-contents ">
<p>The codec an MPEG-TS PMT entry names by its registration descriptor or <code>stream_type</code>, else None.</p>
</div>
</div>
<div class="doc doc-object doc-function">
@@ -5946,7 +5992,7 @@ float, so this adds its figures: "5.1.4" -&gt; 10.0.</p>
<p>Remux the track into the container of the codec FFprobe reads from the file, cut to the sample window.</p>
<p>The declared codec is used only when FFprobe cannot read the file. Every failure raises and keeps the
downloaded file.</p>
downloaded file. Audio Vivid raises: FFprobe reads it as MP3, and no music container carries it.</p>
</div>
@@ -9073,8 +9119,9 @@ A subtitle in an unlisted codec is always kept.</p>
<div class="doc doc-contents ">
<p>Sort video tracks by resolution, 2D before 3D, then bitrate, and optionally language.</p>
<p>A 3D track carries two views, so its higher bitrate would otherwise rank it over the 2D one.</p>
<p>Sort video tracks by standard resolution, 2D before 3D, then bitrate, and optionally language.</p>
<p>The standard resolution puts a 3840x1606 and a 3840x1610 crop in one 2160p group, ordered by bitrate.
A 3D track carries two views, so its higher bitrate would otherwise rank it over the 2D one.</p>
</div>
+7 -1
View File
@@ -2312,7 +2312,7 @@ default. In other words, config only fills in options you did not set on the com
<td><code>range</code></td>
<td>list</td>
<td><code>["SDR"]</code></td>
<td>Colour range(s): <code>SDR</code>, <code>HLG</code>, <code>HDR10</code>, <code>HDR10P</code>, <code>DV</code>, <code>HYBRID</code>.</td>
<td>Colour range(s): <code>SDR</code>, <code>HLG</code>, <code>HDR10</code>, <code>HDR10P</code>, <code>VIVID</code>, <code>DV</code>, <code>HYBRID</code>.</td>
</tr>
<tr>
<td><code>channels</code></td>
@@ -2982,6 +2982,12 @@ probes the two highest and the two lowest bitrates first:</p>
</tr>
</tbody>
</table>
<p>The probe also finds HDR Vivid in HEVC HDR10 and HLG tracks. A track becomes <code>VIVID</code>, so
<code>-r VIVID</code> selects it, when its first frame carries CUVA HDR Vivid metadata, or when its MPEG-TS
program map table (PMT) has the <code>cuvv</code> registration. An HLG track never becomes <code>HDR10P</code>. An audio
track with no codec gets its codec from the PMT of an MPEG-TS first segment: the <code>AVSA</code>
registration or <code>stream_type</code> <code>0xD5</code> gives <code>Audio Vivid</code>. The probe has no HDR10+ result for an
MPEG-TS track.</p>
<p>A probe that fails, or a fragment whose metadata is encrypted, keeps the label from the service.
unshackle does not probe ISM tracks. Each probe makes one to three small requests: the 64 KiB
fragment, plus the playlist of an HLS track or the header of a one-file track. The probes run in
+2 -2
View File
@@ -2276,8 +2276,8 @@ order and the first match wins. If no rule matches, the global <code>tag</code>
an HDR10 base layer gives <code>DV.HDR</code>, and with an HDR10+ base layer <code>DV.HDR10P</code>. Plain <code>DV</code>
does <strong>not</strong> match those. Name every variant you want, as the example above does. Note
also that HDR10 gives <code>HDR</code>, not <code>HDR10</code>, and so does a PQ video track with no HDR10
metadata. The full set of values is <code>HDR</code>, <code>HDR10P</code>, <code>DV</code>, <code>DV.HDR</code>, <code>DV.HDR10P</code>, and
<code>HLG</code>, as listed in the
metadata. The full set of values is <code>HDR</code>, <code>HDR10P</code>, <code>DV</code>, <code>DV.HDR</code>, <code>DV.HDR10P</code>,
<code>HDRVivid</code>, and <code>HLG</code>, as listed in the
<a href="../../../guide/output-and-naming/#template-variables">variable table</a>.</p>
</div>
<h3 id="operators">Operators<a class="headerlink" href="#operators" title="Permanent link">&para;</a></h3>
File diff suppressed because one or more lines are too long