releases/VideoDownloader.Core/Models/PlaylistModels.cs

21 lines
837 B
C#

namespace VideoDownloader.Core.Models;
public enum PlaylistType { Master, Media }
/// <summary>마스터 재생목록의 변환(화질) 항목</summary>
public record Variant(Uri Url, int Bandwidth, string Resolution, string Codecs);
/// <summary>HLS AES-128 키 정보 (EXT-X-KEY)</summary>
public record KeyInfo(Uri? KeyUri, string? Iv);
/// <summary>미디어 세그먼트</summary>
public record Segment(Uri Url, int Index, long Sequence, KeyInfo? Key);
/// <summary>m3u8 파싱 결과</summary>
public record ParsedPlaylist
{
public PlaylistType Type { get; init; }
public IReadOnlyList<Variant> Variants { get; init; } = Array.Empty<Variant>();
public IReadOnlyList<Segment> Segments { get; init; } = Array.Empty<Segment>();
public Uri? InitSegment { get; init; } // #EXT-X-MAP (fMP4 초기화 세그먼트)
}