2023年如何用youtube_explode_dart包下载YouTube仅音频视频URL?
如何使用youtube_explode_dart获取YouTube仅音频的下载链接
问题分析
你原代码里的streamsClient.getAudioOnly()方法已在youtube_explode_dart新版本中被移除,API结构做了调整,需通过视频流清单筛选仅音频流来实现需求。
修正后的代码
Future<String> getDownloadUrl(String videoId) async { final youtube = YoutubeExplode(); try { // 获取目标视频的全量流清单 final streamManifest = await youtube.videos.streamsClient.getManifest(videoId); // 筛选仅音频流,并选择最高码率的版本(可根据需求调整筛选逻辑) final audioStream = streamManifest.audioOnly.withHighestBitrate(); return audioStream.url.toString(); } finally { // 必须关闭实例释放资源,避免内存泄漏 youtube.close(); } }
关键说明
- 新版本API需先通过
streamsClient.getManifest(videoId)获取视频所有流的清单 audioOnly属性返回所有纯音频流集合,可通过withHighestBitrate()选最优质量,也可通过where((s) => s.container.name == 'm4a')这类逻辑筛选特定编码格式- 务必在
finally块中调用youtube.close(),确保资源正常释放
内容的提问来源于stack exchange,提问作者user22030129
相关产品推荐
相关产品推荐

