private void Download(string validatedLink) { //Download video if ((int)cboFileType.SelectedIndex == 0) //Video is selected from dropdown list { //Create new videoDownloader object YoutubeVideoModel videoDownloader = new YoutubeVideoModel(); //Set videoDownloader properties videoDownloader.Link = validatedLink; videoDownloader.FolderPath = txtPath.Text; //Download video DownloadVideo(videoDownloader); } //Download audio else { //Create new audioDownloader object YoutubeAudioModel audioDownloader = new YoutubeAudioModel(); //Set AudioDownloader properties audioDownloader.Link = validatedLink; audioDownloader.FolderPath = txtPath.Text; //Download audio DownloadAudio(audioDownloader); } }
private void Download() { //Download video if ((int)comboBox1.SelectedIndex == 0) //Video is selected from dropdown list { //Create new videoDownloader object YoutubeVideoModel videoDownloader = new YoutubeVideoModel(); //Set videoDownloader properties videoDownloader.Link = txtLink.Text; videoDownloader.FolderPath = txtPath.Text; //Download video DownloadVideo(videoDownloader); } else //Audio is selected from dropdown list { //Create new audioDownloader object YoutubeAudioModel audioDownloader = new YoutubeAudioModel(); //Set AudioDownloader properties audioDownloader.Link = txtLink.Text; audioDownloader.FolderPath = txtPath.Text; //Download audio DownloadAudio(audioDownloader); } }
private void DownloadAudio(YoutubeAudioModel audioDownloader) { try { //Updates lblUpdate to show title of video that is downloading UpdateLabel(audioDownloader.Video.Title + audioDownloader.Video.AudioExtension); //Stores FilePath in model audioDownloader.FilePath = FileDownloader.GetPath(audioDownloader); audioDownloader.FilePath += audioDownloader.Video.AudioExtension; //Stores AudioDownloaderType object in model audioDownloader.AudioDownloaderType = FileDownloader.GetAudioDownloader(audioDownloader); //Call DownloadList method until all items in list are downloaded audioDownloader.AudioDownloaderType.DownloadFinished += (sender, args) => DownloadList(); //Link progress bar up to download progress audioDownloader.AudioDownloaderType.DownloadProgressChanged += (sender, args) => progressBar1.Value = (int)args.ProgressPercentage; //Download audio FileDownloader.DownloadAudio(audioDownloader); } catch { MessageBox.Show("Download cancelled"); EnableAccessibility(); } }
//Returns VideoInfo object (Only for audio model) public static VideoInfo GetVideoInfoAudioOnly(YoutubeAudioModel audioModel) { //We want the first extractable video with the highest audio quality. VideoInfo video = audioModel.VideoInfo .Where(info => info.CanExtractAudio) .OrderByDescending(info => info.AudioBitrate) .First(); return video; }
//Returns VideoInfo object (Only for audio model) public static VideoInfo GetVideoInfoAudioOnly(YoutubeAudioModel audioModel) { //We want the first extractable video with the highest audio quality. VideoInfo video = audioModel.VideoInfo .Where(info => info.CanExtractAudio) .OrderByDescending(info => info.AudioBitrate) .First(); return(video); }
private void CreateVideoOrAudioObject() { //Create video object if ((int)comboBox1.SelectedIndex == 0) //Video is selected from dropdown list { //Create new videoDownloader object YoutubeVideoModel videoDownloader = new YoutubeVideoModel(); //Set videoDownloader properties videoDownloader.Link = txtLink.Text; videoDownloader.FolderPath = txtPath.Text; //Store VideoInfo object in model videoDownloader.VideoInfo = FileDownloader.GetVideoInfos(videoDownloader); //Stores VideoInfo object in model videoDownloader.Video = FileDownloader.GetVideoInfo(videoDownloader); UpdateListBox(videoDownloader); } //Create audio object else { //Create new audioDownloader object YoutubeAudioModel audioDownloader = new YoutubeAudioModel(); //Set AudioDownloader properties audioDownloader.Link = txtLink.Text; audioDownloader.FolderPath = txtPath.Text; //Store VideoInfo object in model audioDownloader.VideoInfo = FileDownloader.GetVideoInfos(audioDownloader); //Stores VideoInfo object in model audioDownloader.Video = FileDownloader.GetVideoInfoAudioOnly(audioDownloader); UpdateListBox(audioDownloader); } }
private void DownloadAudio(YoutubeAudioModel audioDownloader) { try { //Store VideoInfo object in model audioDownloader.VideoInfo = FileDownloader.GetVideoInfos(audioDownloader); //Stores VideoInfo object in model audioDownloader.Video = FileDownloader.GetVideoInfoAudioOnly(audioDownloader); //Updates lblUpdate to show title of video that is downloading UpdateLabel(audioDownloader.Video.Title + audioDownloader.Video.AudioExtension); //Stores FilePath in model audioDownloader.FilePath = FileDownloader.GetPath(audioDownloader); audioDownloader.FilePath += audioDownloader.Video.AudioExtension; //Stores AudioDownloaderType object in model audioDownloader.AudioDownloaderType = FileDownloader.GetAudioDownloader(audioDownloader); //Enable buttons once download is complete audioDownloader.AudioDownloaderType.DownloadFinished += (sender, args) => EnableAccessibility(); audioDownloader.AudioDownloaderType.DownloadFinished += (sender, args) => OpenFolder(audioDownloader.FilePath); audioDownloader.AudioDownloaderType.DownloadFinished += (sender, args) => timer1.Stop(); //Link progress bar up to download progress audioDownloader.AudioDownloaderType.DownloadProgressChanged += (sender, args) => pgDownload.Value = (int)args.ProgressPercentage; CheckForIllegalCrossThreadCalls = false; //Download audio FileDownloader.DownloadAudio(audioDownloader); } catch { MessageBox.Show("Download cancelled"); EnableAccessibility(); } }
private void DownloadAudio(YoutubeAudioModel audioDownloader) { try { //Store VideoInfo object in model audioDownloader.VideoInfo = FileDownloader.GetVideoInfos(audioDownloader); //Stores VideoInfo object in model audioDownloader.Video = FileDownloader.GetVideoInfoAudioOnly(audioDownloader); //Updates lblUpdate to show title of video that is downloading UpdateLabel(audioDownloader.Video.Title + audioDownloader.Video.AudioExtension); //Stores FilePath in model audioDownloader.FilePath = FileDownloader.GetPath(audioDownloader); audioDownloader.FilePath += audioDownloader.Video.AudioExtension; //Stores AudioDownloaderType object in model audioDownloader.AudioDownloaderType = FileDownloader.GetAudioDownloader(audioDownloader); //Enable buttons once download is complete audioDownloader.AudioDownloaderType.DownloadFinished += (sender, args) => EnableAccessibility(); audioDownloader.AudioDownloaderType.DownloadFinished += (sender, args) => OpenFolder(audioDownloader.FilePath); //Link progress bar up to download progress audioDownloader.AudioDownloaderType.DownloadProgressChanged += (sender, args) => pgDownload.Value = (int)args.ProgressPercentage; CheckForIllegalCrossThreadCalls = false; //Download audio FileDownloader.DownloadAudio(audioDownloader); } catch { MessageBox.Show("Download cancelled"); EnableAccessibility(); } }
//Downloads Audio (Only for Audio model) public static void DownloadAudio(YoutubeAudioModel audioModel) { Task.Run(() => audioModel.AudioDownloaderType.Execute()); }
//Returns AudioDownloader object (Only for audio model) public static AudioDownloader GetAudioDownloader(YoutubeAudioModel audioModel) { //Create AudioDownloader object return new AudioDownloader(audioModel.Video, audioModel.FilePath); }
//Returns AudioDownloader object (Only for audio model) public static AudioDownloader GetAudioDownloader(YoutubeAudioModel audioModel) { //Create AudioDownloader object return(new AudioDownloader(audioModel.Video, audioModel.FilePath)); }