C# 下载视频时URI解析的参数异常

C# 下载视频时URI解析的参数异常,c#,youtube,video-library,C#,Youtube,Video Library,我对C#没有经验,但我已经掌握了基本知识。现在我正尝试使用视频库从YouTube下载视频(在VS软件包管理器中:Install package VideoLibrary) 上述函数SaveVideoToDisk\u单击从.xaml按钮调用,该按钮工作正常。但并不是每个视频都能正常工作video.URI变得非常大,超过800个字符。某些URL导致video.URI引发异常: mscorlib.dll中发生类型为“System.ArgumentOutOfRangeException”的未处理异常 在

我对C#没有经验,但我已经掌握了基本知识。现在我正尝试使用视频库从YouTube下载视频(在VS软件包管理器中:
Install package VideoLibrary

上述函数
SaveVideoToDisk\u单击
从.xaml按钮调用,该按钮工作正常。但并不是每个视频都能正常工作
video.URI
变得非常大,超过800个字符。某些URL导致
video.URI
引发异常:

mscorlib.dll中发生类型为“System.ArgumentOutOfRangeException”的未处理异常

在提供的代码中,当传递
link2
时,作为参数抛出传递
link
,效果很好

  • 我能修好这个吗
  • 如果没有,我应该如何处理这些异常?只是尝试,捕捉和报告,还是在更好的主意之前检查

  • 请提供-确保所有必要的值在帖子中内联可用,而不是针对外部站点执行未知代码的结果。当您整理示例代码时,您可能会发现您实际上提出了不止一个问题-确保每篇文章只有一个具体问题。@AlexeiLevenkov我想说这是尽可能少的问题。什么部分可以被最小化?我严重怀疑是否需要安装任何外部库来重现特定的问题。这种对代码的要求极大地限制了甚至可以考虑回答问题的人的数量。但它们是存在的——所以希望有人最终会回答。@AlexeiLevenkov是的,这不是一个流行的问题。但是,它是导致错误的特定库的一种方法,因此在我看来,它不能被进一步剥离。我希望有人愿意帮助,虽然,将平原真棒。请提供-确保所有必要的值是可用的内联在文章中,而不是对外部网站执行未知代码的结果。当您整理示例代码时,您可能会发现您实际上提出了不止一个问题-确保每篇文章只有一个具体问题。@AlexeiLevenkov我想说这是尽可能少的问题。什么部分可以被最小化?我严重怀疑是否需要安装任何外部库来重现特定的问题。这种对代码的要求极大地限制了甚至可以考虑回答问题的人的数量。但它们是存在的——所以希望有人最终会回答。@AlexeiLevenkov是的,这不是一个流行的问题。但是,它是导致错误的特定库的一种方法,因此在我看来,它不能被进一步剥离。我希望有人愿意帮忙,但是,将平原真棒。
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    using System.IO;
    using VideoLibrary;
    
    namespace TubeDemo
    {
        public partial class MainWindow : Window
        {
            string link = "https://www.youtube.com/watch?v=8SbUC-UaAxE";
            string link2 = "https://www.youtube.com/watch?v=BlRqTNkgEuo";
            public MainWindow()
            {
                InitializeComponent();
            }
            void SaveVideoToDisk_Click(object sender, EventArgs e)
            {
                var youTube = YouTube.Default; // starting point for YouTube actions
                var video = youTube.GetVideo(link2); // gets a Video object with info about the video
                File.WriteAllBytes(@"C:\testfire\" + video.FullName, video.GetBytes());
            }
        }
    }