mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-10 18:36:15 -08:00
Adds the typed ChannelDrm model (shared interfaces) and a KODIPROP post-processing step in createPlaylistObject() — the single funnel for all four playlist import paths. Parses inputstream.adaptive.license_type, license_key and drm_legacy; ClearKey keys accepted as kid:key hex pairs, W3C ClearKey license JSON, or a plain kid→key JSON map. Unsupported license types (Widevine/PlayReady/license URLs) are preserved with supported=false so playback can surface a DRM diagnostic instead of failing silently. Also adds isDashStreamUrl/isDashChannel helpers for DASH routing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
36 lines
678 B
TypeScript
36 lines
678 B
TypeScript
import { ChannelDrm } from './channel-drm.interface';
|
|
|
|
/**
|
|
* Represents channel object
|
|
* TODO: define channel interface in iptv-parser library
|
|
*/
|
|
export interface Channel {
|
|
id: string;
|
|
url: string;
|
|
name: string;
|
|
group: {
|
|
title: string;
|
|
};
|
|
tvg: {
|
|
id: string;
|
|
name: string;
|
|
url: string;
|
|
logo: string;
|
|
rec: string;
|
|
};
|
|
epgParams?: string;
|
|
timeshift?: string;
|
|
catchup?: {
|
|
type?: string;
|
|
source?: string;
|
|
days?: string;
|
|
};
|
|
http: {
|
|
referrer: string;
|
|
'user-agent': string;
|
|
origin: string;
|
|
};
|
|
radio: string;
|
|
drm?: ChannelDrm;
|
|
}
|