コード例 #1
0
 private void button2_Click(object sender, EventArgs e)
 {
     try
     {
         if (listView1.SelectedItems.Count == 0)
         {
             throw new Exception("Please select one video");
         }
         YouTubeVideoQuality video = listView1.SelectedItems[0].Tag as YouTubeVideoQuality;
         Clipboard.SetText(video.DownloadUrl);
         // Close();
     }
     catch (Exception ex) { MessageBox.Show(ex.Message); }
 }
コード例 #2
0
 private void buttonOk_Click(object sender, EventArgs e)
 {
     try
     {
         if (listView1.SelectedItems.Count == 0)
         {
             throw new Exception("Please select one video");
         }
         if (DialogResult.OK != saveFileDialog1.ShowDialog(this))
         {
             return;
         }
         YouTubeVideoQuality video = listView1.SelectedItems[0].Tag as YouTubeVideoQuality;
         new frmFileDownloader(video.DownloadUrl, saveFileDialog1.FileName).Show(this);
         //   Process.Start(video.DownloadUrl);
     }
     catch (Exception ex) { MessageBox.Show(ex.Message); }
 }
コード例 #3
0
 public static List<YouTubeVideoQuality> GetYouTubeVideoUrls(params string[] VideoUrls)
 {
     List<YouTubeVideoQuality> urls = new List<YouTubeVideoQuality>();
     foreach (var VideoUrl in VideoUrls)
     {
         string html = Helper.DownloadWebPage(VideoUrl);
         string title = GetTitle(html);
         foreach (var videoLink in ExtractUrls(html))
         {
             YouTubeVideoQuality q = new YouTubeVideoQuality();
             q.VideoUrl = VideoUrl;
             q.VideoTitle = title;
             q.DownloadUrl = videoLink + "&title=" + title;
             if (getQuality(q))
                 urls.Add(q);
         }
     }
     return urls;
 }
コード例 #4
0
 private static bool getQuality(YouTubeVideoQuality q)
 {
     if (q.DownloadUrl.Contains("itag=5"))
         q.SetQuality("flv", new Size(320, 240));
     else if (q.DownloadUrl.Contains("itag=34"))
         q.SetQuality("flv", new Size(400, 226));
     else if (q.DownloadUrl.Contains("itag=6"))
         q.SetQuality("flv", new Size(480, 360));
     else if (q.DownloadUrl.Contains("itag=35"))
         q.SetQuality("flv", new Size(640, 380));
     else if (q.DownloadUrl.Contains("itag=18"))
         q.SetQuality("mp4", new Size(480, 360));
     else if (q.DownloadUrl.Contains("itag=22"))
         q.SetQuality("mp4", new Size(1280, 720));
     else if (q.DownloadUrl.Contains("itag=37"))
         q.SetQuality("mp4", new Size(1920, 1280));
     else if (q.DownloadUrl.Contains("itag=38"))
         q.SetQuality("mp4", new Size(4096, 72304));
     else return false;
     return true;
 }
コード例 #5
0
 private static bool getQuality(YouTubeVideoQuality q)
 {
     if (q.DownloadUrl.Contains("itag=5"))
     {
         q.SetQuality("flv", new Size(320, 240));
     }
     else if (q.DownloadUrl.Contains("itag=34"))
     {
         q.SetQuality("flv", new Size(400, 226));
     }
     else if (q.DownloadUrl.Contains("itag=6"))
     {
         q.SetQuality("flv", new Size(480, 360));
     }
     else if (q.DownloadUrl.Contains("itag=35"))
     {
         q.SetQuality("flv", new Size(640, 380));
     }
     else if (q.DownloadUrl.Contains("itag=18"))
     {
         q.SetQuality("mp4", new Size(480, 360));
     }
     else if (q.DownloadUrl.Contains("itag=22"))
     {
         q.SetQuality("mp4", new Size(1280, 720));
     }
     else if (q.DownloadUrl.Contains("itag=37"))
     {
         q.SetQuality("mp4", new Size(1920, 1280));
     }
     else if (q.DownloadUrl.Contains("itag=38"))
     {
         q.SetQuality("mp4", new Size(4096, 72304));
     }
     else
     {
         return(false);
     }
     return(true);
 }
コード例 #6
0
        public static List <YouTubeVideoQuality> GetYouTubeVideoUrls(params string[] VideoUrls)
        {
            List <YouTubeVideoQuality> urls = new List <YouTubeVideoQuality>();

            foreach (var VideoUrl in VideoUrls)
            {
                string html  = Helper.DownloadWebPage(VideoUrl);
                string title = GetTitle(html);
                foreach (var videoLink in ExtractUrls(html))
                {
                    YouTubeVideoQuality q = new YouTubeVideoQuality();
                    q.VideoUrl    = VideoUrl;
                    q.VideoTitle  = title;
                    q.DownloadUrl = videoLink + "&title=" + title;
                    if (getQuality(q))
                    {
                        urls.Add(q);
                    }
                }
            }
            return(urls);
        }
コード例 #7
0
ファイル: YouTubeDownloader.cs プロジェクト: episodka/mcg9
        private static bool getSize(YouTubeVideoQuality q)
        {
            try
            {
                HttpWebRequest fileInfoRequest = (HttpWebRequest)HttpWebRequest.Create(q.DownloadUrl);
                //fileInfoRequest.ServicePoint.ConnectionLimit = 20;
                //fileInfoRequest.Method = "HEAD";
                //fileInfoRequest.KeepAlive = true;
                HttpWebResponse fileInfoResponse = (HttpWebResponse)fileInfoRequest.GetResponse();

                long bytesLength = fileInfoResponse.ContentLength;
                fileInfoRequest.Abort();

                if (bytesLength != -1)
                {
                    q.SetSize(bytesLength);
                    return true;
                }
                else return false;
            }
            catch (Exception)
            {
                throw;
            }
        }