2012-07-27 86 views
0

我已經制作了一個簡單的程序(緊密依靠this示例),它可視化我的問題。它只從指定的URL下載文件,僅此而已;一切正常,直到我試圖用這樣的數據:無法下載帶有視頻的子網站

http://www.youtube.com/watch?v=pqaARDsiJv4

出人意料的是,沒有任何反應。爲什麼它不下載相關的視頻和HTML源代碼?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
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.Net; 
using System.IO; 
using System.ComponentModel; 

namespace downloader 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 

     private void DownloadButton_Click(object sender, RoutedEventArgs e) 
     { 
      WebClient client = new WebClient(); 

      string fileName; 

      try 
      { 
       fileName = System.IO.Path.GetFileName(URLBox.Text); 
       Uri currentURL = new Uri(URLBox.Text); 

       client.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed); 
       client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged); 

       client.DownloadFileAsync(currentURL, fileName); 
      } 
      catch (Exception exc) 
      { 
       MessageBox.Show(exc.Message); 
       progressBar.Value = 0; 
      } 

     } 

     private void Completed(object sender, AsyncCompletedEventArgs e) 
     { 
      MessageBox.Show("Download Completed!"); 


     } 

     private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e) 
     { 
      progressBar.Value = e.ProgressPercentage; 

     } 


    } 
} 
+0

它下載的是什麼? – 2012-07-27 01:14:38

+0

@JohnMitchell在這種情況下,沒有下載。 – 0x6B6F77616C74 2012-07-27 01:19:53

+0

因爲它的YouTube鏈接...谷歌正在保護他們的知識產權... – 2012-07-27 01:28:51

回答

1

對於這樣一個URL這條線......

fileName = System.IO.Path.GetFileName(URLBox.Text); 

...設置fileName"watch?v=pqaARDsiJv4",這是不合法的文件名。

+0

沒有例外拋出,什麼疏忽! – 0x6B6F77616C74 2012-07-27 14:14:08

+0

那麼,下載是在另一個線程,那些往往會失敗,而不是默默。 – 2012-07-27 14:30:45

0

我不認爲你可以從這樣的Youtube下載視頻。我會引用你去年的一個關於從Youtube下載內容的Stack Exchange問​​題;有很多鏈接,甚至有一個方法來做到這一點。但所有這些解決方案都是3歲,現在可能不再工作;這是你想做什麼的問題的一部分; Google正在不斷進行更改,這很可能會破壞當前的任何解決方案。

您可以看到這裏提供的任何解決方案是否仍然有效:https://stackoverflow.com/questions/1852029/how-can-i-download-youtube-videos-using-net-code 或者使用提供的信息創建您自己的解決方案。

相關問題