UNPKG

@music-metadata/icy

Version:
28 lines (27 loc) 981 B
import type { ReadableStream as NodeWebReadableStream } from 'node:stream/web'; type IcyMetadata = { StreamTitle?: string; StreamUrl?: string; icyName?: string; icyGenre?: string; icyUrl?: string; bitrate?: string; contentType?: string; [key: string]: string | undefined; }; export type StreamStats = { totalBytesRead: number; audioBytesRead: number; icyBytesRead: number; }; export type MetadataUpdate = { metadata: IcyMetadata; stats: StreamStats; }; export type IcyMetadataHandler = (update: MetadataUpdate) => void; /** * Process an Icecast-compatible HTTP response, extracting and filtering ICY metadata. */ export declare function parseIcyResponse(response: Response, handler: IcyMetadataHandler): ReadableStream<Uint8Array>; export declare function decodeIcyStreamChunks(icyStream: ReadableStream | NodeWebReadableStream, metadataInterval: number, onMetadata: IcyMetadataHandler): ReadableStream<Uint8Array>; export {};