21 lines
837 B
C#
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 초기화 세그먼트)
|
|
}
|