C#在视频中查找可用的最高youtube分辨率
我正在制作一个播放列表下载程序,可以下载播放列表上的每一个视频,但到目前为止,我只能用360p下载。我想自动找到视频的最高分辨率并下载它 这是我的密码:C#在视频中查找可用的最高youtube分辨率,c#,youtube,C#,Youtube,我正在制作一个播放列表下载程序,可以下载播放列表上的每一个视频,但到目前为止,我只能用360p下载。我想自动找到视频的最高分辨率并下载它 这是我的密码: IEnumerable<VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls("www.youtube.com/watch?v=" + vid.ToString()); VideoInf
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)
{
}
IEnumerable videoInfos=DownloadUrlResolver.GetDownloadUrls(“www.youtube.com/watch?v=“+vid.ToString());
VideoInfo video=videoInfos.First(info=>info.VideoType==VideoType.Mp4&&info.Resolution==360);
字符串文件名=video.Title;
if(视频.要求解密)
{
下载URL解析程序。解密下载URL(视频);
}
string invalidChars=新字符串(Path.GetInvalidFileNameChars())+新字符串(Path.GetInvalidPathChars());
foreach(无效字符中的字符c)
{
filename=filename.Replace(c.ToString(),“”);
}
var videoDownloader=新的videoDownloader(video,Path.Combine(corpath,filename+video.VideoExtension));
Write(“\rVideo#{0}当前正在下载…”,i.ToString();
videoDownloader.Execute();
i++;
}
捕获(例外情况除外)
{
}
我正在使用这个库:循环浏览视频信息,找到可用分辨率最高的一个
VideoInfo video = videoInfos.First(info => info.VideoType == VideoType.Mp4 && info.Resolution == 360);
删除此行,因为它仅获取特定分辨率
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;
}
}
然后记得在那之后更改代码,以用于列表而不是单个对象