Deployed 21d5f1c with MkDocs version: 1.6.1

This commit is contained in:
2026-08-16 04:09:18 +00:00
parent 674e0df2be
commit 0f3e6556aa
9 changed files with 1510 additions and 363 deletions
+454
View File
@@ -1881,6 +1881,17 @@
<nav class="md-nav" aria-label=" ClearKey">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#unshackle.core.drm.ClearKey.warn_clear" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;warn_clear
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.ClearKey.decrypt" class="md-nav__link">
<span class="md-ellipsis">
@@ -2178,6 +2189,17 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.MonaLisa.extract_keys" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;extract_keys
</span>
</a>
</li>
<li class="md-nav__item">
@@ -2230,6 +2252,17 @@
<nav class="md-nav" aria-label=" PlayReady">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.extract_kids_from_pssh_b64" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;extract_kids_from_pssh_b64
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.to_dict" class="md-nav__link">
<span class="md-ellipsis">
@@ -2239,6 +2272,28 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.extract_keys_from_cdm" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;extract_keys_from_cdm
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.detect_revocation" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;detect_revocation
</span>
</a>
</li>
<li class="md-nav__item">
@@ -2250,6 +2305,28 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.decrypt_with_mp4decrypt" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;decrypt_with_mp4decrypt
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.decrypt_with_shaka_packager" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;decrypt_with_shaka_packager
</span>
</a>
</li>
</ul>
@@ -2427,6 +2504,28 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.Widevine.decrypt_with_mp4decrypt" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;decrypt_with_mp4decrypt
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.Widevine.decrypt_with_shaka_packager" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;decrypt_with_shaka_packager
</span>
</a>
</li>
</ul>
@@ -2510,6 +2609,17 @@
<nav class="md-nav" aria-label=" ClearKey">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#unshackle.core.drm.ClearKey.warn_clear" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;warn_clear
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.ClearKey.decrypt" class="md-nav__link">
<span class="md-ellipsis">
@@ -2807,6 +2917,17 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.MonaLisa.extract_keys" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;extract_keys
</span>
</a>
</li>
<li class="md-nav__item">
@@ -2859,6 +2980,17 @@
<nav class="md-nav" aria-label=" PlayReady">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.extract_kids_from_pssh_b64" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;extract_kids_from_pssh_b64
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.to_dict" class="md-nav__link">
<span class="md-ellipsis">
@@ -2868,6 +3000,28 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.extract_keys_from_cdm" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;extract_keys_from_cdm
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.detect_revocation" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;detect_revocation
</span>
</a>
</li>
<li class="md-nav__item">
@@ -2879,6 +3033,28 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.decrypt_with_mp4decrypt" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;decrypt_with_mp4decrypt
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.PlayReady.decrypt_with_shaka_packager" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;decrypt_with_shaka_packager
</span>
</a>
</li>
</ul>
@@ -3056,6 +3232,28 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.Widevine.decrypt_with_mp4decrypt" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;decrypt_with_mp4decrypt
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#unshackle.core.drm.Widevine.decrypt_with_shaka_packager" class="md-nav__link">
<span class="md-ellipsis">
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;decrypt_with_shaka_packager
</span>
</a>
</li>
</ul>
@@ -3167,6 +3365,26 @@ set to of the same bit-size of the key.</p>
<div class="doc doc-object doc-function">
<h3 id="unshackle.core.drm.ClearKey.warn_clear" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">warn_clear</span>
<a href="#unshackle.core.drm.ClearKey.warn_clear" class="headerlink" title="Permanent link">&para;</a></h3>
<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">warn_clear</span><span class="p">(</span><span class="n">reason</span><span class="p">)</span>
</span></code></pre></div>
<div class="doc doc-contents ">
<p>Warn once per track that a segment was passed through undecrypted.</p>
</div>
</div>
<div class="doc doc-object doc-function">
@@ -4131,6 +4349,26 @@ H5DCID-V3-P1-YYYYMMDD-HHMMSS-MEDIAID-TIMESTAMP-SUFFIX</p>
<div class="doc doc-object doc-function">
<h3 id="unshackle.core.drm.MonaLisa.extract_keys" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">extract_keys</span>
<a href="#unshackle.core.drm.MonaLisa.extract_keys" class="headerlink" title="Permanent link">&para;</a></h3>
<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">extract_keys</span><span class="p">()</span>
</span></code></pre></div>
<div class="doc doc-contents ">
<p>Extract keys from the ticket using the MonaLisa CDM.</p>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="unshackle.core.drm.MonaLisa.from_ticket" 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_ticket</span>
@@ -4424,6 +4662,26 @@ the content has already been decrypted and muxed into a container.</p>
<div class="doc doc-object doc-function">
<h3 id="unshackle.core.drm.PlayReady.extract_kids_from_pssh_b64" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">extract_kids_from_pssh_b64</span>
<a href="#unshackle.core.drm.PlayReady.extract_kids_from_pssh_b64" class="headerlink" title="Permanent link">&para;</a></h3>
<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">extract_kids_from_pssh_b64</span><span class="p">(</span><span class="n">pssh_b64</span><span class="p">)</span>
</span></code></pre></div>
<div class="doc doc-contents ">
<p>Extract all KIDs from base64-encoded PSSH data.</p>
</div>
</div>
<div class="doc doc-object doc-function">
@@ -4448,6 +4706,122 @@ the content has already been decrypted and muxed into a container.</p>
<div class="doc doc-object doc-function">
<h3 id="unshackle.core.drm.PlayReady.extract_keys_from_cdm" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">extract_keys_from_cdm</span>
<a href="#unshackle.core.drm.PlayReady.extract_keys_from_cdm" class="headerlink" title="Permanent link">&para;</a></h3>
<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">extract_keys_from_cdm</span><span class="p">(</span><span class="n">cdm</span><span class="p">,</span> <span class="n">session_id</span><span class="p">)</span>
</span></code></pre></div>
<div class="doc doc-contents ">
<p>Extract keys from CDM session with cross-library compatibility.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>cdm</code>
</td>
<td>
<code><span title="pyplayready.cdm.Cdm">Cdm</span></code>
</td>
<td>
<div class="doc-md-description">
<p>CDM instance</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
<tr class="doc-section-item">
<td>
<code>session_id</code>
</td>
<td>
<code><span title="bytes">bytes</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Session identifier</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><span title="dict">dict</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Dictionary mapping KID UUIDs to hex keys</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="unshackle.core.drm.PlayReady.detect_revocation" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">detect_revocation</span>
<span class="doc doc-labels">
<small class="doc doc-label doc-label-staticmethod"><code>staticmethod</code></small>
</span>
<a href="#unshackle.core.drm.PlayReady.detect_revocation" class="headerlink" title="Permanent link">&para;</a></h3>
<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">detect_revocation</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
</span></code></pre></div>
<div class="doc doc-contents ">
<p>Return the decoded error string if a revocation HRESULT is present, else None.</p>
<p>Reads the code from the raw SOAP body (<StatusCode>0x8004C065</StatusCode>)
or from an exception message that carries it, so any service is covered.</p>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="unshackle.core.drm.PlayReady.decrypt" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">decrypt</span>
@@ -4471,6 +4845,46 @@ Raises:
</div>
<div class="doc doc-object doc-function">
<h3 id="unshackle.core.drm.PlayReady.decrypt_with_mp4decrypt" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">decrypt_with_mp4decrypt</span>
<a href="#unshackle.core.drm.PlayReady.decrypt_with_mp4decrypt" class="headerlink" title="Permanent link">&para;</a></h3>
<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">decrypt_with_mp4decrypt</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
</span></code></pre></div>
<div class="doc doc-contents ">
<p>Decrypt using mp4decrypt</p>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="unshackle.core.drm.PlayReady.decrypt_with_shaka_packager" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">decrypt_with_shaka_packager</span>
<a href="#unshackle.core.drm.PlayReady.decrypt_with_shaka_packager" class="headerlink" title="Permanent link">&para;</a></h3>
<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">decrypt_with_shaka_packager</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
</span></code></pre></div>
<div class="doc doc-contents ">
<p>Decrypt using Shaka Packager (original method)</p>
</div>
</div>
</div>
@@ -4972,6 +5386,46 @@ Raises:
</div>
<div class="doc doc-object doc-function">
<h3 id="unshackle.core.drm.Widevine.decrypt_with_mp4decrypt" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">decrypt_with_mp4decrypt</span>
<a href="#unshackle.core.drm.Widevine.decrypt_with_mp4decrypt" class="headerlink" title="Permanent link">&para;</a></h3>
<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">decrypt_with_mp4decrypt</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
</span></code></pre></div>
<div class="doc doc-contents ">
<p>Decrypt using mp4decrypt</p>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="unshackle.core.drm.Widevine.decrypt_with_shaka_packager" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">decrypt_with_shaka_packager</span>
<a href="#unshackle.core.drm.Widevine.decrypt_with_shaka_packager" class="headerlink" title="Permanent link">&para;</a></h3>
<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">decrypt_with_shaka_packager</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
</span></code></pre></div>
<div class="doc doc-contents ">
<p>Decrypt using Shaka Packager (original method)</p>
</div>
</div>
</div>