mirror of
https://github.com/unshackle-dl/unshackle.git
synced 2026-11-12 12:05:07 +00:00
Deployed 23614fd with MkDocs version: 1.6.1
This commit is contained in:
+109
-57
@@ -925,6 +925,17 @@
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tunnel-test" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
tunnel-test
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -2593,6 +2604,17 @@
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tunnel-test" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
tunnel-test
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -3415,6 +3437,10 @@ and keeps the service's numbering unchanged. Pick an order that covers the whole
|
||||
<td>Proxy URI, a country or location code resolved from configured providers, or <code>provider:region</code> (e.g. <code>nordvpn:ca</code>, <code>gluetun:us</code>, <code>protonvpn:de:berlin</code>, <code>controld:yul</code>).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>--local-proxy</code></td>
|
||||
<td>With <code>--remote</code>, send the server's service requests through your machine's own connection. Works with no other proxy option. Check it first with <code>unshackle tunnel-test</code>. See <a href="../proxies-and-vpn/#send-the-servers-requests-through-your-machine">Proxies & VPN</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>--no-proxy</code></td>
|
||||
<td>Force-disable all proxy use.</td>
|
||||
</tr>
|
||||
@@ -3530,6 +3556,10 @@ and keeps the service's numbering unchanged. Pick an order that covers the whole
|
||||
<td>Proxy URI, country or location code, or <code>provider:region</code> (e.g. <code>controld:ca</code>).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>--local-proxy</code></td>
|
||||
<td>With <code>--remote</code>, send the server's search requests through your machine's own connection. Works with no other proxy option.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>--no-proxy</code></td>
|
||||
<td>Force-disable all proxy use.</td>
|
||||
</tr>
|
||||
@@ -3569,21 +3599,43 @@ and keeps the service's numbering unchanged. Pick an order that covers the whole
|
||||
</div>
|
||||
<p>The export file can be a <code>mediaexport</code> file from <code>dl --export</code>, an export from an older version of unshackle, or an export from unidl. The file must name the service it came from.</p>
|
||||
<hr />
|
||||
<h2 id="tunnel-test"><code>tunnel-test</code><a class="headerlink" href="#tunnel-test" title="Permanent link">¶</a></h2>
|
||||
<p>Check <code>--local-proxy</code> before a real <code>--remote</code> run. The command finds the IP address that this
|
||||
machine exits from, opens a tunnel to the server, and makes the server look up its exit IP address
|
||||
through the tunnel. It stops at the first step that fails.</p>
|
||||
<div class="language-text 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 tunnel-test [--server NAME]
|
||||
</span></code></pre></div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Flag</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>--server</code></td>
|
||||
<td>Name of the remote server from <code>remote_services</code> config, if you configure more than one.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>See <a href="../proxies-and-vpn/#send-the-servers-requests-through-your-machine">Proxies & VPN</a>.</p>
|
||||
<hr />
|
||||
<h2 id="setup"><code>setup</code><a class="headerlink" href="#setup" title="Permanent link">¶</a></h2>
|
||||
<p>Install the external tools and make a first config.</p>
|
||||
<div class="language-text 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 setup
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>unshackle setup
|
||||
</span></code></pre></div>
|
||||
<p>The command takes no options and asks its questions at the prompt. It shows the missing <a href="../../getting-started/installation/#external-tools-on-your-path">external tools</a> and downloads the ones you accept. It puts them in a <code>binaries</code> folder, in the package folder of a git clone or in your user data directory for a <code>uv</code> tool install. If no <code>unshackle.yaml</code> exists, it writes a first one: inside the clone, or to your user config directory for a <code>uv</code> tool install. It then makes the data folders and imports <code>.wvd</code> and <code>.prd</code> devices, one file or folder per answer, until you give an empty answer. It ends with a summary of the tools, the path of a config that it wrote, and a pointer to <code>env check</code>. You can run it again: it skips the tools it finds and never overwrites a config. <a href="../../getting-started/installation/#what-unshackle-setup-does">Installation</a> gives the full steps and where each file goes.</p>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>uv<span class="w"> </span>run<span class="w"> </span>unshackle<span class="w"> </span>setup<span class="w"> </span><span class="c1"># from a git clone</span>
|
||||
</span><span id="__span-8-2"><a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>unshackle<span class="w"> </span>setup<span class="w"> </span><span class="c1"># from a uv tool install</span>
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-9-1"><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>uv<span class="w"> </span>run<span class="w"> </span>unshackle<span class="w"> </span>setup<span class="w"> </span><span class="c1"># from a git clone</span>
|
||||
</span><span id="__span-9-2"><a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>unshackle<span class="w"> </span>setup<span class="w"> </span><span class="c1"># from a uv tool install</span>
|
||||
</span></code></pre></div>
|
||||
</div>
|
||||
<hr />
|
||||
<h2 id="cfg"><code>cfg</code><a class="headerlink" href="#cfg" title="Permanent link">¶</a></h2>
|
||||
<p>Read, set, delete, or show configuration values in <code>unshackle.yaml</code> without hand-editing YAML.</p>
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-9-1"><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>unshackle cfg [KEY] [VALUE] [OPTIONS]
|
||||
<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>unshackle cfg [KEY] [VALUE] [OPTIONS]
|
||||
</span></code></pre></div>
|
||||
<table>
|
||||
<thead>
|
||||
@@ -3617,21 +3669,21 @@ and keeps the service's numbering unchanged. Pick an order that covers the whole
|
||||
</div>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-10-1"><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>--list<span class="w"> </span><span class="c1"># print entire config</span>
|
||||
</span><span id="__span-10-2"><a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>serve.api_secret<span class="w"> </span><span class="c1"># read a nested key</span>
|
||||
</span><span id="__span-10-3"><a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>tag<span class="w"> </span>MYGROUP<span class="w"> </span><span class="c1"># set a string</span>
|
||||
</span><span id="__span-10-4"><a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>update_checks<span class="w"> </span><span class="nb">false</span><span class="w"> </span><span class="c1"># literal → boolean False</span>
|
||||
</span><span id="__span-10-5"><a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>directories.downloads<span class="w"> </span>/mnt/dl<span class="w"> </span><span class="c1"># set a nested path</span>
|
||||
</span><span id="__span-10-6"><a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>tag<span class="w"> </span>--unset<span class="w"> </span><span class="c1"># remove a key</span>
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-11-1"><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>--list<span class="w"> </span><span class="c1"># print entire config</span>
|
||||
</span><span id="__span-11-2"><a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>serve.api_secret<span class="w"> </span><span class="c1"># read a nested key</span>
|
||||
</span><span id="__span-11-3"><a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>tag<span class="w"> </span>MYGROUP<span class="w"> </span><span class="c1"># set a string</span>
|
||||
</span><span id="__span-11-4"><a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>update_checks<span class="w"> </span><span class="nb">false</span><span class="w"> </span><span class="c1"># literal → boolean False</span>
|
||||
</span><span id="__span-11-5"><a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>directories.downloads<span class="w"> </span>/mnt/dl<span class="w"> </span><span class="c1"># set a nested path</span>
|
||||
</span><span id="__span-11-6"><a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a>unshackle<span class="w"> </span>cfg<span class="w"> </span>tag<span class="w"> </span>--unset<span class="w"> </span><span class="c1"># remove a key</span>
|
||||
</span></code></pre></div>
|
||||
</div>
|
||||
<hr />
|
||||
<h2 id="env"><code>env</code><a class="headerlink" href="#env" title="Permanent link">¶</a></h2>
|
||||
<p>Inspect and manage the project environment.</p>
|
||||
<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>unshackle env COMMAND [ARGS]...
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-12-1"><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>unshackle env COMMAND [ARGS]...
|
||||
</span></code></pre></div>
|
||||
<h3 id="env-check"><code>env check</code><a class="headerlink" href="#env-check" title="Permanent link">¶</a></h3>
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-12-1"><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>unshackle env check
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-13-1"><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>unshackle env check
|
||||
</span></code></pre></div>
|
||||
<p>Prints a dependency table (Category / Tool / Status / Required / Purpose) that shows which external tools unshackle finds on your <code>PATH</code>. It also gives a summary of how many required tools are present. If a required tool is missing, it tells you to run <a href="#setup"><code>unshackle setup</code></a>.</p>
|
||||
<table>
|
||||
@@ -3670,11 +3722,11 @@ and keeps the service's numbering unchanged. Pick an order that covers the whole
|
||||
</table>
|
||||
<p><small>* required. All others are optional.</small></p>
|
||||
<h3 id="env-info"><code>env info</code><a class="headerlink" href="#env-info" title="Permanent link">¶</a></h3>
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-13-1"><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>unshackle env info
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-14-1"><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>unshackle env info
|
||||
</span></code></pre></div>
|
||||
<p>Shows the location unshackle loaded the configuration file from. If it found no file, it shows the candidate locations instead. It then prints a table of every configured directory (downloads, temp, cache, cookies, logs, exports, WVDs, PRDs, services, and more).</p>
|
||||
<h3 id="env-theme"><code>env theme</code><a class="headerlink" href="#env-theme" title="Permanent link">¶</a></h3>
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-14-1"><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>unshackle env theme
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-15-1"><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>unshackle env theme
|
||||
</span></code></pre></div>
|
||||
<p>Prints a sample of every available CLI theme. Each sample has colour swatches, help text with option rows, and a track listing with video, audio and subtitle entries. It also has log lines, a progress bar, and the gradient pulse bar. unshackle marks the active theme and shows each theme's aliases. Set your choice with the <a href="../../reference/configuration/misc/#appearance"><code>theme</code></a> config key.</p>
|
||||
<h3 id="env-clear"><code>env clear</code><a class="headerlink" href="#env-clear" title="Permanent link">¶</a></h3>
|
||||
@@ -3699,18 +3751,18 @@ and keeps the service's numbering unchanged. Pick an order that covers the whole
|
||||
</table>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-15-1"><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>unshackle<span class="w"> </span>env<span class="w"> </span>check
|
||||
</span><span id="__span-15-2"><a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a>unshackle<span class="w"> </span>env<span class="w"> </span>info
|
||||
</span><span id="__span-15-3"><a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a>unshackle<span class="w"> </span>env<span class="w"> </span>theme
|
||||
</span><span id="__span-15-4"><a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a>unshackle<span class="w"> </span>env<span class="w"> </span>clear<span class="w"> </span>cache
|
||||
</span><span id="__span-15-5"><a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a>unshackle<span class="w"> </span>env<span class="w"> </span>clear<span class="w"> </span>cache<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="c1"># one service only</span>
|
||||
</span><span id="__span-15-6"><a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a>unshackle<span class="w"> </span>env<span class="w"> </span>clear<span class="w"> </span>temp
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-16-1"><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>unshackle<span class="w"> </span>env<span class="w"> </span>check
|
||||
</span><span id="__span-16-2"><a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a>unshackle<span class="w"> </span>env<span class="w"> </span>info
|
||||
</span><span id="__span-16-3"><a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a>unshackle<span class="w"> </span>env<span class="w"> </span>theme
|
||||
</span><span id="__span-16-4"><a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a>unshackle<span class="w"> </span>env<span class="w"> </span>clear<span class="w"> </span>cache
|
||||
</span><span id="__span-16-5"><a id="__codelineno-16-5" name="__codelineno-16-5" href="#__codelineno-16-5"></a>unshackle<span class="w"> </span>env<span class="w"> </span>clear<span class="w"> </span>cache<span class="w"> </span>EXAMPLE<span class="w"> </span><span class="c1"># one service only</span>
|
||||
</span><span id="__span-16-6"><a id="__codelineno-16-6" name="__codelineno-16-6" href="#__codelineno-16-6"></a>unshackle<span class="w"> </span>env<span class="w"> </span>clear<span class="w"> </span>temp
|
||||
</span></code></pre></div>
|
||||
</div>
|
||||
<hr />
|
||||
<h2 id="kv"><code>kv</code><a class="headerlink" href="#kv" title="Permanent link">¶</a></h2>
|
||||
<p>Manage Key Vaults. You configure vaults under <code>key_vaults</code> in <code>unshackle.yaml</code>, each with a <code>name</code>, a <code>type</code> (<code>sqlite</code>, <code>mysql</code>, <code>http</code>, <code>api</code>), and type-specific options. unshackle normalises service tags automatically.</p>
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-16-1"><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>unshackle kv COMMAND [ARGS]...
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-17-1"><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>unshackle kv COMMAND [ARGS]...
|
||||
</span></code></pre></div>
|
||||
<h3 id="kv-copy-to_vault-from_vault"><code>kv copy TO_VAULT FROM_VAULT...</code><a class="headerlink" href="#kv-copy-to_vault-from_vault" title="Permanent link">¶</a></h3>
|
||||
<p>Copy content keys from one or more source vaults into a destination vault. unshackle skips rows whose KIDs match, unless the existing row has no content key. unshackle never alters or deletes existing data.</p>
|
||||
@@ -3764,18 +3816,18 @@ and keeps the service's numbering unchanged. Pick an order that covers the whole
|
||||
<p>Make service tables on vaults that use tables, for every installed service, where they do not already exist.</p>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-17-1"><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>copy<span class="w"> </span>main<span class="w"> </span>backup1<span class="w"> </span>backup2
|
||||
</span><span id="__span-17-2"><a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>copy<span class="w"> </span>main<span class="w"> </span>backup<span class="w"> </span>-s<span class="w"> </span>EXAMPLE
|
||||
</span><span id="__span-17-3"><a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>sync<span class="w"> </span>main<span class="w"> </span>mysql_vault
|
||||
</span><span id="__span-17-4"><a id="__codelineno-17-4" name="__codelineno-17-4" href="#__codelineno-17-4"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>add<span class="w"> </span>keys.txt<span class="w"> </span>EXAMPLE<span class="w"> </span>main<span class="w"> </span>backup
|
||||
</span><span id="__span-17-5"><a id="__codelineno-17-5" name="__codelineno-17-5" href="#__codelineno-17-5"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>search<span class="w"> </span>0123456789abcdef0123456789abcdef<span class="w"> </span>-s<span class="w"> </span>EXAMPLE<span class="w"> </span>-v<span class="w"> </span>main
|
||||
</span><span id="__span-17-6"><a id="__codelineno-17-6" name="__codelineno-17-6" href="#__codelineno-17-6"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>prepare<span class="w"> </span>main<span class="w"> </span>mysql_vault
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-18-1"><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>copy<span class="w"> </span>main<span class="w"> </span>backup1<span class="w"> </span>backup2
|
||||
</span><span id="__span-18-2"><a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>copy<span class="w"> </span>main<span class="w"> </span>backup<span class="w"> </span>-s<span class="w"> </span>EXAMPLE
|
||||
</span><span id="__span-18-3"><a id="__codelineno-18-3" name="__codelineno-18-3" href="#__codelineno-18-3"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>sync<span class="w"> </span>main<span class="w"> </span>mysql_vault
|
||||
</span><span id="__span-18-4"><a id="__codelineno-18-4" name="__codelineno-18-4" href="#__codelineno-18-4"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>add<span class="w"> </span>keys.txt<span class="w"> </span>EXAMPLE<span class="w"> </span>main<span class="w"> </span>backup
|
||||
</span><span id="__span-18-5"><a id="__codelineno-18-5" name="__codelineno-18-5" href="#__codelineno-18-5"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>search<span class="w"> </span>0123456789abcdef0123456789abcdef<span class="w"> </span>-s<span class="w"> </span>EXAMPLE<span class="w"> </span>-v<span class="w"> </span>main
|
||||
</span><span id="__span-18-6"><a id="__codelineno-18-6" name="__codelineno-18-6" href="#__codelineno-18-6"></a>unshackle<span class="w"> </span>kv<span class="w"> </span>prepare<span class="w"> </span>main<span class="w"> </span>mysql_vault
|
||||
</span></code></pre></div>
|
||||
</div>
|
||||
<hr />
|
||||
<h2 id="wvd"><code>wvd</code><a class="headerlink" href="#wvd" title="Permanent link">¶</a></h2>
|
||||
<p>Manage Widevine Device (<code>.wvd</code>) files. Devices live in the configured WVDs directory.</p>
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-18-1"><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>unshackle wvd COMMAND [ARGS]...
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-19-1"><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>unshackle wvd COMMAND [ARGS]...
|
||||
</span></code></pre></div>
|
||||
<table>
|
||||
<thead>
|
||||
@@ -3836,16 +3888,16 @@ and keeps the service's numbering unchanged. Pick an order that covers the whole
|
||||
</table>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-19-1"><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>unshackle<span class="w"> </span>wvd<span class="w"> </span>add<span class="w"> </span>device.wvd
|
||||
</span><span id="__span-19-2"><a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a>unshackle<span class="w"> </span>wvd<span class="w"> </span>parse<span class="w"> </span>nexus_6p_1234_l1
|
||||
</span><span id="__span-19-3"><a id="__codelineno-19-3" name="__codelineno-19-3" href="#__codelineno-19-3"></a>unshackle<span class="w"> </span>wvd<span class="w"> </span>dump<span class="w"> </span>device.wvd<span class="w"> </span>./out_dir
|
||||
</span><span id="__span-19-4"><a id="__codelineno-19-4" name="__codelineno-19-4" href="#__codelineno-19-4"></a>unshackle<span class="w"> </span>wvd<span class="w"> </span>new<span class="w"> </span><span class="s2">"Nexus 6P"</span><span class="w"> </span>private_key.pem<span class="w"> </span>client_id.bin<span class="w"> </span>vmp.bin<span class="w"> </span>-t<span class="w"> </span>ANDROID<span class="w"> </span>-l<span class="w"> </span><span class="m">3</span>
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-20-1"><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>unshackle<span class="w"> </span>wvd<span class="w"> </span>add<span class="w"> </span>device.wvd
|
||||
</span><span id="__span-20-2"><a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a>unshackle<span class="w"> </span>wvd<span class="w"> </span>parse<span class="w"> </span>nexus_6p_1234_l1
|
||||
</span><span id="__span-20-3"><a id="__codelineno-20-3" name="__codelineno-20-3" href="#__codelineno-20-3"></a>unshackle<span class="w"> </span>wvd<span class="w"> </span>dump<span class="w"> </span>device.wvd<span class="w"> </span>./out_dir
|
||||
</span><span id="__span-20-4"><a id="__codelineno-20-4" name="__codelineno-20-4" href="#__codelineno-20-4"></a>unshackle<span class="w"> </span>wvd<span class="w"> </span>new<span class="w"> </span><span class="s2">"Nexus 6P"</span><span class="w"> </span>private_key.pem<span class="w"> </span>client_id.bin<span class="w"> </span>vmp.bin<span class="w"> </span>-t<span class="w"> </span>ANDROID<span class="w"> </span>-l<span class="w"> </span><span class="m">3</span>
|
||||
</span></code></pre></div>
|
||||
</div>
|
||||
<hr />
|
||||
<h2 id="prd"><code>prd</code><a class="headerlink" href="#prd" title="Permanent link">¶</a></h2>
|
||||
<p>Manage PlayReady Device (<code>.prd</code>) files. Devices live in the configured PRDs directory. Built on <code>pyplayready</code>.</p>
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-20-1"><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>unshackle prd COMMAND [ARGS]...
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-21-1"><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>unshackle prd COMMAND [ARGS]...
|
||||
</span></code></pre></div>
|
||||
<h3 id="prd-new-paths"><code>prd new PATHS...</code><a class="headerlink" href="#prd-new-paths" title="Permanent link">¶</a></h3>
|
||||
<p>Make a new <code>.prd</code>. Give either a single folder that contains <code>zgpriv.dat</code> (group key) and <code>bgroupcert.dat</code> (group certificate), or two file paths (group key, then group certificate).</p>
|
||||
@@ -3899,16 +3951,16 @@ and keeps the service's numbering unchanged. Pick an order that covers the whole
|
||||
</table>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-21-1"><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>unshackle<span class="w"> </span>prd<span class="w"> </span>new<span class="w"> </span>./device_folder/
|
||||
</span><span id="__span-21-2"><a id="__codelineno-21-2" name="__codelineno-21-2" href="#__codelineno-21-2"></a>unshackle<span class="w"> </span>prd<span class="w"> </span>new<span class="w"> </span>zgpriv.dat<span class="w"> </span>bgroupcert.dat<span class="w"> </span>-o<span class="w"> </span>/out/dir
|
||||
</span><span id="__span-21-3"><a id="__codelineno-21-3" name="__codelineno-21-3" href="#__codelineno-21-3"></a>unshackle<span class="w"> </span>prd<span class="w"> </span>reprovision<span class="w"> </span>mydevice.prd
|
||||
</span><span id="__span-21-4"><a id="__codelineno-21-4" name="__codelineno-21-4" href="#__codelineno-21-4"></a>unshackle<span class="w"> </span>prd<span class="w"> </span><span class="nb">test</span><span class="w"> </span>mydevice.prd<span class="w"> </span>-sl<span class="w"> </span><span class="m">3000</span><span class="w"> </span>-c<span class="w"> </span>aescbc
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-22-1"><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>unshackle<span class="w"> </span>prd<span class="w"> </span>new<span class="w"> </span>./device_folder/
|
||||
</span><span id="__span-22-2"><a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a>unshackle<span class="w"> </span>prd<span class="w"> </span>new<span class="w"> </span>zgpriv.dat<span class="w"> </span>bgroupcert.dat<span class="w"> </span>-o<span class="w"> </span>/out/dir
|
||||
</span><span id="__span-22-3"><a id="__codelineno-22-3" name="__codelineno-22-3" href="#__codelineno-22-3"></a>unshackle<span class="w"> </span>prd<span class="w"> </span>reprovision<span class="w"> </span>mydevice.prd
|
||||
</span><span id="__span-22-4"><a id="__codelineno-22-4" name="__codelineno-22-4" href="#__codelineno-22-4"></a>unshackle<span class="w"> </span>prd<span class="w"> </span><span class="nb">test</span><span class="w"> </span>mydevice.prd<span class="w"> </span>-sl<span class="w"> </span><span class="m">3000</span><span class="w"> </span>-c<span class="w"> </span>aescbc
|
||||
</span></code></pre></div>
|
||||
</div>
|
||||
<hr />
|
||||
<h2 id="serve"><code>serve</code><a class="headerlink" href="#serve" title="Permanent link">¶</a></h2>
|
||||
<p>Serve your local Widevine/PlayReady devices and the REST API for remote access. Built on <code>aiohttp</code>.</p>
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-22-1"><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>unshackle serve [OPTIONS]
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-23-1"><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>unshackle serve [OPTIONS]
|
||||
</span></code></pre></div>
|
||||
<table>
|
||||
<thead>
|
||||
@@ -3975,31 +4027,31 @@ and keeps the service's numbering unchanged. Pick an order that covers the whole
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Configure <code>api_secret</code> first</p>
|
||||
<p>Unless you pass <code>--no-key</code>, <code>serve.api_secret</code> must be set in your config. Requests authenticate with the <code>X-Secret-Key</code> header. <code>--no-key</code> disables authentication entirely. Only use it on a trusted, private network.</p>
|
||||
<div class="language-yaml highlight"><span class="filename">unshackle.yaml</span><pre><span></span><code><span id="__span-23-1"><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a><span class="nt">serve</span><span class="p">:</span>
|
||||
</span><span id="__span-23-2"><a id="__codelineno-23-2" name="__codelineno-23-2" href="#__codelineno-23-2"></a><span class="w"> </span><span class="nt">api_secret</span><span class="p">:</span><span class="w"> </span><span class="s">"your-api-secret"</span>
|
||||
</span><span id="__span-23-3"><a id="__codelineno-23-3" name="__codelineno-23-3" href="#__codelineno-23-3"></a><span class="w"> </span><span class="nt">users</span><span class="p">:</span>
|
||||
</span><span id="__span-23-4"><a id="__codelineno-23-4" name="__codelineno-23-4" href="#__codelineno-23-4"></a><span class="w"> </span><span class="nt">your-secret-key</span><span class="p">:</span>
|
||||
</span><span id="__span-23-5"><a id="__codelineno-23-5" name="__codelineno-23-5" href="#__codelineno-23-5"></a><span class="w"> </span><span class="nt">devices</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="s">"device_name"</span><span class="p p-Indicator">]</span><span class="w"> </span><span class="c1"># Widevine devices</span>
|
||||
</span><span id="__span-23-6"><a id="__codelineno-23-6" name="__codelineno-23-6" href="#__codelineno-23-6"></a><span class="w"> </span><span class="nt">playready_devices</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="s">"device_name"</span><span class="p p-Indicator">]</span><span class="w"> </span><span class="c1"># PlayReady devices</span>
|
||||
</span><span id="__span-23-7"><a id="__codelineno-23-7" name="__codelineno-23-7" href="#__codelineno-23-7"></a><span class="w"> </span><span class="nt">username</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">user</span>
|
||||
<div class="language-yaml highlight"><span class="filename">unshackle.yaml</span><pre><span></span><code><span id="__span-24-1"><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a><span class="nt">serve</span><span class="p">:</span>
|
||||
</span><span id="__span-24-2"><a id="__codelineno-24-2" name="__codelineno-24-2" href="#__codelineno-24-2"></a><span class="w"> </span><span class="nt">api_secret</span><span class="p">:</span><span class="w"> </span><span class="s">"your-api-secret"</span>
|
||||
</span><span id="__span-24-3"><a id="__codelineno-24-3" name="__codelineno-24-3" href="#__codelineno-24-3"></a><span class="w"> </span><span class="nt">users</span><span class="p">:</span>
|
||||
</span><span id="__span-24-4"><a id="__codelineno-24-4" name="__codelineno-24-4" href="#__codelineno-24-4"></a><span class="w"> </span><span class="nt">your-secret-key</span><span class="p">:</span>
|
||||
</span><span id="__span-24-5"><a id="__codelineno-24-5" name="__codelineno-24-5" href="#__codelineno-24-5"></a><span class="w"> </span><span class="nt">devices</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="s">"device_name"</span><span class="p p-Indicator">]</span><span class="w"> </span><span class="c1"># Widevine devices</span>
|
||||
</span><span id="__span-24-6"><a id="__codelineno-24-6" name="__codelineno-24-6" href="#__codelineno-24-6"></a><span class="w"> </span><span class="nt">playready_devices</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">[</span><span class="s">"device_name"</span><span class="p p-Indicator">]</span><span class="w"> </span><span class="c1"># PlayReady devices</span>
|
||||
</span><span id="__span-24-7"><a id="__codelineno-24-7" name="__codelineno-24-7" href="#__codelineno-24-7"></a><span class="w"> </span><span class="nt">username</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">user</span>
|
||||
</span></code></pre></div>
|
||||
</div>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-24-1"><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>unshackle<span class="w"> </span>serve
|
||||
</span><span id="__span-24-2"><a id="__codelineno-24-2" name="__codelineno-24-2" href="#__codelineno-24-2"></a>unshackle<span class="w"> </span>serve<span class="w"> </span>-h<span class="w"> </span><span class="m">0</span>.0.0.0<span class="w"> </span>-p<span class="w"> </span><span class="m">8080</span>
|
||||
</span><span id="__span-24-3"><a id="__codelineno-24-3" name="__codelineno-24-3" href="#__codelineno-24-3"></a>unshackle<span class="w"> </span>serve<span class="w"> </span>--api-only
|
||||
</span><span id="__span-24-4"><a id="__codelineno-24-4" name="__codelineno-24-4" href="#__codelineno-24-4"></a>unshackle<span class="w"> </span>serve<span class="w"> </span>--remote-only
|
||||
</span><span id="__span-24-5"><a id="__codelineno-24-5" name="__codelineno-24-5" href="#__codelineno-24-5"></a>unshackle<span class="w"> </span>serve<span class="w"> </span>--caddy
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-25-1"><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a>unshackle<span class="w"> </span>serve
|
||||
</span><span id="__span-25-2"><a id="__codelineno-25-2" name="__codelineno-25-2" href="#__codelineno-25-2"></a>unshackle<span class="w"> </span>serve<span class="w"> </span>-h<span class="w"> </span><span class="m">0</span>.0.0.0<span class="w"> </span>-p<span class="w"> </span><span class="m">8080</span>
|
||||
</span><span id="__span-25-3"><a id="__codelineno-25-3" name="__codelineno-25-3" href="#__codelineno-25-3"></a>unshackle<span class="w"> </span>serve<span class="w"> </span>--api-only
|
||||
</span><span id="__span-25-4"><a id="__codelineno-25-4" name="__codelineno-25-4" href="#__codelineno-25-4"></a>unshackle<span class="w"> </span>serve<span class="w"> </span>--remote-only
|
||||
</span><span id="__span-25-5"><a id="__codelineno-25-5" name="__codelineno-25-5" href="#__codelineno-25-5"></a>unshackle<span class="w"> </span>serve<span class="w"> </span>--caddy
|
||||
</span></code></pre></div>
|
||||
</div>
|
||||
<hr />
|
||||
<h2 id="util"><code>util</code><a class="headerlink" href="#util" title="Permanent link">¶</a></h2>
|
||||
<p>Various helper media utilities. When you give a command a directory, it processes every <code>.mkv</code>/<code>.mp4</code> inside it in natural (S01E01 before S01E10) order.</p>
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-25-1"><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a>unshackle util COMMAND [ARGS]...
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-26-1"><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>unshackle util COMMAND [ARGS]...
|
||||
</span></code></pre></div>
|
||||
<h3 id="util-refresh-services"><code>util refresh-services</code><a class="headerlink" href="#util-refresh-services" title="Permanent link">¶</a></h3>
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-26-1"><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>unshackle util refresh-services
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-27-1"><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>unshackle util refresh-services
|
||||
</span></code></pre></div>
|
||||
<p>Force a refresh (git pull / hard reset) of all service repos configured under <code>directories.services</code>. This updates the clones on disk. A server that is already running reloads the changed services through <code>POST /api/maintenance/refresh-services</code> or <code>serve.services_refresh_interval</code> instead.</p>
|
||||
<h3 id="util-crop-path-aspect"><code>util crop PATH ASPECT</code><a class="headerlink" href="#util-crop-path-aspect" title="Permanent link">¶</a></h3>
|
||||
@@ -4073,11 +4125,11 @@ and keeps the service's numbering unchanged. Pick an order that covers the whole
|
||||
</table>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-27-1"><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>unshackle<span class="w"> </span>util<span class="w"> </span>refresh-services
|
||||
</span><span id="__span-27-2"><a id="__codelineno-27-2" name="__codelineno-27-2" href="#__codelineno-27-2"></a>unshackle<span class="w"> </span>util<span class="w"> </span>crop<span class="w"> </span>video.mkv<span class="w"> </span><span class="m">2</span>.39:1
|
||||
</span><span id="__span-27-3"><a id="__codelineno-27-3" name="__codelineno-27-3" href="#__codelineno-27-3"></a>unshackle<span class="w"> </span>util<span class="w"> </span>crop<span class="w"> </span>./season/<span class="w"> </span><span class="m">16</span>:9<span class="w"> </span>--pillar<span class="w"> </span>-o<span class="w"> </span><span class="m">10</span>
|
||||
</span><span id="__span-27-4"><a id="__codelineno-27-4" name="__codelineno-27-4" href="#__codelineno-27-4"></a>unshackle<span class="w"> </span>util<span class="w"> </span>range<span class="w"> </span>video.mkv<span class="w"> </span>--full
|
||||
</span><span id="__span-27-5"><a id="__codelineno-27-5" name="__codelineno-27-5" href="#__codelineno-27-5"></a>unshackle<span class="w"> </span>util<span class="w"> </span><span class="nb">test</span><span class="w"> </span>video.mkv<span class="w"> </span>-m<span class="w"> </span><span class="m">0</span>:v:0
|
||||
<div class="language-shell highlight"><pre><span></span><code><span id="__span-28-1"><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>unshackle<span class="w"> </span>util<span class="w"> </span>refresh-services
|
||||
</span><span id="__span-28-2"><a id="__codelineno-28-2" name="__codelineno-28-2" href="#__codelineno-28-2"></a>unshackle<span class="w"> </span>util<span class="w"> </span>crop<span class="w"> </span>video.mkv<span class="w"> </span><span class="m">2</span>.39:1
|
||||
</span><span id="__span-28-3"><a id="__codelineno-28-3" name="__codelineno-28-3" href="#__codelineno-28-3"></a>unshackle<span class="w"> </span>util<span class="w"> </span>crop<span class="w"> </span>./season/<span class="w"> </span><span class="m">16</span>:9<span class="w"> </span>--pillar<span class="w"> </span>-o<span class="w"> </span><span class="m">10</span>
|
||||
</span><span id="__span-28-4"><a id="__codelineno-28-4" name="__codelineno-28-4" href="#__codelineno-28-4"></a>unshackle<span class="w"> </span>util<span class="w"> </span>range<span class="w"> </span>video.mkv<span class="w"> </span>--full
|
||||
</span><span id="__span-28-5"><a id="__codelineno-28-5" name="__codelineno-28-5" href="#__codelineno-28-5"></a>unshackle<span class="w"> </span>util<span class="w"> </span><span class="nb">test</span><span class="w"> </span>video.mkv<span class="w"> </span>-m<span class="w"> </span><span class="m">0</span>:v:0
|
||||
</span></code></pre></div>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
Reference in New Issue
Block a user