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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:32:02