public VideoMetadata(string contentId, string contentTitle, MediaQualityEnum quality, string downloadUrl) { ContentId = contentId; ContentTitle = contentTitle; Quality = quality; Itag = (int)Quality; MimeType = Quality.GetMimeType(); FileType = Quality.GetFileType(); FileExt = Quality.GetShortName(); DownloadUrl = downloadUrl; }
public static FileTypeEnum GetFileType(this MediaQualityEnum quality) { if (quality == MediaQualityEnum.Unknown) { return(FileTypeEnum.Unknown); } foreach (FileTypeEnum ft in Enum.GetValues(typeof(FileTypeEnum))) { if (quality.GetShortName().ToLower() == ft.GetShortName().ToLower()) { return(ft); } } return(FileTypeEnum.Unknown); }
public static MimeTypeEnum GetMimeType(this MediaQualityEnum quality) { if (quality == MediaQualityEnum.Unknown) { return(MimeTypeEnum.Unknown); } foreach (MimeTypeEnum mt in Enum.GetValues(typeof(MimeTypeEnum))) { if (quality.GetDescription().ToLower() == mt.GetDescription().ToLower()) { return(mt); } } return(MimeTypeEnum.Unknown); }
// Alternate version of 'MediaQualityEnumHelpers.MapItagToEnum'. public static bool TryMapItagToEnum(string input, out MediaQualityEnum quality) { quality = MediaQualityEnum.Unknown; // Check if there is an itag before continuing using finer regex pattern. Match match1 = Regex.Match(input, _basicItagPattern); if (!match1.Success || (match1.Success && match1.Value != input)) { return(false); } // Get only the enum value of the itag. Match match2 = Regex.Match(input, _itagEnumValuePattern); if (!match2.Success) { return(false); } if (!int.TryParse(match2.Value, out int value)) { return(false); } // Iterate through 'Resources.MediaQualityEnum'. // <see cref="http://stackoverflow.com/questions/105372/how-do-i-enumerate-an-enum"/> foreach (MediaQualityEnum itag in Enum.GetValues(typeof(MediaQualityEnum))) { if ((int)itag == value) { quality = itag; return(true); } } return(false); }