diff --git a/play-dl/YouTube/classes/LiveStream.ts b/play-dl/YouTube/classes/LiveStream.ts index 5ce601a..ea7ecc8 100644 --- a/play-dl/YouTube/classes/LiveStream.ts +++ b/play-dl/YouTube/classes/LiveStream.ts @@ -91,8 +91,11 @@ export class LiveStreaming{ continue } await new Promise(async(resolve, reject) => { - let stream = await request_stream(this.base_url + segment).catch((err) => {this.stream.emit('error', err); return null}) - if(!stream) return + let stream = await request_stream(this.base_url + segment).catch((err: Error) => err) + if(stream instanceof Error){ + this.stream.emit('error', stream) + return + } this.request = stream stream.pipe(this.stream, { end : false }) stream.on('end', () => { @@ -181,8 +184,9 @@ export class Stream { headers : { "range" : `bytes=${this.bytes_count}-${end >= this.content_length ? '' : end}` } - }).catch((err) => {this.stream.emit('error', err); return null}) - if(!stream) { + }).catch((err: Error) => err) + if(stream instanceof Error){ + this.stream.emit('error', stream) this.data_ended = true this.bytes_count = 0 this.per_sec_bytes = 0 diff --git a/play-dl/YouTube/utils/request.ts b/play-dl/YouTube/utils/request.ts index 893a79d..875fe50 100644 --- a/play-dl/YouTube/utils/request.ts +++ b/play-dl/YouTube/utils/request.ts @@ -30,8 +30,8 @@ function https_getter(req_url : string, options : RequestOpts = {}): Promise{ return new Promise(async (resolve, reject) => { let data = '' - let res = await https_getter(url, options).catch((err) => err as string) - if(typeof res === 'string') {reject(res); return} + let res = await https_getter(url, options).catch((err: Error) => err) + if(res instanceof Error) {reject(res); return} if(Number(res.statusCode) >= 300 && Number(res.statusCode) < 400){ res = await https_getter(res.headers.location as string , options) } @@ -46,8 +46,8 @@ export async function request(url : string, options? : RequestOpts): Promise{ return new Promise(async (resolve, reject) => { - let res = await https_getter(url, options).catch((err) => err as string) - if(typeof res === 'string') {reject(res); return} + let res = await https_getter(url, options).catch((err: Error) => err) + if(res instanceof Error) {reject(res); return} if(Number(res.statusCode) >= 300 && Number(res.statusCode) < 400){ res = await https_getter(res.headers.location as string, options) }