namespace VideoDownloader.Core.Social; /// 정적 화질 프리셋. 카드에 즉시 표시(네트워크 조회 불필요). yt-dlp 포맷 셀렉터 기반. public static class SocialPresets { public static readonly List All = new() { new("최고 화질 (MP4)", "bv*+ba/b", IsAudio: false), new("1080p", "bv*[height<=1080]+ba/b[height<=1080]/b[height<=1080]"), new("720p", "bv*[height<=720]+ba/b[height<=720]/b[height<=720]"), new("480p", "bv*[height<=480]+ba/b[height<=480]/b[height<=480]"), new("360p", "bv*[height<=360]+ba/b[height<=360]/b[height<=360]"), new("오디오만 (MP3)", "ba", IsAudio: true), }; /// 설정의 기본 화질 키(best/1080/720/480/360/audio) 로 기본 옵션을 찾는다. public static FormatOption DefaultFor(string? key) { var k = (key ?? "best").Trim().ToLowerInvariant(); foreach (var o in All) { if (k == "best" && o.Label.StartsWith("최고")) return o; if (k == "audio" && o.IsAudio) return o; if (o.Label.StartsWith(k + "p", StringComparison.Ordinal)) return o; } return All[0]; } }