You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 06:59:04