m3u8parse
Version:
Structural parsing of Apple HTTP Live Streaming .m3u8 format
27 lines (26 loc) • 1.2 kB
TypeScript
import type * as AttrT from './attr-types.ts';
import { AttrList } from './attrlist.ts';
import { BasePlaylist, ImmutableUriMapFunction, Immutify, IRewritableUris, UriMapFunction } from './playlist-base.ts';
import { MediaPlaylist } from './playlist-media.ts';
import type { Proto } from './types.ts';
interface Variant {
uri: string;
info?: AttrList<AttrT.StreamInf> | undefined;
}
export type EntryType = 'variant' | 'iframe' | 'group' | 'data' | 'session-key';
export declare class MainPlaylist extends BasePlaylist implements IRewritableUris {
static cast(index: MediaPlaylist | MainPlaylist): MainPlaylist | never;
readonly master: true;
groups: Map<string, AttrList<AttrT.Media>[]>;
variants: Variant[];
iframes: AttrList<AttrT.IFrameStreamInf>[];
data: Map<string, AttrList<AttrT.SessionData>[]>;
session_keys: AttrList<AttrT.SessionKey>[];
constructor(obj?: Proto<MainPlaylist | ImmutableMainPlaylist>);
rewriteUris(mapFn: UriMapFunction<EntryType>): this;
}
interface _ImmutableMain extends MainPlaylist {
rewriteUris(mapFn: ImmutableUriMapFunction<EntryType>): this;
}
export type ImmutableMainPlaylist = Immutify<_ImmutableMain>;
export {};