使用node-ytdl-core下载长视频时流无法完成的问题求助
node-ytdl-core下载长视频时流无法完成的问题求助
各位大佬好,我最近在用node-ytdl-core做YouTube视频下载的功能,遇到个棘手的问题想请教下:
我在provisionService里写了获取视频流的方法:
getStream(url: string): Observable<any> { const stream = ytdl(url); return new Observable((obs: NextObserver<any>) => { stream.on('progress', (length, downloaded, totalLength) => { console.log({length, downloaded, totalLength}); }); stream.on('finish', () => { console.log('stream has FINISHED'); obs.next(stream); obs.complete(); }); }); }
然后在组件里调用这个方法来触发下载:
downloadYoutubeVideo(youTubeId: string) { const observable$ = this.provisionService.getStream(youTubeId); const observer = { next: (stream) => { xxx } }; observable$.subscribe(observer); }
目前短视频下载是正常的,但一旦尝试下载长视频,progress事件的日志就永远到不了downloaded等于totalLength的状态,而且finish事件完全不会触发,导致整个流一直无法完成。
有没有大佬知道这是什么原因导致的,以及该怎么解决呀?
Cheers!
备注:内容来源于stack exchange,提问作者Arco Voltaico
相关产品推荐
相关产品推荐

