2016-12-05 120 views
-1

我试图使用YoutubeExtractor从YouTube下载音频,但如果单击按钮我有信息“序列没有元素”。我该如何解决它?从YouTube下载音频c#

private void button2_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     IEnumerable<VideoInfo> videos = DownloadUrlResolver.GetDownloadUrls(textBox1.Text); 

     VideoInfo video = videos.Where(info => info.CanExtractAudio).OrderByDescending(info => info.AudioBitrate).First(); 

     if (video.RequiresDecryption) 
     { 
      DownloadUrlResolver.DecryptDownloadUrl(video); 
     } 
     AudioDownloader download = new AudioDownloader(video, Path.Combine(Application.StartupPath + "\\", video.Title + video.AudioExtension)); 

     download.Execute(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
+0

你知道YoutubeExtractor音频提取目前仅适用于Flash视频吗? – Jim

回答

0

问题是致电First()。如果您的IEnumerable不包含任何项目,这将引发异常。

要纠正这一点,你需要的两件事情是肯定的:

  1. DownloadUrlResolver.GetDownloadUrls()函数返回至少1项。
  2. 即在videos变量的至少一个项具有CanExtractAudio集到true
+0

我如何使用DownloadUrlResolver.GetDownloadUrls()返回一个项目; ? – Ops