如何使用libvideo .NET库下载指定分辨率含音频的YouTube视频
使用libvideo .NET库下载指定分辨率带音频YouTube视频的实现方案
核心保存逻辑
你已经完成了筛选指定分辨率资源的步骤,获取到对应Video实例后,直接调用实例的下载方法即可保存到本地,完整示例代码如下:
var youTube = new YouTube(); var videoInfos = youTube.GetAllVideos(link); // 优先匹配1080p资源,匹配失败自动降级到720p var targetVideo = videoInfos.FirstOrDefault(v => v.Resolution == 1080) ?? videoInfos.FirstOrDefault(v => v.Resolution == 720); if (targetVideo != null) { // 自定义本地保存路径,注意拼接正确的格式后缀 string savePath = Path.Combine("D:\\你的下载目录", $"{targetVideo.Title}.{targetVideo.Format}"); // 同步下载保存 targetVideo.Download(savePath); // 如需异步下载,替换为以下方法即可 // await targetVideo.DownloadAsync(savePath); }
高分辨率带音频下载注意事项
YouTube平台的720p以上分辨率资源,多数是音视频分离的独立流,直接筛选到的高分辨率视频流可能不含音频,需要做特殊处理:
- 优先筛选同时封装了音轨的视频资源,筛选逻辑如下:
// 筛选1080p且包含音频轨道的资源 var targetVideoWithAudio = videoInfos .Where(v => v.Resolution == 1080 && v.AudioFormat != AudioFormat.Unknown) .FirstOrDefault();
- 如果找不到同时封装音视频的高分辨率资源,需要分别下载对应分辨率的视频流、最高质量的音频流,后续通过FFmpeg等工具合并为完整的带音频视频文件。
附加说明

- 建议添加分辨率降级逻辑,避免对应分辨率资源不存在时报空引用错误
- 保存文件时需匹配视频本身的格式后缀,避免下载后的文件无法正常打开
内容的提问来源于stack exchange,提问作者Praful Ravindra
相关产品推荐
相关产品推荐

