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); } }
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); } }
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; }
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; }
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); }
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); }
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; } }