m3u8parse
Version:
Structural parsing of Apple HTTP Live Streaming .m3u8 format
48 lines (47 loc) • 1.55 kB
TypeScript
import { AttrList } from './attrlist.js';
import { MediaPlaylist, MainPlaylist, MediaSegment, M3U8Playlist } from './playlist.js';
import type { PropsOf } from './types.js';
export declare enum PlaylistType {
Main = "main",
Media = "media"
}
export interface ParserOptions {
extensions?: {
[K: string]: boolean;
};
debug?: (line: string, ...args: unknown[]) => void;
}
interface ParserState {
readonly m3u8: Partial<Omit<PropsOf<MediaPlaylist>, 'master'> & Omit<PropsOf<MainPlaylist>, 'master'> & {
master: boolean;
}>;
meta: MediaSegment & {
info?: AttrList;
};
}
export declare class M3U8Parser {
static debug(line: string, ...args: unknown[]): void;
readonly extensions: NonNullable<ParserOptions['extensions']>;
state: ParserState;
lineNo: number;
constructor(options?: ParserOptions);
feed(line?: string): void;
finalize(type: PlaylistType.Main | `${PlaylistType.Main}`): MainPlaylist;
finalize(type: PlaylistType.Media | `${PlaylistType.Media}`): MediaPlaylist;
finalize(type?: PlaylistType | `${PlaylistType}`): M3U8Playlist;
debug(line: string, ...args: unknown[]): void;
_parseLine(line: string): void;
_parseExt(cmd: string, arg?: string | null): boolean;
}
export declare class ParserError extends Error {
readonly name = "ParserError";
cause: any;
line: string;
lineNumber: number;
constructor(msg: string, options?: {
line?: string;
line_no?: number;
cause?: unknown;
});
}
export {};