export type GetApiVideosItemIdMediaSourceIdSubtitlesIndexStreamFormatArgs = {itemId: string, mediaSourceId: string, index: number, format: string, endPositionTicks?: (number | null) | undefined, copyTimestamps?: boolean | undefined, addVttTimeMap?: boolean | undefined, startPositionTicks?: number | undefined}; export type GetApiVideosItemIdMediaSourceIdSubtitlesIndexStreamFormatOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; /** * Gets subtitles in a specified format. * * GET /Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/Stream.{format} */ export const getApiVideosItemIdMediaSourceIdSubtitlesIndexStreamFormat = async (args: GetApiVideosItemIdMediaSourceIdSubtitlesIndexStreamFormatArgs, options?: GetApiVideosItemIdMediaSourceIdSubtitlesIndexStreamFormatOptions) => { const {baseUrl = "http://localhost", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "text/*") if (args.endPositionTicks != null) query.append("endPositionTicks", String(args.endPositionTicks)) if (args.copyTimestamps != null) query.append("copyTimestamps", String(args.copyTimestamps)) if (args.addVttTimeMap != null) query.append("addVttTimeMap", String(args.addVttTimeMap)) if (args.startPositionTicks != null) query.append("startPositionTicks", String(args.startPositionTicks)) const url = `${baseUrl.replace(/\/+$/, '')}/Videos/${encodeURIComponent(String(args.itemId))}/${encodeURIComponent(String(args.mediaSourceId))}/Subtitles/${encodeURIComponent(String(args.index))}/Stream.${encodeURIComponent(String(args.format))}${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.text() };