使用distube/ytdl-core获取字幕返回空内容的问题求助
distube/ytdl-core获取字幕返回空内容的问题求助
我最近在开发从YouTube下载字幕的功能,流程是先用ytdl.getInfo(URL)获取到字幕的相关信息,再将其传入下方的downloadSubtitles函数来下载VTT格式的字幕:
function downloadSubtitles(subtitles,title,folderLocation){ // If there is no subtitles, return if(!subtitles) return; // Format to be downloaded is vtt. const format = 'vtt'; const output = join(folderLocation,`${title}-${subtitles.languageCode}-youtube.${format}`); let outputStream = fs.createWriteStream(output); https.get(`${subtitles.baseUrl}&fmt=${format !== 'xml' ? format : ''}`, res => { res.pipe(outputStream); }) }
但现在遇到了一个棘手的问题:无论是通过代码中的HTTPS请求获取内容,还是直接把拿到的字幕baseUrl复制到浏览器中打开,返回的都是空内容,完全看不到任何字幕数据。
我用了这样一个示例链接测试,直接访问同样没有内容:https://www.youtube.com/api/timedtext?v=35nV_M3asRs&ei=NzZgaK7AA5ncp-oPvMrM8QM&caps=asr&opi=112496729&exp=xpe&xoaf=5&hl=en&ip=0.0.0.0&ipbits=0&expire=1751160999&sparams=ip,ipbits,expire,v,ei,caps,opi,exp,xoaf&signature=1A60B06E96BC3F086F7F71A1A5CA6467C42A7B43.D07B860D05A4AE4E55DBB18B3B3BAF4A5CF3506E&key=yt8&lang=en
我已经排查了很久,还是搞不清问题出在哪——是字幕链接的参数有错误?还是YouTube的API有什么限制?有没有大佬能帮我分析下可能的原因,或者给一些排查的方向?
内容来源于stack exchange
相关产品推荐
相关产品推荐

