From ddcb71c018ea969153f188831cc4d735c78e0a77 Mon Sep 17 00:00:00 2001 From: killer069 <65385476+killer069@users.noreply.github.com> Date: Tue, 4 Jan 2022 15:13:27 +0530 Subject: [PATCH] Seek issues fixed --- play-dl/YouTube/classes/SeekStream.ts | 12 +++++++----- play-dl/YouTube/classes/WebmSeeker.ts | 5 +++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/play-dl/YouTube/classes/SeekStream.ts b/play-dl/YouTube/classes/SeekStream.ts index 9b60e8c..62b60ef 100644 --- a/play-dl/YouTube/classes/SeekStream.ts +++ b/play-dl/YouTube/classes/SeekStream.ts @@ -97,7 +97,7 @@ export class SeekStream { if (!this.stream.headerparsed) { const stream = await request_stream(this.url, { headers: { - range: `bytes=0-1000` + range: `bytes=0-` } }).catch((err: Error) => err); @@ -112,10 +112,12 @@ export class SeekStream { this.request = stream; stream.pipe(this.stream, { end: false }); - stream.once('end', () => { - this.stream.state = WebmSeekerState.READING_DATA; - res(''); - }); + this.stream.once("headComplete", () => { + stream.unpipe(this.stream) + stream.destroy() + this.stream.state = WebmSeekerState.READING_DATA + res('') + }) } else res(''); }).catch((err) => err); if (parse instanceof Error) { diff --git a/play-dl/YouTube/classes/WebmSeeker.ts b/play-dl/YouTube/classes/WebmSeeker.ts index efef00b..9706d96 100644 --- a/play-dl/YouTube/classes/WebmSeeker.ts +++ b/play-dl/YouTube/classes/WebmSeeker.ts @@ -131,6 +131,11 @@ export class WebmSeeker extends Duplex { if (ebmlID.name === 'ebml') this.headfound = true; else return new Error('Failed to find EBML ID at start of stream.'); } + if(ebmlID.name === "cluster") { + this.emit("headComplete") + this.cursor = this.chunk.length + break; + } const data = this.chunk.slice( this.cursor + this.data_size, this.cursor + this.data_size + this.data_length