export type GetApiVideosItemIdMediaSourceIdSubtitlesIndexStartPositionTicksStreamFormatArgs = {itemId: string, mediaSourceId: string, index: number, startPositionTicks: number, format: string, endPositionTicks?: (number | null) | undefined, copyTimestamps?: boolean | undefined, addVttTimeMap?: boolean | undefined}; export type GetApiVideosItemIdMediaSourceIdSubtitlesIndexStartPositionTicksStreamFormatOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; /** * Gets subtitles in a specified format. * * GET /Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/{startPositionTicks}/Stream.{format} */ export const getApiVideosItemIdMediaSourceIdSubtitlesIndexStartPositionTicksStreamFormat = async (args: GetApiVideosItemIdMediaSourceIdSubtitlesIndexStartPositionTicksStreamFormatArgs, options?: GetApiVideosItemIdMediaSourceIdSubtitlesIndexStartPositionTicksStreamFormatOptions) => { 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)) const url = `${baseUrl.replace(/\/+$/, '')}/Videos/${encodeURIComponent(String(args.itemId))}/${encodeURIComponent(String(args.mediaSourceId))}/Subtitles/${encodeURIComponent(String(args.index))}/${encodeURIComponent(String(args.startPositionTicks))}/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() };