2016-12-05 10 views
-1

私はyoutubeからYoutubeExtractorを使用してオーディオをダウンロードしようとしていますが、ボタンをクリックすると「シーケンスに要素がありません」という情報があります。どのように私はそれを解決することができます?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にアイテムが含まれていないと例外がスローされます。

これを修正するには、次の2つのもののことを確認する必要があります。

  1. DownloadUrlResolver.GetDownloadUrls()機能は、少なくとも1つのアイテムを返します。
  2. videos変数の少なくとも1つの項目が、CanExtractAudiotrueに設定されていること。
+0

DownloadUrlResolver.GetDownloadUrls()を使用して1つのアイテムを返す方法。 ? – Ops

関連する問題