public PlaylistOperation(string url, string output, PreferredQuality preferredQuality, bool reverse, bool indexPrefix) { // Temporary title. this.Title = "Getting playlist info..."; this.ReportsProgress = true; this.Input = url; this.Output = output; this.Link = this.Input; _preferredQuality = preferredQuality; _reverse = reverse; _indexPrefix = indexPrefix; _downloader = new FileDownloader(); // Attach events _downloader.Canceled += downloader_Canceled; _downloader.Completed += downloader_Completed; _downloader.FileDownloadFailed += downloader_FileDownloadFailed; _downloader.CalculatedTotalFileSize += downloader_CalculatedTotalFileSize; _downloader.ProgressChanged += downloader_ProgressChanged; }
/// <summary> /// Returns the preferred video format quality based on application setting. /// </summary> /// <param name="video">The video to get format from.</param> public static VideoFormat GetPreferredFormat(VideoInfo video, PreferredQuality preferredQuality) { VideoFormat[] qualities = Helper.GetVideoFormats(video); /* Find a format based on user's preference. * * Highest : Self-explanatory * High : 1080p * Medium : 720p * Low : 360p * Lowest : 140p */ int index = -1; switch (preferredQuality) { case PreferredQuality.Highest: // Do nothing break; case PreferredQuality.High: if ((index = qualities.IndexOf("1080")) > -1) { return(qualities[index]); } break; case PreferredQuality.Medium: if ((index = qualities.IndexOf("720")) > -1) { return(qualities[index]); } break; case PreferredQuality.Low: if ((index = qualities.IndexOf("360")) > -1) { return(qualities[index]); } break; case PreferredQuality.Lowest: if ((index = qualities.IndexOf("144")) > -1) { return(qualities[index]); } break; } if (!(index > -1)) { index = qualities.Length - 1; } return(qualities[index]); }
public PlaylistOperation(string url, string output, PreferredQuality preferredQuality, bool reverse, bool indexPrefix, IEnumerable <QuickVideoInfo> videos) : this(url, output, preferredQuality, reverse, indexPrefix) { _videos.AddRange(videos); }
public BatchOperation(string output, ICollection <string> inputs, PreferredQuality preferredQuality) { this.Title = $"Batch download (0/{inputs.Count} videos)"; this.ReportsProgress = true; this.Input = string.Join("|", inputs); this.Output = output; this.Inputs.AddRange(inputs); _preferredQuality = preferredQuality; _logger = OperationLogger.Create(OperationLogger.YTDLogFile); _downloader = new FileDownloader(); // Attach events _downloader.Canceled += downloader_Canceled; _downloader.Completed += downloader_Completed; _downloader.FileDownloadFailed += downloader_FileDownloadFailed; _downloader.CalculatedTotalFileSize += downloader_CalculatedTotalFileSize; _downloader.ProgressChanged += downloader_ProgressChanged; }