diff --git a/play-dl/YouTube/stream.ts b/play-dl/YouTube/stream.ts index 52a9621..648e3b3 100644 --- a/play-dl/YouTube/stream.ts +++ b/play-dl/YouTube/stream.ts @@ -85,19 +85,18 @@ export async function stream_from_info( let type: StreamType = final[0].codec === 'opus' && final[0].container === 'webm' ? StreamType.WebmOpus : StreamType.Arbitrary; await request_stream(`https://${new URL(final[0].url).host}/generate_204`); - if (options.seek) { - if (type === StreamType.WebmOpus) { - if (options.seek >= info.video_details.durationInSec || options.seek <= 0) - throw new Error(`Seeking beyond limit. [ 1 - ${info.video_details.durationInSec - 1}]`); - return new SeekStream( - final[0].url, - info.video_details.durationInSec, - final[0].indexRange.end, - Number(final[0].contentLength), - info.video_details.url, - options - ); - } else throw new Error('Seek is only supported in Webm Opus Files.'); + if (type === StreamType.WebmOpus) { + options.seek ??= 0 + if (options.seek >= info.video_details.durationInSec || options.seek < 0) + throw new Error(`Seeking beyond limit. [ 0 - ${info.video_details.durationInSec - 1}]`); + return new SeekStream( + final[0].url, + info.video_details.durationInSec, + final[0].indexRange.end, + Number(final[0].contentLength), + info.video_details.url, + options + ); } else return new Stream( final[0].url,