我制作播放列表下载程序,下载播放列表中的每个视频,但到目前为止,我只能在360p下载。我想自动找到视频的最高分辨率并下载它。
这是我的代码:
IEnumerable<VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls("www.youtube.com/watch?v=" + vid.ToString());
VideoInfo video = videoInfos.First(info => info.VideoType == VideoType.Mp4 && info.Resolution == 360);
string filename = video.Title;
if (video.RequiresDecryption)
{
DownloadUrlResolver.DecryptDownloadUrl(video);
}
string invalidChars = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
foreach (char c in invalidChars)
{
filename = filename.Replace(c.ToString(), "");
}
var videoDownloader = new VideoDownloader(video, Path.Combine(corpath, filename + video.VideoExtension));
Console.Write("\rVideo #{0} is currently being downloaded...", i.ToString());
videoDownloader.Execute();
i++;
}
catch (Exception ex)
{
}
答案 0 :(得分:0)
循环浏览videoInfos并找到可用分辨率最高的那个
删除此行,因为它只获取某个分辨率
VideoInfo video = videoInfos.First(info => info.VideoType == VideoType.Mp4 && info.Resolution == 360);
添加以下代码
int maxResolution = 0;
foreach(var v in videoInfos)
{
if (v.Resolution > maxResolution)
{
maxResolution = v.Resolution;
}
}
然后记得在此之后更改代码以使用列表而不是单个对象