<pre id="source" class="sh_javascript sh_sourceCode"><span class="sh_comment">// ==UserScript==</span><br /><span class="sh_comment">// @name	    	YouTube Video and Audio Downloader</span><br /><span class="sh_comment">// @description 	Download your favorite YouTube videos in a variety of popular formats.</span><br /><span class="sh_comment">// @include	    	http://*youtube.com/watch*</span><br /><span class="sh_comment">// @version	    	1.3</span><br /><span class="sh_comment">// @author	    	Adam JD</span><br /><span class="sh_comment">// ==/UserScript==</span><br /><br /><span class="sh_keyword">function</span> <span class="sh_function">$</span><span class="sh_symbol">(</span>i<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />	<span class="sh_keyword">return</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementById</span><span class="sh_symbol">(</span>i<span class="sh_symbol">);</span><br /><span class="sh_cbracket">}</span><br /><br /><span class="sh_keyword">var</span> Downloader <span class="sh_symbol">=</span> <span class="sh_cbracket">{</span><br /> 	fmt_list <span class="sh_symbol">:</span> <span class="sh_symbol">[</span><br />		<span class="sh_cbracket">{</span> name <span class="sh_symbol">:</span> <span class="sh_string">&quot;FLV&quot;</span><span class="sh_symbol">,</span> fmtv <span class="sh_symbol">:</span> <span class="sh_number">5</span>  <span class="sh_cbracket">}</span><span class="sh_symbol">,</span> <br />		<span class="sh_cbracket">{</span> name <span class="sh_symbol">:</span> <span class="sh_string">&quot;MP4&quot;</span><span class="sh_symbol">,</span> fmtv <span class="sh_symbol">:</span> <span class="sh_number">18</span> <span class="sh_cbracket">}</span><span class="sh_symbol">,</span><br />		<span class="sh_cbracket">{</span> name <span class="sh_symbol">:</span> <span class="sh_string">&quot;3GP&quot;</span><span class="sh_symbol">,</span> fmtv <span class="sh_symbol">:</span> <span class="sh_number">17</span> <span class="sh_cbracket">}</span><br />	<span class="sh_symbol">],</span><br />	<br />	vid_attr <span class="sh_symbol">:</span> <span class="sh_cbracket">{</span> <br />		base <span class="sh_symbol">:</span> <span class="sh_keyword">function</span><span class="sh_symbol">()</span> <span class="sh_cbracket">{</span><br />			<span class="sh_keyword">var</span> scripts <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">&quot;SCRIPT&quot;</span><span class="sh_symbol">);</span><br />			<span class="sh_keyword">var</span> found <span class="sh_symbol">=</span> <span class="sh_string">&quot;no&quot;</span><span class="sh_symbol">;</span><br />			<br />			<span class="sh_keyword">for</span> <span class="sh_symbol">(</span><span class="sh_keyword">var</span> s <span class="sh_keyword">in</span> scripts<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />				<span class="sh_keyword">if</span> <span class="sh_symbol">(</span>scripts<span class="sh_symbol">[</span>s<span class="sh_symbol">].</span>innerHTML<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;'VIDEO_ID': '&quot;</span><span class="sh_symbol">)</span> <span class="sh_symbol">&gt;</span> <span class="sh_symbol">-</span><span class="sh_number">1</span> <span class="sh_symbol">&amp;&amp;</span> found <span class="sh_symbol">==</span> <span class="sh_string">&quot;no&quot;</span><span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />					found <span class="sh_symbol">=</span> scripts<span class="sh_symbol">[</span>s<span class="sh_symbol">];</span><br />				<span class="sh_cbracket">}</span><br />			<span class="sh_cbracket">}</span><br />			<br />			<span class="sh_keyword">return</span> found<span class="sh_symbol">;</span><br />		<span class="sh_cbracket">}</span><span class="sh_symbol">,</span><br />		<br />		id <span class="sh_symbol">:</span> <span class="sh_keyword">function</span><span class="sh_symbol">()</span> <span class="sh_cbracket">{</span>			<br />			<span class="sh_keyword">var</span> j <span class="sh_symbol">=</span> <span class="sh_keyword">this</span><span class="sh_symbol">.</span><span class="sh_function">base</span><span class="sh_symbol">().</span>innerHTML<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;'VIDEO_ID': '&quot;</span><span class="sh_symbol">)</span> <span class="sh_symbol">+</span> <span class="sh_string">&quot;'VIDEO_ID': '&quot;</span><span class="sh_symbol">.</span>length<span class="sh_symbol">;</span><br />			<span class="sh_keyword">var</span> k <span class="sh_symbol">=</span> <span class="sh_keyword">this</span><span class="sh_symbol">.</span><span class="sh_function">base</span><span class="sh_symbol">().</span>innerHTML<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;'&quot;</span><span class="sh_symbol">,</span> j<span class="sh_number">+1</span><span class="sh_symbol">);</span><br />			<br />			<span class="sh_keyword">return</span> <span class="sh_keyword">this</span><span class="sh_symbol">.</span><span class="sh_function">base</span><span class="sh_symbol">().</span>innerHTML<span class="sh_symbol">.</span><span class="sh_function">substring</span><span class="sh_symbol">(</span>j<span class="sh_symbol">,</span> k<span class="sh_symbol">);</span>	<br />		<span class="sh_cbracket">}</span><span class="sh_symbol">,</span> <br />		<br />		t <span class="sh_symbol">:</span> <span class="sh_keyword">function</span><span class="sh_symbol">()</span> <span class="sh_cbracket">{</span><br />			<span class="sh_keyword">var</span> m <span class="sh_symbol">=</span> <span class="sh_keyword">this</span><span class="sh_symbol">.</span><span class="sh_function">base</span><span class="sh_symbol">().</span>innerHTML<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">'&quot;t&quot;: &quot;'</span><span class="sh_symbol">)</span> <span class="sh_symbol">+</span> <span class="sh_string">'&quot;t&quot;: &quot;'</span><span class="sh_symbol">.</span>length<span class="sh_symbol">;</span><br />			<span class="sh_keyword">var</span> n <span class="sh_symbol">=</span> <span class="sh_keyword">this</span><span class="sh_symbol">.</span><span class="sh_function">base</span><span class="sh_symbol">().</span>innerHTML<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">'&quot;'</span><span class="sh_symbol">,</span> m <span class="sh_symbol">+</span> <span class="sh_number">1</span><span class="sh_symbol">);</span><br />			<br />			<span class="sh_keyword">return</span> <span class="sh_keyword">this</span><span class="sh_symbol">.</span><span class="sh_function">base</span><span class="sh_symbol">().</span>innerHTML<span class="sh_symbol">.</span><span class="sh_function">substring</span><span class="sh_symbol">(</span>m<span class="sh_symbol">,</span> n<span class="sh_symbol">);</span>			<br />		<span class="sh_cbracket">}</span><span class="sh_symbol">,</span><br />		<br />		hd <span class="sh_symbol">:</span> <span class="sh_keyword">function</span><span class="sh_symbol">()</span> <span class="sh_cbracket">{</span><br />			<span class="sh_keyword">var</span> o <span class="sh_symbol">=</span> <span class="sh_keyword">this</span><span class="sh_symbol">.</span><span class="sh_function">base</span><span class="sh_symbol">().</span>innerHTML<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;'IS_HD_AVAILABLE': &quot;</span><span class="sh_symbol">)</span> <span class="sh_symbol">+</span> <span class="sh_string">&quot;'IS_HD_AVAILABLE': &quot;</span><span class="sh_symbol">.</span>length<span class="sh_symbol">;</span><br />			<span class="sh_keyword">var</span> p <span class="sh_symbol">=</span> <span class="sh_keyword">this</span><span class="sh_symbol">.</span><span class="sh_function">base</span><span class="sh_symbol">().</span>innerHTML<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;,&quot;</span><span class="sh_symbol">,</span> o<span class="sh_symbol">);</span><br />			<br />			<span class="sh_keyword">return</span> <span class="sh_keyword">new</span> <span class="sh_function">String</span><span class="sh_symbol">(</span><span class="sh_keyword">this</span><span class="sh_symbol">.</span><span class="sh_function">base</span><span class="sh_symbol">().</span>innerHTML<span class="sh_symbol">.</span><span class="sh_function">substring</span><span class="sh_symbol">(</span>o<span class="sh_symbol">,</span> p<span class="sh_symbol">));</span>			<br />		<span class="sh_cbracket">}</span><br />	 <span class="sh_cbracket">}</span><span class="sh_symbol">,</span><br /><br />	_createHolder <span class="sh_symbol">:</span> <span class="sh_keyword">function</span><span class="sh_symbol">(</span>attr<span class="sh_symbol">,</span> content<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />		h <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">createElement</span><span class="sh_symbol">(</span><span class="sh_string">&quot;div&quot;</span><span class="sh_symbol">);</span><br />		h <span class="sh_symbol">.</span> innerHTML <span class="sh_symbol">=</span> <span class="sh_keyword">typeof</span> content <span class="sh_symbol">==</span> <span class="sh_string">&quot;function&quot;</span> <span class="sh_symbol">?</span> <span class="sh_function">content</span><span class="sh_symbol">()</span> <span class="sh_symbol">:</span> content<span class="sh_symbol">;</span><br />		<br />		<span class="sh_keyword">for</span> <span class="sh_symbol">(</span><span class="sh_keyword">var</span> t <span class="sh_keyword">in</span> attr<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />			<span class="sh_keyword">if</span> <span class="sh_symbol">(</span>attr<span class="sh_symbol">[</span>t<span class="sh_symbol">])</span><br />				h<span class="sh_symbol">.</span><span class="sh_function">setAttribute</span><span class="sh_symbol">(</span>t<span class="sh_symbol">,</span> attr<span class="sh_symbol">[</span>t<span class="sh_symbol">]);</span><br />		<span class="sh_cbracket">}</span>	<br /><br />		<span class="sh_function">$</span><span class="sh_symbol">(</span><span class="sh_string">&quot;watch-this-vid-info&quot;</span><span class="sh_symbol">).</span><span class="sh_function">insertBefore</span><span class="sh_symbol">(</span>h<span class="sh_symbol">,</span> <span class="sh_function">$</span><span class="sh_symbol">(</span><span class="sh_string">&quot;watch-this-vid-info&quot;</span><span class="sh_symbol">).</span>firstChild<span class="sh_symbol">);</span>	<br />	<span class="sh_cbracket">}</span><span class="sh_symbol">,</span><br />	<br />	_convertAudio <span class="sh_symbol">:</span> <span class="sh_keyword">function</span><span class="sh_symbol">(</span>a<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />	 	<br />		<span class="sh_function">$</span><span class="sh_symbol">(</span><span class="sh_string">&quot;download_holder&quot;</span><span class="sh_symbol">).</span>innerHTML <span class="sh_symbol">+=</span> <span class="sh_symbol">(</span><span class="sh_string">&quot;&amp;nbsp; &amp;bull; &amp;nbsp;&quot;</span><span class="sh_symbol">);</span><br />		<span class="sh_function">$</span><span class="sh_symbol">(</span><span class="sh_string">&quot;download_holder&quot;</span><span class="sh_symbol">).</span>innerHTML <span class="sh_symbol">+=</span> <span class="sh_symbol">(</span><span class="sh_string">&quot;&lt;span id='audio_rip'&gt;Ripping Audio...&lt;/span&gt;&quot;</span><span class="sh_symbol">);</span><br />		<br />		<span class="sh_keyword">this</span><span class="sh_symbol">.</span>timers<span class="sh_symbol">.</span><span class="sh_function">_Load</span><span class="sh_symbol">(</span><span class="sh_string">'Ripping Audio'</span><span class="sh_symbol">);</span>  <br />		<br />		<span class="sh_keyword">var</span> RIP_START <span class="sh_symbol">=</span> <span class="sh_symbol">(</span><span class="sh_keyword">new</span> Date<span class="sh_symbol">).</span><span class="sh_function">getTime</span><span class="sh_symbol">();</span><br />		<span class="sh_keyword">var</span> STG_DELAY <span class="sh_symbol">=</span> <span class="sh_number">4200</span><span class="sh_symbol">;</span><br />		<br />		<span class="sh_function">GM_xmlhttpRequest</span><span class="sh_symbol">(</span><span class="sh_cbracket">{</span><br />			method <span class="sh_symbol">:</span> <span class="sh_string">'GET'</span><span class="sh_symbol">,</span><br />			url    <span class="sh_symbol">:</span> <span class="sh_string">'http://www.abcyoutube.com/watch?v='</span> <span class="sh_symbol">+</span> Downloader<span class="sh_symbol">.</span>vid_attr<span class="sh_symbol">.</span><span class="sh_function">id</span><span class="sh_symbol">(),</span><br />			onload <span class="sh_symbol">:</span> <span class="sh_keyword">function</span> <span class="sh_symbol">(</span>response<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />				<span class="sh_keyword">var</span> RIP_DELAY <span class="sh_symbol">=</span> <span class="sh_symbol">(</span><span class="sh_keyword">new</span> Date<span class="sh_symbol">).</span><span class="sh_function">getTime</span><span class="sh_symbol">()</span> <span class="sh_symbol">-</span> RIP_START<span class="sh_symbol">;</span><br />					RIP_DELAY <span class="sh_symbol">=</span> RIP_DELAY <span class="sh_symbol">&lt;</span> STG_DELAY <span class="sh_symbol">?</span> STG_DELAY <span class="sh_symbol">-</span> RIP_DELAY <span class="sh_symbol">:</span> <span class="sh_number">0</span><span class="sh_symbol">;</span>	<br />				<br />				<span class="sh_function">setTimeout</span><span class="sh_symbol">(</span><span class="sh_keyword">function</span><span class="sh_symbol">()</span><span class="sh_cbracket">{</span>					 <br />					<span class="sh_function">$</span><span class="sh_symbol">(</span><span class="sh_string">&quot;audio_rip&quot;</span><span class="sh_symbol">).</span>innerHTML <span class="sh_symbol">=</span> <span class="sh_string">&quot;Converting Audio to MP3...&quot;</span><span class="sh_symbol">;</span><br />					Downloader<span class="sh_symbol">.</span>timers<span class="sh_symbol">.</span><span class="sh_function">_Load</span><span class="sh_symbol">(</span><span class="sh_string">'Converting Audio to MP3'</span><span class="sh_symbol">);</span> <br />					<br />					<span class="sh_keyword">var</span> a <span class="sh_symbol">=</span> response<span class="sh_symbol">.</span>responseText<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;download.php&quot;</span><span class="sh_symbol">);</span><br />					<span class="sh_keyword">var</span> b <span class="sh_symbol">=</span> response<span class="sh_symbol">.</span>responseText<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;download.php&quot;</span><span class="sh_symbol">,</span> a <span class="sh_symbol">+</span> <span class="sh_number">1</span><span class="sh_symbol">);</span><br />					<span class="sh_keyword">var</span> c <span class="sh_symbol">=</span> response<span class="sh_symbol">.</span>responseText<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;site=youtube&quot;</span><span class="sh_symbol">,</span> b<span class="sh_symbol">);</span><br />					<span class="sh_keyword">var</span> d <span class="sh_symbol">=</span> response<span class="sh_symbol">.</span>responseText<span class="sh_symbol">.</span><span class="sh_function">substring</span><span class="sh_symbol">(</span>b<span class="sh_symbol">,</span> c<span class="sh_symbol">);</span><br />						d <span class="sh_symbol">=</span> d <span class="sh_symbol">+</span> <span class="sh_string">&quot;site=youtube&quot;</span><span class="sh_symbol">;</span><br />					<br />					<span class="sh_keyword">var</span> CON_START <span class="sh_symbol">=</span> <span class="sh_symbol">(</span><span class="sh_keyword">new</span> Date<span class="sh_symbol">).</span><span class="sh_function">getTime</span><span class="sh_symbol">();</span><br />					<br />					<span class="sh_function">GM_xmlhttpRequest</span><span class="sh_symbol">(</span><span class="sh_cbracket">{</span><br />						method <span class="sh_symbol">:</span> <span class="sh_string">'GET'</span><span class="sh_symbol">,</span><br />						url    <span class="sh_symbol">:</span> <span class="sh_string">'http://www.abcyoutube.com/'</span> <span class="sh_symbol">+</span> d<span class="sh_symbol">,</span><br />						onload <span class="sh_symbol">:</span> <span class="sh_keyword">function</span> <span class="sh_symbol">(</span>r<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />							<span class="sh_keyword">var</span> CON_DELAY <span class="sh_symbol">=</span> <span class="sh_symbol">(</span><span class="sh_keyword">new</span> Date<span class="sh_symbol">).</span><span class="sh_function">getTime</span><span class="sh_symbol">()</span> <span class="sh_symbol">-</span> CON_START<span class="sh_symbol">;</span><br />								CON_DELAY <span class="sh_symbol">=</span> CON_DELAY <span class="sh_symbol">&lt;</span> STG_DELAY <span class="sh_symbol">?</span> STG_DELAY <span class="sh_symbol">-</span> CON_DELAY <span class="sh_symbol">:</span> <span class="sh_number">0</span><span class="sh_symbol">;</span> <br />													<br />							<span class="sh_function">setTimeout</span><span class="sh_symbol">(</span><span class="sh_keyword">function</span><span class="sh_symbol">()</span><span class="sh_cbracket">{</span><br />								Downloader<span class="sh_symbol">.</span>timers<span class="sh_symbol">.</span><span class="sh_function">_Kill</span><span class="sh_symbol">(</span><span class="sh_string">'rip'</span><span class="sh_symbol">);</span><br />								<span class="sh_function">$</span><span class="sh_symbol">(</span><span class="sh_string">&quot;audio_rip&quot;</span><span class="sh_symbol">).</span>innerHTML <span class="sh_symbol">=</span> Downloader<span class="sh_symbol">.</span><span class="sh_function">_debugAudio</span><span class="sh_symbol">(</span>r<span class="sh_symbol">.</span>responseText<span class="sh_symbol">);</span><br />							<span class="sh_cbracket">}</span><span class="sh_symbol">,</span> CON_DELAY<span class="sh_symbol">);</span><br />						<span class="sh_cbracket">}</span><br />					<span class="sh_cbracket">}</span><span class="sh_symbol">);</span>	<br />				<span class="sh_cbracket">}</span><span class="sh_symbol">,</span> RIP_DELAY<span class="sh_symbol">);</span><br />			<span class="sh_cbracket">}</span><br />		<span class="sh_cbracket">}</span><span class="sh_symbol">);</span><br />	<span class="sh_cbracket">}</span><span class="sh_symbol">,</span> <br />	<br />	_debugAudio <span class="sh_symbol">:</span> <span class="sh_keyword">function</span><span class="sh_symbol">(</span>s<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />		<span class="sh_keyword">var</span> a <span class="sh_symbol">=</span> s<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;../c&quot;</span><span class="sh_symbol">)</span> <span class="sh_symbol">+</span> <span class="sh_number">3</span><span class="sh_symbol">;</span><br />		<span class="sh_keyword">var</span> b <span class="sh_symbol">=</span> s<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;.mp3&quot;</span><span class="sh_symbol">);</span><br />		<span class="sh_keyword">var</span> c <span class="sh_symbol">=</span> s<span class="sh_symbol">.</span><span class="sh_function">substring</span><span class="sh_symbol">(</span>a<span class="sh_symbol">,</span> b<span class="sh_symbol">);</span> <span class="sh_comment">//     converted{n}/${17}</span><br />		<span class="sh_keyword">var</span> d <span class="sh_symbol">=</span> <span class="sh_string">&quot;&lt;a href='http://www.abcyoutube.com/&quot;</span><span class="sh_symbol">+</span> c <span class="sh_symbol">+</span><span class="sh_string">&quot;.mp3'&gt;Download MP3&lt;/a&gt;&quot;</span><span class="sh_symbol">;</span><br />		<span class="sh_keyword">var</span>	e <span class="sh_symbol">=</span> <span class="sh_keyword">function</span><span class="sh_symbol">(</span>t<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />			<span class="sh_keyword">return</span> <span class="sh_string">&quot;&lt;a href='' style='color:red;' onclick=</span><span class="sh_specialchar">&quot;</span><span class="sh_string">alert('&quot;</span><span class="sh_symbol">+</span> t <span class="sh_symbol">+</span><span class="sh_string">&quot;');return false;</span><span class="sh_specialchar">&quot;</span><span class="sh_string">&gt;ERROR: Download MP3&lt;/a&gt;&quot;</span><span class="sh_symbol">;</span>			<br />		<span class="sh_cbracket">}</span><br /><br />		<span class="sh_keyword">if</span> <span class="sh_symbol">(</span>s<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;The File is very&quot;</span><span class="sh_symbol">)</span> <span class="sh_symbol">&gt;</span> <span class="sh_symbol">-</span><span class="sh_number">1</span><span class="sh_symbol">)</span> <span class="sh_cbracket">{</span>		<br />			<span class="sh_keyword">return</span> <span class="sh_function">e</span><span class="sh_symbol">(</span><span class="sh_string">&quot;ERROR: The video size is too large to convert!&quot;</span><span class="sh_symbol">);</span><br />		<span class="sh_cbracket">}</span><br />		<br />		<span class="sh_keyword">if</span> <span class="sh_symbol">(</span>s<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;Sorry, the URL&quot;</span><span class="sh_symbol">)</span> <span class="sh_symbol">&gt;</span> <span class="sh_symbol">-</span><span class="sh_number">1</span><span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />			<span class="sh_keyword">return</span> <span class="sh_function">e</span><span class="sh_symbol">(</span><span class="sh_string">&quot;ERROR: Failed to connect to the conversion server!&quot;</span><span class="sh_symbol">);</span><br />		<span class="sh_cbracket">}</span><br />		<br />		<span class="sh_keyword">if</span> <span class="sh_symbol">(</span>s<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;memory&quot;</span><span class="sh_symbol">)</span> <span class="sh_symbol">&gt;</span> <span class="sh_symbol">-</span><span class="sh_number">1</span><span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />			<span class="sh_keyword">return</span> <span class="sh_function">e</span><span class="sh_symbol">(</span><span class="sh_string">&quot;ERROR: Unknown error, </span><span class="sh_specialchar">&quot;</span><span class="sh_string">Out of Memory (byte allocation failure)</span><span class="sh_specialchar">&quot;</span><span class="sh_string">&quot;</span><span class="sh_symbol">);</span><br />		<span class="sh_cbracket">}</span><br />		<br />		<span class="sh_keyword">if</span> <span class="sh_symbol">(</span>s<span class="sh_symbol">.</span><span class="sh_function">indexOf</span><span class="sh_symbol">(</span><span class="sh_string">&quot;Fatal &quot;</span><span class="sh_symbol">)</span> <span class="sh_symbol">&gt;</span> <span class="sh_symbol">-</span><span class="sh_number">1</span><span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />			<span class="sh_keyword">return</span> <span class="sh_function">e</span><span class="sh_symbol">(</span><span class="sh_string">&quot;ERROR: Unknown error. Terminating Conversion.&quot;</span><span class="sh_symbol">);</span><br />		<span class="sh_cbracket">}</span>	<br /><br />		<span class="sh_keyword">return</span> d<span class="sh_symbol">;</span><br />	<span class="sh_cbracket">}</span><span class="sh_symbol">,</span> <br />	<br />	timers <span class="sh_symbol">:</span> <span class="sh_cbracket">{</span><br />		_Load <span class="sh_symbol">:</span> <span class="sh_keyword">function</span><span class="sh_symbol">(</span>t<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />			<span class="sh_keyword">var</span> h <span class="sh_symbol">=</span> <span class="sh_function">$</span><span class="sh_symbol">(</span><span class="sh_string">&quot;audio_rip&quot;</span><span class="sh_symbol">).</span>innerHTML<span class="sh_symbol">;</span><br />			<span class="sh_keyword">var</span> p <span class="sh_symbol">=</span> <span class="sh_symbol">[</span><br />				<span class="sh_symbol">[</span>t <span class="sh_symbol">+</span> <span class="sh_string">&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;</span><span class="sh_symbol">,</span> t <span class="sh_symbol">+</span> <span class="sh_string">&quot;.&amp;nbsp;&amp;nbsp;&quot;</span><span class="sh_symbol">],</span><br />				<span class="sh_symbol">[</span>t <span class="sh_symbol">+</span> <span class="sh_string">&quot;.&amp;nbsp;&amp;nbsp;&quot;</span><span class="sh_symbol">,</span> t <span class="sh_symbol">+</span> <span class="sh_string">&quot;..&amp;nbsp;&quot;</span><span class="sh_symbol">],</span><br />				<span class="sh_symbol">[</span>t <span class="sh_symbol">+</span> <span class="sh_string">&quot;..&amp;nbsp;&quot;</span><span class="sh_symbol">,</span> t <span class="sh_symbol">+</span> <span class="sh_string">&quot;...&quot;</span><span class="sh_symbol">],</span><br />				<span class="sh_symbol">[</span>t <span class="sh_symbol">+</span> <span class="sh_string">&quot;...&quot;</span><span class="sh_symbol">,</span> t <span class="sh_symbol">+</span> <span class="sh_string">&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;</span><span class="sh_symbol">]</span><br />			<span class="sh_symbol">];</span><br />			<br />			<span class="sh_keyword">switch</span> <span class="sh_symbol">(</span>h<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />				<span class="sh_keyword">case</span> p<span class="sh_symbol">[</span><span class="sh_number">0</span><span class="sh_symbol">][</span><span class="sh_number">0</span><span class="sh_symbol">]:</span> <span class="sh_function">$</span><span class="sh_symbol">(</span><span class="sh_string">&quot;audio_rip&quot;</span><span class="sh_symbol">).</span>innerHTML <span class="sh_symbol">=</span> p<span class="sh_symbol">[</span><span class="sh_number">0</span><span class="sh_symbol">][</span><span class="sh_number">1</span><span class="sh_symbol">];</span> <span class="sh_keyword">break</span><span class="sh_symbol">;</span><br />				<span class="sh_keyword">case</span> p<span class="sh_symbol">[</span><span class="sh_number">1</span><span class="sh_symbol">][</span><span class="sh_number">0</span><span class="sh_symbol">]:</span> <span class="sh_function">$</span><span class="sh_symbol">(</span><span class="sh_string">&quot;audio_rip&quot;</span><span class="sh_symbol">).</span>innerHTML <span class="sh_symbol">=</span> p<span class="sh_symbol">[</span><span class="sh_number">1</span><span class="sh_symbol">][</span><span class="sh_number">1</span><span class="sh_symbol">];</span> <span class="sh_keyword">break</span><span class="sh_symbol">;</span><br />				<span class="sh_keyword">case</span> p<span class="sh_symbol">[</span><span class="sh_number">2</span><span class="sh_symbol">][</span><span class="sh_number">0</span><span class="sh_symbol">]:</span> <span class="sh_function">$</span><span class="sh_symbol">(</span><span class="sh_string">&quot;audio_rip&quot;</span><span class="sh_symbol">).</span>innerHTML <span class="sh_symbol">=</span> p<span class="sh_symbol">[</span><span class="sh_number">2</span><span class="sh_symbol">][</span><span class="sh_number">1</span><span class="sh_symbol">];</span> <span class="sh_keyword">break</span><span class="sh_symbol">;</span><br />				<span class="sh_keyword">case</span> p<span class="sh_symbol">[</span><span class="sh_number">3</span><span class="sh_symbol">][</span><span class="sh_number">0</span><span class="sh_symbol">]:</span> <span class="sh_function">$</span><span class="sh_symbol">(</span><span class="sh_string">&quot;audio_rip&quot;</span><span class="sh_symbol">).</span>innerHTML <span class="sh_symbol">=</span> p<span class="sh_symbol">[</span><span class="sh_number">3</span><span class="sh_symbol">][</span><span class="sh_number">1</span><span class="sh_symbol">];</span> <span class="sh_keyword">break</span><span class="sh_symbol">;</span><br />			<span class="sh_cbracket">}</span><br />		<br />			Downloader<span class="sh_symbol">.</span>timers<span class="sh_symbol">[</span><span class="sh_string">'rip'</span><span class="sh_symbol">]</span> <span class="sh_symbol">=</span> <span class="sh_function">setTimeout</span><span class="sh_symbol">(</span><span class="sh_keyword">function</span><span class="sh_symbol">()</span><span class="sh_cbracket">{</span> Downloader<span class="sh_symbol">.</span>timers<span class="sh_symbol">.</span><span class="sh_function">_Load</span><span class="sh_symbol">(</span>t<span class="sh_symbol">)</span> <span class="sh_cbracket">}</span><span class="sh_symbol">,</span> <span class="sh_number">400</span><span class="sh_symbol">);</span><br />		<span class="sh_cbracket">}</span><span class="sh_symbol">,</span><br />		<br />		_Kill <span class="sh_symbol">:</span> <span class="sh_keyword">function</span><span class="sh_symbol">(</span>n<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />			<span class="sh_function">clearTimeout</span><span class="sh_symbol">(</span><span class="sh_keyword">this</span><span class="sh_symbol">[</span>n<span class="sh_symbol">]);</span><br />		<span class="sh_cbracket">}</span><br />	<span class="sh_cbracket">}</span><br /><span class="sh_cbracket">}</span><span class="sh_symbol">;</span><br /><br /><span class="sh_comment">// Initialise //</span><br /><br />Downloader<span class="sh_symbol">.</span><span class="sh_function">_createHolder</span><span class="sh_symbol">(</span><span class="sh_cbracket">{</span><br />	id    <span class="sh_symbol">:</span> <span class="sh_string">&quot;download_holder&quot;</span><span class="sh_symbol">,</span><br />	style <span class="sh_symbol">:</span> <span class="sh_string">&quot;border:1px solid #e8e8e8;font-weight:bold;padding:4.5px;margin-top:5px;text-align:center;&quot;</span><br /><span class="sh_cbracket">}</span><span class="sh_symbol">,</span> <span class="sh_keyword">function</span><span class="sh_symbol">()</span> <span class="sh_cbracket">{</span>	<br /> 	<span class="sh_keyword">if</span> <span class="sh_symbol">(</span>Downloader<span class="sh_symbol">.</span>vid_attr<span class="sh_symbol">.</span><span class="sh_function">hd</span><span class="sh_symbol">()</span> <span class="sh_symbol">==</span> <span class="sh_string">&quot;true&quot;</span><span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />		Downloader<span class="sh_symbol">.</span>fmt_list<span class="sh_symbol">.</span><span class="sh_function">push</span><span class="sh_symbol">(</span><span class="sh_cbracket">{</span> name <span class="sh_symbol">:</span> <span class="sh_string">&quot;MP4 HD&quot;</span><span class="sh_symbol">,</span> fmtv <span class="sh_symbol">:</span> <span class="sh_number">22</span> <span class="sh_cbracket">}</span><span class="sh_symbol">);</span><br />	<span class="sh_cbracket">}</span><br />	<br />	<br />	<span class="sh_keyword">var</span> r <span class="sh_symbol">=</span> <span class="sh_string">&quot;&quot;</span><span class="sh_symbol">;</span><br />	<br />	<span class="sh_keyword">for</span> <span class="sh_symbol">(</span><span class="sh_keyword">var</span> v <span class="sh_keyword">in</span> Downloader<span class="sh_symbol">.</span>fmt_list<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span><br />		r <span class="sh_symbol">+=</span> <span class="sh_symbol">(</span>v <span class="sh_symbol">&gt;</span> <span class="sh_number">0</span><span class="sh_symbol">)</span> <span class="sh_symbol">?</span> <span class="sh_string">&quot;&amp;nbsp; &amp;bull; &amp;nbsp;&quot;</span> <span class="sh_symbol">:</span> <span class="sh_string">&quot;&quot;</span><span class="sh_symbol">;</span><br />		r <span class="sh_symbol">+=</span> <span class="sh_string">&quot;&lt;a href='/get_video?video_id=&quot;</span><span class="sh_symbol">+</span> Downloader<span class="sh_symbol">.</span>vid_attr<span class="sh_symbol">.</span><span class="sh_function">id</span><span class="sh_symbol">()</span> <span class="sh_symbol">+</span><span class="sh_string">&quot;&amp;t=&quot;</span><span class="sh_symbol">+</span> Downloader<span class="sh_symbol">.</span>vid_attr<span class="sh_symbol">.</span><span class="sh_function">t</span><span class="sh_symbol">()</span> <span class="sh_symbol">+</span><span class="sh_string">&quot;&amp;fmt=&quot;</span><span class="sh_symbol">+</span> Downloader<span class="sh_symbol">.</span>fmt_list<span class="sh_symbol">[</span>v<span class="sh_symbol">].</span>fmtv <span class="sh_symbol">+</span><span class="sh_string">&quot;'&gt;&quot;</span><span class="sh_symbol">;</span><br />		r <span class="sh_symbol">+=</span> <span class="sh_string">&quot;Download &quot;</span><span class="sh_symbol">+</span> Downloader<span class="sh_symbol">.</span>fmt_list<span class="sh_symbol">[</span>v<span class="sh_symbol">].</span>name <span class="sh_symbol">+</span><span class="sh_string">&quot;&lt;/a&gt;&quot;</span><span class="sh_symbol">;</span><br />	<span class="sh_cbracket">}</span><br />	<br />	<span class="sh_keyword">return</span> r<span class="sh_symbol">;</span><br /><span class="sh_cbracket">}</span><span class="sh_symbol">);</span><br /><br /><span class="sh_comment">// Audio Setup //</span><br /><br />Downloader<span class="sh_symbol">.</span><span class="sh_function">_convertAudio</span><span class="sh_symbol">();</span></pre>