Some huge changes

This commit is contained in:
killer069 2021-11-18 15:38:25 +05:30
parent e53e892606
commit 81e6bc0092
58 changed files with 648 additions and 181 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -59,4 +59,4 @@
<li><a href="https://github.com/play-dl/play-dl/tree/main/docs/SoundCloud">SoundCloud</a></li> <li><a href="https://github.com/play-dl/play-dl/tree/main/docs/SoundCloud">SoundCloud</a></li>
<li><a href="https://github.com/play-dl/play-dl/tree/main/docs/Deezer">Deezer</a></li> <li><a href="https://github.com/play-dl/play-dl/tree/main/docs/Deezer">Deezer</a></li>
</ul> </ul>
</div></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class="current"><a href="modules.html">Exports</a></li><li class=" tsd-kind-namespace"><a href="modules/_internal_.html">&lt;internal&gt;</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="tsd-kind-type-alias"><a href="modules.html#Deezer" class="tsd-kind-icon">Deezer</a></li><li class="tsd-kind-type-alias"><a href="modules.html#SoundCloud" class="tsd-kind-icon">Sound<wbr/>Cloud</a></li><li class="tsd-kind-type-alias"><a href="modules.html#SoundCloudStream" class="tsd-kind-icon">Sound<wbr/>Cloud<wbr/>Stream</a></li><li class="tsd-kind-type-alias"><a href="modules.html#Spotify" class="tsd-kind-icon">Spotify</a></li><li class="tsd-kind-type-alias"><a href="modules.html#YouTube" class="tsd-kind-icon">You<wbr/>Tube</a></li><li class="tsd-kind-type-alias"><a href="modules.html#YouTubeStream" class="tsd-kind-icon">You<wbr/>Tube<wbr/>Stream</a></li><li class="tsd-kind-function"><a href="modules.html#attachListeners" class="tsd-kind-icon">attach<wbr/>Listeners</a></li><li class="tsd-kind-function"><a href="modules.html#authorization" class="tsd-kind-icon">authorization</a></li><li class="tsd-kind-function"><a href="modules.html#cookieHeaders" class="tsd-kind-icon">cookie<wbr/>Headers</a></li><li class="tsd-kind-function"><a href="modules.html#decipher_info" class="tsd-kind-icon">decipher_<wbr/>info</a></li><li class="tsd-kind-function"><a href="modules.html#deezer" class="tsd-kind-icon">deezer</a></li><li class="tsd-kind-function"><a href="modules.html#dz_advanced_track_search" class="tsd-kind-icon">dz_<wbr/>advanced_<wbr/>track_<wbr/>search</a></li><li class="tsd-kind-function"><a href="modules.html#dz_search" class="tsd-kind-icon">dz_<wbr/>search</a></li><li class="tsd-kind-function"><a href="modules.html#dz_validate" class="tsd-kind-icon">dz_<wbr/>validate</a></li><li class="tsd-kind-function"><a href="modules.html#extractID" class="tsd-kind-icon">extractID</a></li><li class="tsd-kind-function"><a href="modules.html#getFreeClientID" class="tsd-kind-icon">get<wbr/>Free<wbr/>ClientID</a></li><li class="tsd-kind-function"><a href="modules.html#is_expired" class="tsd-kind-icon">is_<wbr/>expired</a></li><li class="tsd-kind-function"><a href="modules.html#playlist_info" class="tsd-kind-icon">playlist_<wbr/>info</a></li><li class="tsd-kind-function"><a href="modules.html#refreshToken" class="tsd-kind-icon">refresh<wbr/>Token</a></li><li class="tsd-kind-function"><a href="modules.html#search" class="tsd-kind-icon">search</a></li><li class="tsd-kind-function"><a href="modules.html#setToken" class="tsd-kind-icon">set<wbr/>Token</a></li><li class="tsd-kind-function"><a href="modules.html#so_validate" class="tsd-kind-icon">so_<wbr/>validate</a></li><li class="tsd-kind-function"><a href="modules.html#soundcloud" class="tsd-kind-icon">soundcloud</a></li><li class="tsd-kind-function"><a href="modules.html#sp_validate" class="tsd-kind-icon">sp_<wbr/>validate</a></li><li class="tsd-kind-function"><a href="modules.html#spotify" class="tsd-kind-icon">spotify</a></li><li class="tsd-kind-function"><a href="modules.html#stream" class="tsd-kind-icon">stream</a></li><li class="tsd-kind-function"><a href="modules.html#stream_from_info" class="tsd-kind-icon">stream_<wbr/>from_<wbr/>info</a></li><li class="tsd-kind-function"><a href="modules.html#validate" class="tsd-kind-icon">validate</a></li><li class="tsd-kind-function"><a href="modules.html#video_basic_info" class="tsd-kind-icon">video_<wbr/>basic_<wbr/>info</a></li><li class="tsd-kind-function"><a href="modules.html#video_info" class="tsd-kind-icon">video_<wbr/>info</a></li><li class="tsd-kind-function"><a href="modules.html#yt_validate" class="tsd-kind-icon">yt_<wbr/>validate</a></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="assets/main.js"></script></body></html> </div></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class="current"><a href="modules.html">Exports</a></li><li class=" tsd-kind-namespace"><a href="modules/_internal_.html">&lt;internal&gt;</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="tsd-kind-type-alias"><a href="modules.html#Deezer" class="tsd-kind-icon">Deezer</a></li><li class="tsd-kind-type-alias"><a href="modules.html#SoundCloud" class="tsd-kind-icon">Sound<wbr/>Cloud</a></li><li class="tsd-kind-type-alias"><a href="modules.html#SoundCloudStream" class="tsd-kind-icon">Sound<wbr/>Cloud<wbr/>Stream</a></li><li class="tsd-kind-type-alias"><a href="modules.html#Spotify" class="tsd-kind-icon">Spotify</a></li><li class="tsd-kind-type-alias"><a href="modules.html#YouTube" class="tsd-kind-icon">You<wbr/>Tube</a></li><li class="tsd-kind-type-alias"><a href="modules.html#YouTubeStream" class="tsd-kind-icon">You<wbr/>Tube<wbr/>Stream</a></li><li class="tsd-kind-function"><a href="modules.html#attachListeners" class="tsd-kind-icon">attach<wbr/>Listeners</a></li><li class="tsd-kind-function"><a href="modules.html#authorization" class="tsd-kind-icon">authorization</a></li><li class="tsd-kind-function"><a href="modules.html#cookieHeaders" class="tsd-kind-icon">cookie<wbr/>Headers</a></li><li class="tsd-kind-function"><a href="modules.html#decipher_info" class="tsd-kind-icon">decipher_<wbr/>info</a></li><li class="tsd-kind-function"><a href="modules.html#deezer" class="tsd-kind-icon">deezer</a></li><li class="tsd-kind-function"><a href="modules.html#dz_advanced_track_search" class="tsd-kind-icon">dz_<wbr/>advanced_<wbr/>track_<wbr/>search</a></li><li class="tsd-kind-function"><a href="modules.html#dz_validate" class="tsd-kind-icon">dz_<wbr/>validate</a></li><li class="tsd-kind-function"><a href="modules.html#extractID" class="tsd-kind-icon">extractID</a></li><li class="tsd-kind-function"><a href="modules.html#getFreeClientID" class="tsd-kind-icon">get<wbr/>Free<wbr/>ClientID</a></li><li class="tsd-kind-function"><a href="modules.html#is_expired" class="tsd-kind-icon">is_<wbr/>expired</a></li><li class="tsd-kind-function"><a href="modules.html#playlist_info" class="tsd-kind-icon">playlist_<wbr/>info</a></li><li class="tsd-kind-function"><a href="modules.html#refreshToken" class="tsd-kind-icon">refresh<wbr/>Token</a></li><li class="tsd-kind-function"><a href="modules.html#search" class="tsd-kind-icon">search</a></li><li class="tsd-kind-function"><a href="modules.html#setToken" class="tsd-kind-icon">set<wbr/>Token</a></li><li class="tsd-kind-function"><a href="modules.html#so_validate" class="tsd-kind-icon">so_<wbr/>validate</a></li><li class="tsd-kind-function"><a href="modules.html#soundcloud" class="tsd-kind-icon">soundcloud</a></li><li class="tsd-kind-function"><a href="modules.html#sp_validate" class="tsd-kind-icon">sp_<wbr/>validate</a></li><li class="tsd-kind-function"><a href="modules.html#spotify" class="tsd-kind-icon">spotify</a></li><li class="tsd-kind-function"><a href="modules.html#stream" class="tsd-kind-icon">stream</a></li><li class="tsd-kind-function"><a href="modules.html#stream_from_info" class="tsd-kind-icon">stream_<wbr/>from_<wbr/>info</a></li><li class="tsd-kind-function"><a href="modules.html#validate" class="tsd-kind-icon">validate</a></li><li class="tsd-kind-function"><a href="modules.html#video_basic_info" class="tsd-kind-icon">video_<wbr/>basic_<wbr/>info</a></li><li class="tsd-kind-function"><a href="modules.html#video_info" class="tsd-kind-icon">video_<wbr/>info</a></li><li class="tsd-kind-function"><a href="modules.html#yt_validate" class="tsd-kind-icon">yt_<wbr/>validate</a></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="assets/main.js"></script></body></html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ChannelIconInterface | play-dl</title><meta name="description" content="Documentation for play-dl"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">play-dl</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">play-dl</a></li><li><a href="../modules/_internal_.html">&lt;internal&gt;</a></li><li><a href="_internal_.ChannelIconInterface.html">ChannelIconInterface</a></li></ul><h1>Interface ChannelIconInterface</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="target">ChannelIconInterface</span></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#height" class="tsd-kind-icon">height</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#url" class="tsd-kind-icon">url</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#width" class="tsd-kind-icon">width</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="height" class="tsd-anchor"></a><h3>height</h3><div class="tsd-signature tsd-kind-icon">height<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/4285f1a/play-dl/YouTube/classes/Channel.ts#L13">play-dl/YouTube/classes/Channel.ts:13</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead"> <!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ChannelIconInterface | play-dl</title><meta name="description" content="Documentation for play-dl"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">play-dl</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">play-dl</a></li><li><a href="../modules/_internal_.html">&lt;internal&gt;</a></li><li><a href="_internal_.ChannelIconInterface.html">ChannelIconInterface</a></li></ul><h1>Interface ChannelIconInterface</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="target">ChannelIconInterface</span></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#height" class="tsd-kind-icon">height</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#url" class="tsd-kind-icon">url</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#width" class="tsd-kind-icon">width</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="height" class="tsd-anchor"></a><h3>height</h3><div class="tsd-signature tsd-kind-icon">height<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Channel.ts#L13">play-dl/YouTube/classes/Channel.ts:13</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Channel Icon Height</p> <p>YouTube Channel Icon Height</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="url" class="tsd-anchor"></a><h3>url</h3><div class="tsd-signature tsd-kind-icon">url<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/4285f1a/play-dl/YouTube/classes/Channel.ts#L5">play-dl/YouTube/classes/Channel.ts:5</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead"> </div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="url" class="tsd-anchor"></a><h3>url</h3><div class="tsd-signature tsd-kind-icon">url<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Channel.ts#L5">play-dl/YouTube/classes/Channel.ts:5</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Channel Icon URL</p> <p>YouTube Channel Icon URL</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="width" class="tsd-anchor"></a><h3>width</h3><div class="tsd-signature tsd-kind-icon">width<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/4285f1a/play-dl/YouTube/classes/Channel.ts#L9">play-dl/YouTube/classes/Channel.ts:9</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead"> </div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="width" class="tsd-anchor"></a><h3>width</h3><div class="tsd-signature tsd-kind-icon">width<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Channel.ts#L9">play-dl/YouTube/classes/Channel.ts:9</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Channel Icon Width</p> <p>YouTube Channel Icon Width</p>
</div></div></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li><li class="current tsd-kind-namespace"><a href="../modules/_internal_.html">&lt;internal&gt;</a><ul><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_._node_stream_consumers_.html">&quot;node:stream/consumers&quot;</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_._node_stream_promises_.html">&quot;node:stream/promises&quot;</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_.EventEmitter.html">Event<wbr/>Emitter</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_.internal.html">internal</a></li></ul></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-interface tsd-parent-kind-namespace"><a href="_internal_.ChannelIconInterface.html" class="tsd-kind-icon">Channel<wbr/>Icon<wbr/>Interface</a><ul><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#height" class="tsd-kind-icon">height</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#url" class="tsd-kind-icon">url</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#width" class="tsd-kind-icon">width</a></li></ul></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="../assets/main.js"></script></body></html> </div></div></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li><li class="current tsd-kind-namespace"><a href="../modules/_internal_.html">&lt;internal&gt;</a><ul><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_._node_stream_consumers_.html">&quot;node:stream/consumers&quot;</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_._node_stream_promises_.html">&quot;node:stream/promises&quot;</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_.EventEmitter.html">Event<wbr/>Emitter</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_.internal.html">internal</a></li></ul></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-interface tsd-parent-kind-namespace"><a href="_internal_.ChannelIconInterface.html" class="tsd-kind-icon">Channel<wbr/>Icon<wbr/>Interface</a><ul><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#height" class="tsd-kind-icon">height</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#url" class="tsd-kind-icon">url</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelIconInterface.html#width" class="tsd-kind-icon">width</a></li></ul></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="../assets/main.js"></script></body></html>

View File

@ -1,17 +1,17 @@
<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ChannelJSON | play-dl</title><meta name="description" content="Documentation for play-dl"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">play-dl</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">play-dl</a></li><li><a href="../modules/_internal_.html">&lt;internal&gt;</a></li><li><a href="_internal_.ChannelJSON.html">ChannelJSON</a></li></ul><h1>Interface ChannelJSON</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="target">ChannelJSON</span></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#artist" class="tsd-kind-icon">artist</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#icon" class="tsd-kind-icon">icon</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#id" class="tsd-kind-icon">id</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#name" class="tsd-kind-icon">name</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#subscribers" class="tsd-kind-icon">subscribers</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#type" class="tsd-kind-icon">type</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#url" class="tsd-kind-icon">url</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#verified" class="tsd-kind-icon">verified</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="artist" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> artist</h3><div class="tsd-signature tsd-kind-icon">artist<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/4285f1a/play-dl/YouTube/classes/Channel.ts#L115">play-dl/YouTube/classes/Channel.ts:115</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead"> <!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ChannelJSON | play-dl</title><meta name="description" content="Documentation for play-dl"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">play-dl</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">play-dl</a></li><li><a href="../modules/_internal_.html">&lt;internal&gt;</a></li><li><a href="_internal_.ChannelJSON.html">ChannelJSON</a></li></ul><h1>Interface ChannelJSON</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="target">ChannelJSON</span></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#artist" class="tsd-kind-icon">artist</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#icon" class="tsd-kind-icon">icon</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#id" class="tsd-kind-icon">id</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#name" class="tsd-kind-icon">name</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#subscribers" class="tsd-kind-icon">subscribers</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#type" class="tsd-kind-icon">type</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#url" class="tsd-kind-icon">url</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#verified" class="tsd-kind-icon">verified</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="artist" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> artist</h3><div class="tsd-signature tsd-kind-icon">artist<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Channel.ts#L115">play-dl/YouTube/classes/Channel.ts:115</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Channel artist if any.</p> <p>YouTube Channel artist if any.</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="icon" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> icon</h3><div class="tsd-signature tsd-kind-icon">icon<span class="tsd-signature-symbol">?:</span> <a href="_internal_.ChannelIconInterface.html" class="tsd-signature-type" data-tsd-kind="Interface">ChannelIconInterface</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/4285f1a/play-dl/YouTube/classes/Channel.ts#L131">play-dl/YouTube/classes/Channel.ts:131</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead"> </div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="icon" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> icon</h3><div class="tsd-signature tsd-kind-icon">icon<span class="tsd-signature-symbol">?:</span> <a href="_internal_.ChannelIconInterface.html" class="tsd-signature-type" data-tsd-kind="Interface">ChannelIconInterface</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Channel.ts#L131">play-dl/YouTube/classes/Channel.ts:131</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Channel Icon data.</p> <p>YouTube Channel Icon data.</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="id" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> id</h3><div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/4285f1a/play-dl/YouTube/classes/Channel.ts#L119">play-dl/YouTube/classes/Channel.ts:119</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead"> </div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="id" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> id</h3><div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Channel.ts#L119">play-dl/YouTube/classes/Channel.ts:119</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Channel ID.</p> <p>YouTube Channel ID.</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="name" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> name</h3><div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/4285f1a/play-dl/YouTube/classes/Channel.ts#L107">play-dl/YouTube/classes/Channel.ts:107</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead"> </div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="name" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> name</h3><div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Channel.ts#L107">play-dl/YouTube/classes/Channel.ts:107</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Channel Title</p> <p>YouTube Channel Title</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="subscribers" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> subscribers</h3><div class="tsd-signature tsd-kind-icon">subscribers<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/4285f1a/play-dl/YouTube/classes/Channel.ts#L135">play-dl/YouTube/classes/Channel.ts:135</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead"> </div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="subscribers" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> subscribers</h3><div class="tsd-signature tsd-kind-icon">subscribers<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Channel.ts#L135">play-dl/YouTube/classes/Channel.ts:135</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Channel subscribers count.</p> <p>YouTube Channel subscribers count.</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="type" class="tsd-anchor"></a><h3>type</h3><div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;video&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;playlist&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;channel&quot;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/4285f1a/play-dl/YouTube/classes/Channel.ts#L123">play-dl/YouTube/classes/Channel.ts:123</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead"> </div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="type" class="tsd-anchor"></a><h3>type</h3><div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;playlist&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;channel&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;video&quot;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Channel.ts#L123">play-dl/YouTube/classes/Channel.ts:123</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Type of Class [ Channel ]</p> <p>Type of Class [ Channel ]</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="url" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> url</h3><div class="tsd-signature tsd-kind-icon">url<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/4285f1a/play-dl/YouTube/classes/Channel.ts#L127">play-dl/YouTube/classes/Channel.ts:127</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead"> </div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="url" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> url</h3><div class="tsd-signature tsd-kind-icon">url<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Channel.ts#L127">play-dl/YouTube/classes/Channel.ts:127</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Channel Url</p> <p>YouTube Channel Url</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="verified" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> verified</h3><div class="tsd-signature tsd-kind-icon">verified<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/4285f1a/play-dl/YouTube/classes/Channel.ts#L111">play-dl/YouTube/classes/Channel.ts:111</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead"> </div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="verified" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> verified</h3><div class="tsd-signature tsd-kind-icon">verified<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Channel.ts#L111">play-dl/YouTube/classes/Channel.ts:111</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Channel Verified status.</p> <p>YouTube Channel Verified status.</p>
</div></div></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li><li class="current tsd-kind-namespace"><a href="../modules/_internal_.html">&lt;internal&gt;</a><ul><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_._node_stream_consumers_.html">&quot;node:stream/consumers&quot;</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_._node_stream_promises_.html">&quot;node:stream/promises&quot;</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_.EventEmitter.html">Event<wbr/>Emitter</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_.internal.html">internal</a></li></ul></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-interface tsd-parent-kind-namespace"><a href="_internal_.ChannelJSON.html" class="tsd-kind-icon">ChannelJSON</a><ul><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#artist" class="tsd-kind-icon">artist</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#icon" class="tsd-kind-icon">icon</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#id" class="tsd-kind-icon">id</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#name" class="tsd-kind-icon">name</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#subscribers" class="tsd-kind-icon">subscribers</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#type" class="tsd-kind-icon">type</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#url" class="tsd-kind-icon">url</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#verified" class="tsd-kind-icon">verified</a></li></ul></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="../assets/main.js"></script></body></html> </div></div></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li><li class="current tsd-kind-namespace"><a href="../modules/_internal_.html">&lt;internal&gt;</a><ul><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_._node_stream_consumers_.html">&quot;node:stream/consumers&quot;</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_._node_stream_promises_.html">&quot;node:stream/promises&quot;</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_.EventEmitter.html">Event<wbr/>Emitter</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_.internal.html">internal</a></li></ul></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-interface tsd-parent-kind-namespace"><a href="_internal_.ChannelJSON.html" class="tsd-kind-icon">ChannelJSON</a><ul><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#artist" class="tsd-kind-icon">artist</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#icon" class="tsd-kind-icon">icon</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#id" class="tsd-kind-icon">id</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#name" class="tsd-kind-icon">name</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#subscribers" class="tsd-kind-icon">subscribers</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#type" class="tsd-kind-icon">type</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#url" class="tsd-kind-icon">url</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.ChannelJSON.html#verified" class="tsd-kind-icon">verified</a></li></ul></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="../assets/main.js"></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,21 @@
<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PlaylistJSON | play-dl</title><meta name="description" content="Documentation for play-dl"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">play-dl</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">play-dl</a></li><li><a href="../modules/_internal_.html">&lt;internal&gt;</a></li><li><a href="_internal_.PlaylistJSON.html">PlaylistJSON</a></li></ul><h1>Interface PlaylistJSON</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="target">PlaylistJSON</span></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#channel" class="tsd-kind-icon">channel</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#id" class="tsd-kind-icon">id</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#lastUpdate" class="tsd-kind-icon">last<wbr/>Update</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#link" class="tsd-kind-icon">link</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#thumbnail" class="tsd-kind-icon">thumbnail</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#title" class="tsd-kind-icon">title</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#url-1" class="tsd-kind-icon">url</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#videoCount" class="tsd-kind-icon">video<wbr/>Count</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#videos" class="tsd-kind-icon">videos</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#views" class="tsd-kind-icon">views</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="channel" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> channel</h3><div class="tsd-signature tsd-kind-icon">channel<span class="tsd-signature-symbol">?:</span> <a href="../classes/_internal_.YouTubeChannel.html" class="tsd-signature-type" data-tsd-kind="Class">YouTubeChannel</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Playlist.ts#L277">play-dl/YouTube/classes/Playlist.ts:277</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Playlist channel data</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="id" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> id</h3><div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Playlist.ts#L249">play-dl/YouTube/classes/Playlist.ts:249</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Playlist ID</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="lastUpdate" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> last<wbr/>Update</h3><div class="tsd-signature tsd-kind-icon">last<wbr/>Update<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Playlist.ts#L261">play-dl/YouTube/classes/Playlist.ts:261</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Time when playlist was last updated</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="link" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> link</h3><div class="tsd-signature tsd-kind-icon">link<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Playlist.ts#L273">play-dl/YouTube/classes/Playlist.ts:273</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Playlist url with starting video url.</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="thumbnail" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> thumbnail</h3><div class="tsd-signature tsd-kind-icon">thumbnail<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">{ </span>height<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>url<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>width<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> }</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Playlist.ts#L281">play-dl/YouTube/classes/Playlist.ts:281</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Playlist thumbnail Data</p>
</div></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5>height<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></h5></li><li class="tsd-parameter"><h5>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5>url<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5>width<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span></h5></li></ul></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="title" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> title</h3><div class="tsd-signature tsd-kind-icon">title<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Playlist.ts#L253">play-dl/YouTube/classes/Playlist.ts:253</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Playlist Name</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="url-1" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> url</h3><div class="tsd-signature tsd-kind-icon">url<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Playlist.ts#L269">play-dl/YouTube/classes/Playlist.ts:269</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>YouTube Playlist url</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="videoCount" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> video<wbr/>Count</h3><div class="tsd-signature tsd-kind-icon">video<wbr/>Count<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Playlist.ts#L257">play-dl/YouTube/classes/Playlist.ts:257</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Total no of videos in that playlist</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="videos" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> videos</h3><div class="tsd-signature tsd-kind-icon">videos<span class="tsd-signature-symbol">?:</span> <a href="../classes/_internal_.YouTubeVideo.html" class="tsd-signature-type" data-tsd-kind="Class">YouTubeVideo</a><span class="tsd-signature-symbol">[]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Playlist.ts#L290">play-dl/YouTube/classes/Playlist.ts:290</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>first 100 videos in that playlist</p>
</div></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"><a id="views" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagOptional">Optional</span> views</h3><div class="tsd-signature tsd-kind-icon">views<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/play-dl/play-dl/blob/e53e892/play-dl/YouTube/classes/Playlist.ts#L265">play-dl/YouTube/classes/Playlist.ts:265</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Total views of that playlist</p>
</div></div></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li><li class="current tsd-kind-namespace"><a href="../modules/_internal_.html">&lt;internal&gt;</a><ul><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_._node_stream_consumers_.html">&quot;node:stream/consumers&quot;</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_._node_stream_promises_.html">&quot;node:stream/promises&quot;</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_.EventEmitter.html">Event<wbr/>Emitter</a></li><li class=" tsd-kind-namespace tsd-parent-kind-namespace tsd-is-external"><a href="../modules/_internal_.internal.html">internal</a></li></ul></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-interface tsd-parent-kind-namespace"><a href="_internal_.PlaylistJSON.html" class="tsd-kind-icon">PlaylistJSON</a><ul><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#channel" class="tsd-kind-icon">channel</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#id" class="tsd-kind-icon">id</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#lastUpdate" class="tsd-kind-icon">last<wbr/>Update</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#link" class="tsd-kind-icon">link</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#thumbnail" class="tsd-kind-icon">thumbnail</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#title" class="tsd-kind-icon">title</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#url-1" class="tsd-kind-icon">url</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#videoCount" class="tsd-kind-icon">video<wbr/>Count</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#videos" class="tsd-kind-icon">videos</a></li><li class="tsd-kind-property tsd-parent-kind-interface"><a href="_internal_.PlaylistJSON.html#views" class="tsd-kind-icon">views</a></li></ul></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="../assets/main.js"></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -104,7 +104,7 @@ export class LiveStream {
info.LiveStreamData.hlsManifestUrl !== null && info.LiveStreamData.hlsManifestUrl !== null &&
info.video_details.durationInSec === 0 info.video_details.durationInSec === 0
) { ) {
this.url = info.LiveStreamData.dashManifestUrl; this.url = info.LiveStreamData.dashManifestUrl as string;
} }
} }
/** /**

View File

@ -2,6 +2,7 @@ import { getPlaylistVideos, getContinuationToken } from '../utils/extractor';
import { request } from '../../Request'; import { request } from '../../Request';
import { YouTubeChannel } from './Channel'; import { YouTubeChannel } from './Channel';
import { YouTubeVideo } from './Video'; import { YouTubeVideo } from './Video';
import { YouTubeThumbnail } from './Thumbnail';
const BASE_API = 'https://www.youtube.com/youtubei/v1/browse?key='; const BASE_API = 'https://www.youtube.com/youtubei/v1/browse?key=';
/** /**
* YouTube Playlist Class containing vital informations about playlist. * YouTube Playlist Class containing vital informations about playlist.
@ -46,12 +47,7 @@ export class YouTubePlayList {
/** /**
* YouTube Playlist thumbnail Data * YouTube Playlist thumbnail Data
*/ */
thumbnail?: { thumbnail?: YouTubeThumbnail
id: string | undefined;
width: number | undefined;
height: number | undefined;
url: string | undefined;
};
/** /**
* Videos array containing data of first 100 videos * Videos array containing data of first 100 videos
*/ */
@ -238,7 +234,7 @@ export class YouTubePlayList {
return { return {
id: this.id, id: this.id,
title: this.title, title: this.title,
thumbnail: this.thumbnail, thumbnail: this.thumbnail?.toJSON() || this.thumbnail,
channel: this.channel, channel: this.channel,
url: this.url, url: this.url,
videos: this.videos videos: this.videos

View File

@ -0,0 +1,22 @@
export class YouTubeThumbnail {
id : string;
url : string;
width : number;
height : number;
constructor(data : any){
this.id = data.id
this.url = data.url
this.width = data.width
this.height = data.height
}
toJSON(){
return {
id : this.id,
url : this.url,
width : this.width,
height : this.height
}
}
}

View File

@ -1,56 +1,145 @@
import { YouTubeChannel } from './Channel'; import { YouTubeChannel } from './Channel';
import { YouTubeThumbnail } from './Thumbnail';
interface VideoOptions { interface VideoOptions {
id?: string; /**
url?: string; * YouTube Video ID
title?: string; */
description?: string; id?: string;
durationRaw: string; /**
durationInSec: number; * YouTube video url
uploadedAt?: string; */
views: number; url: string;
thumbnail?: { /**
* YouTube Video title
*/
title?: string;
/**
* YouTube Video description.
*/
description?: string;
/**
* YouTube Video Duration Formatted
*/
durationRaw: string;
/**
* YouTube Video Duration in seconds
*/
durationInSec: number;
/**
* YouTube Video Uploaded Date
*/
uploadedAt?: string;
/**
* YouTube Views
*/
views: number;
/**
* YouTube Thumbnail Data
*/
thumbnail?: {
id: string | undefined; id: string | undefined;
width: number | undefined; width: number | undefined;
height: number | undefined; height: number | undefined;
url: string | undefined; url: string | undefined;
}; };
channel?: any; /**
type: string; * YouTube Video's uploader Channel Data
ratings: { */
likes: number; channel?: YouTubeChannel;
dislikes: number; /**
}; * YouTube Video's likes
live: boolean; */
private: boolean; likes: number;
tags: string[]; /**
* YouTube Video's dislikes
*/
dislikes: number;
/**
* YouTube Video live status
*/
live: boolean;
/**
* YouTube Video private status
*/
private: boolean;
/**
* YouTube Video tags
*/
tags: string[];
} }
/** /**
* Class for YouTube Video url * Class for YouTube Video url
*/ */
export class YouTubeVideo { export class YouTubeVideo {
/**
* YouTube Video ID
*/
id?: string; id?: string;
/**
* YouTube video url
*/
url: string; url: string;
/**
* YouTube Class type. == "video"
*/
type: 'video' | 'playlist' | 'channel'; type: 'video' | 'playlist' | 'channel';
/**
* YouTube Video title
*/
title?: string; title?: string;
/**
* YouTube Video description.
*/
description?: string; description?: string;
/**
* YouTube Video Duration Formatted
*/
durationRaw: string; durationRaw: string;
/**
* YouTube Video Duration in seconds
*/
durationInSec: number; durationInSec: number;
/**
* YouTube Video Uploaded Date
*/
uploadedAt?: string; uploadedAt?: string;
/**
* YouTube Views
*/
views: number; views: number;
thumbnail?: { /**
id: string | undefined; * YouTube Thumbnail Data
width: number | undefined; */
height: number | undefined; thumbnail?: YouTubeThumbnail;
url: string | undefined; /**
}; * YouTube Video's uploader Channel Data
*/
channel?: YouTubeChannel; channel?: YouTubeChannel;
/**
* YouTube Video's likes
*/
likes: number; likes: number;
/**
* YouTube Video's dislikes
*/
dislikes: number; dislikes: number;
/**
* YouTube Video live status
*/
live: boolean; live: boolean;
/**
* YouTube Video private status
*/
private: boolean; private: boolean;
/**
* YouTube Video tags
*/
tags: string[]; tags: string[];
/**
* Constructor Class for YouTube Video
* @param data JSON parsed data.
*/
constructor(data: any) { constructor(data: any) {
if (!data) throw new Error(`Can not initiate ${this.constructor.name} without data`); if (!data) throw new Error(`Can not initiate ${this.constructor.name} without data`);
@ -71,12 +160,18 @@ export class YouTubeVideo {
this.private = !!data.private; this.private = !!data.private;
this.tags = data.tags || []; this.tags = data.tags || [];
} }
/**
get toString(): string { * Converts class to title name of video.
* @returns Title name
*/
toString(): string {
return this.url || ''; return this.url || '';
} }
/**
get toJSON(): VideoOptions { * Converts class to JSON data
* @returns JSON data.
*/
toJSON(): VideoOptions {
return { return {
id: this.id, id: this.id,
url: this.url, url: this.url,
@ -85,15 +180,12 @@ export class YouTubeVideo {
durationInSec: this.durationInSec, durationInSec: this.durationInSec,
durationRaw: this.durationRaw, durationRaw: this.durationRaw,
uploadedAt: this.uploadedAt, uploadedAt: this.uploadedAt,
thumbnail: this.thumbnail, thumbnail: this.thumbnail?.toJSON() || this.thumbnail,
channel: this.channel, channel: this.channel,
views: this.views, views: this.views,
type: this.type,
tags: this.tags, tags: this.tags,
ratings: { likes: this.likes,
likes: this.likes, dislikes: this.dislikes,
dislikes: this.dislikes
},
live: this.live, live: this.live,
private: this.private private: this.private
}; };

View File

@ -1,6 +1,7 @@
import { video_info } from '.'; import { video_info } from '.';
import { LiveStream, Stream } from './classes/LiveStream'; import { LiveStream, Stream } from './classes/LiveStream';
import { ProxyOptions as Proxy } from './../Request'; import { ProxyOptions as Proxy } from './../Request';
import { InfoData } from './utils/constants';
export enum StreamType { export enum StreamType {
Arbitrary = 'arbitrary', Arbitrary = 'arbitrary',
@ -16,16 +17,6 @@ export interface StreamOptions {
htmldata?: boolean; htmldata?: boolean;
} }
export interface InfoData {
LiveStreamData: {
isLive: boolean;
dashManifestUrl: string;
hlsManifestUrl: string;
};
html5player: string;
format: any[];
video_details: any;
}
/** /**
* Command to find audio formats from given format array * Command to find audio formats from given format array
* @param formats Formats to search from * @param formats Formats to search from
@ -58,12 +49,12 @@ export async function stream(url: string, options: StreamOptions = {}): Promise<
const final: any[] = []; const final: any[] = [];
if ( if (
info.LiveStreamData.isLive === true && info.LiveStreamData.isLive === true &&
info.LiveStreamData.hlsManifestUrl !== null && info.LiveStreamData.dashManifestUrl !== null &&
info.video_details.durationInSec === 0 info.video_details.durationInSec === 0
) { ) {
return new LiveStream( return new LiveStream(
info.LiveStreamData.dashManifestUrl, info.LiveStreamData.dashManifestUrl,
info.format[info.format.length - 1].targetDurationSec, info.format[info.format.length - 1].targetDurationSec as number,
info.video_details.url info.video_details.url
); );
} }
@ -95,12 +86,12 @@ export async function stream_from_info(info: InfoData, options: StreamOptions =
const final: any[] = []; const final: any[] = [];
if ( if (
info.LiveStreamData.isLive === true && info.LiveStreamData.isLive === true &&
info.LiveStreamData.hlsManifestUrl !== null && info.LiveStreamData.dashManifestUrl !== null &&
info.video_details.durationInSec === 0 info.video_details.durationInSec === 0
) { ) {
return new LiveStream( return new LiveStream(
info.LiveStreamData.dashManifestUrl, info.LiveStreamData.dashManifestUrl,
info.format[info.format.length - 1].targetDurationSec, info.format[info.format.length - 1].targetDurationSec as number,
info.video_details.url info.video_details.url
); );
} }

View File

@ -0,0 +1,39 @@
import { YouTubeVideo } from "../classes/Video";
export interface LiveStreamData {
isLive: boolean;
dashManifestUrl: string | null
hlsManifestUrl: string | null
}
export interface formatData {
itag: number;
mimeType: string
bitrate: number
width: number
height: number
lastModified: string
contentLength: string
quality: string
fps: number
qualityLabel: string
projectionType: string
averageBitrate: number
audioQuality: string
approxDurationMs: string
audioSampleRate: string
audioChannels: number
url : string
signatureCipher : string;
cipher : string;
loudnessDb : number;
targetDurationSec : number;
}
export interface InfoData{
LiveStreamData : LiveStreamData
html5player : string
format : Partial<formatData>[]
video_details : YouTubeVideo
related_videos: string[]
}

View File

@ -2,7 +2,7 @@ import { ProxyOptions as Proxy, request } from './../../Request/index';
import { format_decipher } from './cipher'; import { format_decipher } from './cipher';
import { YouTubeVideo } from '../classes/Video'; import { YouTubeVideo } from '../classes/Video';
import { YouTubePlayList } from '../classes/Playlist'; import { YouTubePlayList } from '../classes/Playlist';
import { InfoData } from '../stream'; import { InfoData } from './constants';
interface InfoOptions { interface InfoOptions {
proxy?: Proxy[]; proxy?: Proxy[];
@ -79,7 +79,7 @@ export function extractID(url: string): string {
* @param options cookie and proxy parameters to add * @param options cookie and proxy parameters to add
* @returns Data containing video_details, LiveStreamData and formats of video url. * @returns Data containing video_details, LiveStreamData and formats of video url.
*/ */
export async function video_basic_info(url: string, options: InfoOptions = {}) { export async function video_basic_info(url: string, options: InfoOptions = {}) : Promise<InfoData> {
let body: string; let body: string;
if (options.htmldata) { if (options.htmldata) {
body = url; body = url;
@ -187,7 +187,7 @@ function parseSeconds(seconds: number): string {
* @param options cookie and proxy parameters to add * @param options cookie and proxy parameters to add
* @returns Data containing video_details, LiveStreamData and formats of video url. * @returns Data containing video_details, LiveStreamData and formats of video url.
*/ */
export async function video_info(url: string, options: InfoOptions = {}) { export async function video_info(url: string, options: InfoOptions = {}): Promise<InfoData> {
const data = await video_basic_info(url, options); const data = await video_basic_info(url, options);
if (data.LiveStreamData.isLive === true && data.LiveStreamData.hlsManifestUrl !== null) { if (data.LiveStreamData.isLive === true && data.LiveStreamData.hlsManifestUrl !== null) {
return data; return data;

View File

@ -11,7 +11,7 @@ export {
} from './YouTube'; } from './YouTube';
export { spotify, sp_validate, refreshToken, is_expired, Spotify } from './Spotify'; export { spotify, sp_validate, refreshToken, is_expired, Spotify } from './Spotify';
export { soundcloud, so_validate, SoundCloud, SoundCloudStream, getFreeClientID } from './SoundCloud'; export { soundcloud, so_validate, SoundCloud, SoundCloudStream, getFreeClientID } from './SoundCloud';
export { deezer, dz_validate, dz_search, dz_advanced_track_search, Deezer } from './Deezer'; export { deezer, dz_validate, dz_advanced_track_search, Deezer } from './Deezer';
export { setToken } from './token'; export { setToken } from './token';
enum AudioPlayerStatus { enum AudioPlayerStatus {
@ -30,6 +30,7 @@ interface SearchOptions {
soundcloud?: 'tracks' | 'playlists' | 'albums'; soundcloud?: 'tracks' | 'playlists' | 'albums';
deezer?: 'track' | 'playlist' | 'album'; deezer?: 'track' | 'playlist' | 'album';
}; };
fuzzy?: boolean;
} }
import readline from 'node:readline'; import readline from 'node:readline';
@ -46,11 +47,17 @@ import {
} from '.'; } from '.';
import { SpotifyAuthorize, sp_search } from './Spotify'; import { SpotifyAuthorize, sp_search } from './Spotify';
import { check_id, so_search, stream as so_stream, stream_from_info as so_stream_info } from './SoundCloud'; import { check_id, so_search, stream as so_stream, stream_from_info as so_stream_info } from './SoundCloud';
import { InfoData, stream as yt_stream, StreamOptions, stream_from_info as yt_stream_info } from './YouTube/stream'; import { stream as yt_stream, StreamOptions, stream_from_info as yt_stream_info } from './YouTube/stream';
import { SoundCloudTrack } from './SoundCloud/classes'; import { SoundCloudPlaylist, SoundCloudTrack } from './SoundCloud/classes';
import { yt_search } from './YouTube/search'; import { yt_search } from './YouTube/search';
import { EventEmitter } from 'stream'; import { EventEmitter } from 'stream';
import { Deezer, dz_search, dz_validate } from './Deezer'; import { Deezer, dz_search, dz_validate } from './Deezer';
import { InfoData } from './YouTube/utils/constants';
import { YouTubeVideo } from './YouTube/classes/Video';
import { YouTubePlayList } from './YouTube/classes/Playlist';
import { YouTubeChannel } from './YouTube/classes/Channel';
import { SpotifyAlbum, SpotifyPlaylist, SpotifyTrack } from './Spotify/classes';
import { DeezerAlbum, DeezerPlaylist, DeezerTrack } from './Deezer/classes';
/** /**
* Main stream Command for streaming through various sources * Main stream Command for streaming through various sources
* @param url The video / track url to make stream of * @param url The video / track url to make stream of
@ -79,7 +86,21 @@ export async function stream(url: string, options: StreamOptions = {}): Promise<
* @param query string to search. * @param query string to search.
* @param options contains limit and source to choose. * @param options contains limit and source to choose.
* @returns Array of YouTube or Spotify or SoundCloud or Deezer * @returns Array of YouTube or Spotify or SoundCloud or Deezer
deezer?: 'track' | 'playlist' | 'album';
*/ */
export async function search( query: string, options: { source : { deezer : "album" } } & SearchOptions) : Promise<DeezerAlbum[]>;
export async function search( query: string, options: { source : { deezer : "playlist" } } & SearchOptions) : Promise<DeezerPlaylist[]>;
export async function search( query: string, options: { source : { deezer : "track" } } & SearchOptions) : Promise<DeezerTrack[]>;
export async function search( query: string, options: { source : { soundcloud : "albums" } } & SearchOptions) : Promise<SoundCloudPlaylist[]>;
export async function search( query: string, options: { source : { soundcloud : "playlists" } } & SearchOptions) : Promise<SoundCloudPlaylist[]>;
export async function search( query: string, options: { source : { soundcloud : "tracks" } } & SearchOptions) : Promise<SoundCloudTrack[]>;
export async function search( query: string, options: { source : { spotify : "album" } } & SearchOptions) : Promise<SpotifyAlbum[]>;
export async function search( query: string, options: { source : { spotify : "playlist" } } & SearchOptions) : Promise<SpotifyPlaylist[]>;
export async function search( query: string, options: { source : { spotify : "track" } } & SearchOptions) : Promise<SpotifyTrack[]>;
export async function search( query: string, options: { source : { youtube : "channel" } } & SearchOptions) : Promise<YouTubeChannel[]>;
export async function search( query: string, options: { source : { youtube : "playlist" } } & SearchOptions) : Promise<YouTubePlayList[]>;
export async function search( query: string, options: { source : { youtube : "video" } } & SearchOptions) : Promise<YouTubeVideo[]>;
export async function search( export async function search(
query: string, query: string,
options: SearchOptions = {} options: SearchOptions = {}
@ -90,7 +111,7 @@ export async function search(
else if (options.source.spotify) return await sp_search(query, options.source.spotify, options.limit); else if (options.source.spotify) return await sp_search(query, options.source.spotify, options.limit);
else if (options.source.soundcloud) return await so_search(query, options.source.soundcloud, options.limit); else if (options.source.soundcloud) return await so_search(query, options.source.soundcloud, options.limit);
else if (options.source.deezer) else if (options.source.deezer)
return await dz_search(query, { limit: options.limit, type: options.source.deezer }); return await dz_search(query, { limit: options.limit, type: options.source.deezer, fuzzy : options.fuzzy });
else throw new Error('Not possible to reach Here LOL. Easter Egg of play-dl if someone get this.'); else throw new Error('Not possible to reach Here LOL. Easter Egg of play-dl if someone get this.');
} }