Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#在视频中查找可用的最高youtube分辨率_C#_Youtube - Fatal编程技术网

C#在视频中查找可用的最高youtube分辨率

C#在视频中查找可用的最高youtube分辨率,c#,youtube,C#,Youtube,我正在制作一个播放列表下载程序,可以下载播放列表上的每一个视频,但到目前为止,我只能用360p下载。我想自动找到视频的最高分辨率并下载它 这是我的密码: IEnumerable<VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls("www.youtube.com/watch?v=" + vid.ToString()); VideoInf

我正在制作一个播放列表下载程序,可以下载播放列表上的每一个视频,但到目前为止,我只能用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)
                {

                }
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;
  }
}
然后记得在那之后更改代码,以用于列表而不是单个对象