export type GetApiPLAYBACKIDStoryboardEXTENSIONArgs = {PLAYBACK_ID: string, token?: string | undefined, EXTENSION: 'jpg' | 'png' | 'webp', program_start_time?: number | undefined, program_end_time?: number | undefined, asset_start_time?: number | undefined, asset_end_time?: number | undefined}; export type GetApiPLAYBACKIDStoryboardEXTENSIONOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; /** * Retrieve a storyboard image for timeline hover previews * * GET /{PLAYBACK_ID}/storyboard.{EXTENSION} */ export const getApiPLAYBACKIDStoryboardEXTENSION = async (args: GetApiPLAYBACKIDStoryboardEXTENSIONArgs, options?: GetApiPLAYBACKIDStoryboardEXTENSIONOptions) => { const {baseUrl = "https://image.mux.com", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "image/jpeg") if (args.token != null) query.append("token", String(args.token)) if (args.program_start_time != null) query.append("program_start_time", String(args.program_start_time)) if (args.program_end_time != null) query.append("program_end_time", String(args.program_end_time)) if (args.asset_start_time != null) query.append("asset_start_time", String(args.asset_start_time)) if (args.asset_end_time != null) query.append("asset_end_time", String(args.asset_end_time)) const url = `${baseUrl.replace(/\/+$/, '')}/${encodeURIComponent(String(args.PLAYBACK_ID))}/storyboard.${encodeURIComponent(String(args.EXTENSION))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return res.blob() };