/* tslint:disable */ /* eslint-disable */ /** * Jellyfin API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * The version of the OpenAPI document: 10.8.9 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import * as runtime from '../runtime'; import type { FontFile, ProblemDetails, RemoteSubtitleInfo, UploadSubtitleRequest, } from '../models'; import { FontFileFromJSON, FontFileToJSON, ProblemDetailsFromJSON, ProblemDetailsToJSON, RemoteSubtitleInfoFromJSON, RemoteSubtitleInfoToJSON, UploadSubtitleRequestFromJSON, UploadSubtitleRequestToJSON, } from '../models'; export interface DeleteSubtitleRequest { itemId: string; index: number; } export interface DownloadRemoteSubtitlesRequest { itemId: string; subtitleId: string; } export interface GetFallbackFontRequest { name: string; } export interface GetRemoteSubtitlesRequest { id: string; } export interface GetSubtitleRequest { routeItemId: string; routeMediaSourceId: string; routeIndex: number; routeFormat: string; itemId?: string; mediaSourceId?: string; index?: number; format?: string; endPositionTicks?: number; copyTimestamps?: boolean; addVttTimeMap?: boolean; startPositionTicks?: number; } export interface GetSubtitlePlaylistRequest { itemId: string; index: number; mediaSourceId: string; segmentLength: number; } export interface GetSubtitleWithTicksRequest { routeItemId: string; routeMediaSourceId: string; routeIndex: number; routeStartPositionTicks: number; routeFormat: string; itemId?: string; mediaSourceId?: string; index?: number; startPositionTicks?: number; format?: string; endPositionTicks?: number; copyTimestamps?: boolean; addVttTimeMap?: boolean; } export interface SearchRemoteSubtitlesRequest { itemId: string; language: string; isPerfectMatch?: boolean; } export interface UploadSubtitleOperationRequest { itemId: string; uploadSubtitleRequest: UploadSubtitleRequest; } /** * */ export class SubtitleApi extends runtime.BaseAPI { /** * Deletes an external subtitle file. */ async deleteSubtitleRaw(requestParameters: DeleteSubtitleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.itemId === null || requestParameters.itemId === undefined) { throw new runtime.RequiredError('itemId','Required parameter requestParameters.itemId was null or undefined when calling deleteSubtitle.'); } if (requestParameters.index === null || requestParameters.index === undefined) { throw new runtime.RequiredError('index','Required parameter requestParameters.index was null or undefined when calling deleteSubtitle.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Videos/{itemId}/Subtitles/{index}`.replace(`{${"itemId"}}`, encodeURIComponent(String(requestParameters.itemId))).replace(`{${"index"}}`, encodeURIComponent(String(requestParameters.index))), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Deletes an external subtitle file. */ async deleteSubtitle(requestParameters: DeleteSubtitleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.deleteSubtitleRaw(requestParameters, initOverrides); } /** * Downloads a remote subtitle. */ async downloadRemoteSubtitlesRaw(requestParameters: DownloadRemoteSubtitlesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.itemId === null || requestParameters.itemId === undefined) { throw new runtime.RequiredError('itemId','Required parameter requestParameters.itemId was null or undefined when calling downloadRemoteSubtitles.'); } if (requestParameters.subtitleId === null || requestParameters.subtitleId === undefined) { throw new runtime.RequiredError('subtitleId','Required parameter requestParameters.subtitleId was null or undefined when calling downloadRemoteSubtitles.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Items/{itemId}/RemoteSearch/Subtitles/{subtitleId}`.replace(`{${"itemId"}}`, encodeURIComponent(String(requestParameters.itemId))).replace(`{${"subtitleId"}}`, encodeURIComponent(String(requestParameters.subtitleId))), method: 'POST', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Downloads a remote subtitle. */ async downloadRemoteSubtitles(requestParameters: DownloadRemoteSubtitlesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.downloadRemoteSubtitlesRaw(requestParameters, initOverrides); } /** * Gets a fallback font file. */ async getFallbackFontRaw(requestParameters: GetFallbackFontRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.name === null || requestParameters.name === undefined) { throw new runtime.RequiredError('name','Required parameter requestParameters.name was null or undefined when calling getFallbackFont.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/FallbackFont/Fonts/{name}`.replace(`{${"name"}}`, encodeURIComponent(String(requestParameters.name))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.BlobApiResponse(response); } /** * Gets a fallback font file. */ async getFallbackFont(requestParameters: GetFallbackFontRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getFallbackFontRaw(requestParameters, initOverrides); return await response.value(); } /** * Gets a list of available fallback font files. */ async getFallbackFontListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/FallbackFont/Fonts`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(FontFileFromJSON)); } /** * Gets a list of available fallback font files. */ async getFallbackFontList(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const response = await this.getFallbackFontListRaw(initOverrides); return await response.value(); } /** * Gets the remote subtitles. */ async getRemoteSubtitlesRaw(requestParameters: GetRemoteSubtitlesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.id === null || requestParameters.id === undefined) { throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling getRemoteSubtitles.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Providers/Subtitles/Subtitles/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters.id))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.BlobApiResponse(response); } /** * Gets the remote subtitles. */ async getRemoteSubtitles(requestParameters: GetRemoteSubtitlesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getRemoteSubtitlesRaw(requestParameters, initOverrides); return await response.value(); } /** * Gets subtitles in a specified format. */ async getSubtitleRaw(requestParameters: GetSubtitleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.routeItemId === null || requestParameters.routeItemId === undefined) { throw new runtime.RequiredError('routeItemId','Required parameter requestParameters.routeItemId was null or undefined when calling getSubtitle.'); } if (requestParameters.routeMediaSourceId === null || requestParameters.routeMediaSourceId === undefined) { throw new runtime.RequiredError('routeMediaSourceId','Required parameter requestParameters.routeMediaSourceId was null or undefined when calling getSubtitle.'); } if (requestParameters.routeIndex === null || requestParameters.routeIndex === undefined) { throw new runtime.RequiredError('routeIndex','Required parameter requestParameters.routeIndex was null or undefined when calling getSubtitle.'); } if (requestParameters.routeFormat === null || requestParameters.routeFormat === undefined) { throw new runtime.RequiredError('routeFormat','Required parameter requestParameters.routeFormat was null or undefined when calling getSubtitle.'); } const queryParameters: any = {}; if (requestParameters.itemId !== undefined) { queryParameters['itemId'] = requestParameters.itemId; } if (requestParameters.mediaSourceId !== undefined) { queryParameters['mediaSourceId'] = requestParameters.mediaSourceId; } if (requestParameters.index !== undefined) { queryParameters['index'] = requestParameters.index; } if (requestParameters.format !== undefined) { queryParameters['format'] = requestParameters.format; } if (requestParameters.endPositionTicks !== undefined) { queryParameters['endPositionTicks'] = requestParameters.endPositionTicks; } if (requestParameters.copyTimestamps !== undefined) { queryParameters['copyTimestamps'] = requestParameters.copyTimestamps; } if (requestParameters.addVttTimeMap !== undefined) { queryParameters['addVttTimeMap'] = requestParameters.addVttTimeMap; } if (requestParameters.startPositionTicks !== undefined) { queryParameters['startPositionTicks'] = requestParameters.startPositionTicks; } const headerParameters: runtime.HTTPHeaders = {}; const response = await this.request({ path: `/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/Stream.{routeFormat}`.replace(`{${"routeItemId"}}`, encodeURIComponent(String(requestParameters.routeItemId))).replace(`{${"routeMediaSourceId"}}`, encodeURIComponent(String(requestParameters.routeMediaSourceId))).replace(`{${"routeIndex"}}`, encodeURIComponent(String(requestParameters.routeIndex))).replace(`{${"routeFormat"}}`, encodeURIComponent(String(requestParameters.routeFormat))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.BlobApiResponse(response); } /** * Gets subtitles in a specified format. */ async getSubtitle(requestParameters: GetSubtitleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getSubtitleRaw(requestParameters, initOverrides); return await response.value(); } /** * Gets an HLS subtitle playlist. */ async getSubtitlePlaylistRaw(requestParameters: GetSubtitlePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.itemId === null || requestParameters.itemId === undefined) { throw new runtime.RequiredError('itemId','Required parameter requestParameters.itemId was null or undefined when calling getSubtitlePlaylist.'); } if (requestParameters.index === null || requestParameters.index === undefined) { throw new runtime.RequiredError('index','Required parameter requestParameters.index was null or undefined when calling getSubtitlePlaylist.'); } if (requestParameters.mediaSourceId === null || requestParameters.mediaSourceId === undefined) { throw new runtime.RequiredError('mediaSourceId','Required parameter requestParameters.mediaSourceId was null or undefined when calling getSubtitlePlaylist.'); } if (requestParameters.segmentLength === null || requestParameters.segmentLength === undefined) { throw new runtime.RequiredError('segmentLength','Required parameter requestParameters.segmentLength was null or undefined when calling getSubtitlePlaylist.'); } const queryParameters: any = {}; if (requestParameters.segmentLength !== undefined) { queryParameters['segmentLength'] = requestParameters.segmentLength; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8`.replace(`{${"itemId"}}`, encodeURIComponent(String(requestParameters.itemId))).replace(`{${"index"}}`, encodeURIComponent(String(requestParameters.index))).replace(`{${"mediaSourceId"}}`, encodeURIComponent(String(requestParameters.mediaSourceId))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.BlobApiResponse(response); } /** * Gets an HLS subtitle playlist. */ async getSubtitlePlaylist(requestParameters: GetSubtitlePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getSubtitlePlaylistRaw(requestParameters, initOverrides); return await response.value(); } /** * Gets subtitles in a specified format. */ async getSubtitleWithTicksRaw(requestParameters: GetSubtitleWithTicksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.routeItemId === null || requestParameters.routeItemId === undefined) { throw new runtime.RequiredError('routeItemId','Required parameter requestParameters.routeItemId was null or undefined when calling getSubtitleWithTicks.'); } if (requestParameters.routeMediaSourceId === null || requestParameters.routeMediaSourceId === undefined) { throw new runtime.RequiredError('routeMediaSourceId','Required parameter requestParameters.routeMediaSourceId was null or undefined when calling getSubtitleWithTicks.'); } if (requestParameters.routeIndex === null || requestParameters.routeIndex === undefined) { throw new runtime.RequiredError('routeIndex','Required parameter requestParameters.routeIndex was null or undefined when calling getSubtitleWithTicks.'); } if (requestParameters.routeStartPositionTicks === null || requestParameters.routeStartPositionTicks === undefined) { throw new runtime.RequiredError('routeStartPositionTicks','Required parameter requestParameters.routeStartPositionTicks was null or undefined when calling getSubtitleWithTicks.'); } if (requestParameters.routeFormat === null || requestParameters.routeFormat === undefined) { throw new runtime.RequiredError('routeFormat','Required parameter requestParameters.routeFormat was null or undefined when calling getSubtitleWithTicks.'); } const queryParameters: any = {}; if (requestParameters.itemId !== undefined) { queryParameters['itemId'] = requestParameters.itemId; } if (requestParameters.mediaSourceId !== undefined) { queryParameters['mediaSourceId'] = requestParameters.mediaSourceId; } if (requestParameters.index !== undefined) { queryParameters['index'] = requestParameters.index; } if (requestParameters.startPositionTicks !== undefined) { queryParameters['startPositionTicks'] = requestParameters.startPositionTicks; } if (requestParameters.format !== undefined) { queryParameters['format'] = requestParameters.format; } if (requestParameters.endPositionTicks !== undefined) { queryParameters['endPositionTicks'] = requestParameters.endPositionTicks; } if (requestParameters.copyTimestamps !== undefined) { queryParameters['copyTimestamps'] = requestParameters.copyTimestamps; } if (requestParameters.addVttTimeMap !== undefined) { queryParameters['addVttTimeMap'] = requestParameters.addVttTimeMap; } const headerParameters: runtime.HTTPHeaders = {}; const response = await this.request({ path: `/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/{routeStartPositionTicks}/Stream.{routeFormat}`.replace(`{${"routeItemId"}}`, encodeURIComponent(String(requestParameters.routeItemId))).replace(`{${"routeMediaSourceId"}}`, encodeURIComponent(String(requestParameters.routeMediaSourceId))).replace(`{${"routeIndex"}}`, encodeURIComponent(String(requestParameters.routeIndex))).replace(`{${"routeStartPositionTicks"}}`, encodeURIComponent(String(requestParameters.routeStartPositionTicks))).replace(`{${"routeFormat"}}`, encodeURIComponent(String(requestParameters.routeFormat))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.BlobApiResponse(response); } /** * Gets subtitles in a specified format. */ async getSubtitleWithTicks(requestParameters: GetSubtitleWithTicksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getSubtitleWithTicksRaw(requestParameters, initOverrides); return await response.value(); } /** * Search remote subtitles. */ async searchRemoteSubtitlesRaw(requestParameters: SearchRemoteSubtitlesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { if (requestParameters.itemId === null || requestParameters.itemId === undefined) { throw new runtime.RequiredError('itemId','Required parameter requestParameters.itemId was null or undefined when calling searchRemoteSubtitles.'); } if (requestParameters.language === null || requestParameters.language === undefined) { throw new runtime.RequiredError('language','Required parameter requestParameters.language was null or undefined when calling searchRemoteSubtitles.'); } const queryParameters: any = {}; if (requestParameters.isPerfectMatch !== undefined) { queryParameters['isPerfectMatch'] = requestParameters.isPerfectMatch; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Items/{itemId}/RemoteSearch/Subtitles/{language}`.replace(`{${"itemId"}}`, encodeURIComponent(String(requestParameters.itemId))).replace(`{${"language"}}`, encodeURIComponent(String(requestParameters.language))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(RemoteSubtitleInfoFromJSON)); } /** * Search remote subtitles. */ async searchRemoteSubtitles(requestParameters: SearchRemoteSubtitlesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const response = await this.searchRemoteSubtitlesRaw(requestParameters, initOverrides); return await response.value(); } /** * Upload an external subtitle file. */ async uploadSubtitleRaw(requestParameters: UploadSubtitleOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.itemId === null || requestParameters.itemId === undefined) { throw new runtime.RequiredError('itemId','Required parameter requestParameters.itemId was null or undefined when calling uploadSubtitle.'); } if (requestParameters.uploadSubtitleRequest === null || requestParameters.uploadSubtitleRequest === undefined) { throw new runtime.RequiredError('uploadSubtitleRequest','Required parameter requestParameters.uploadSubtitleRequest was null or undefined when calling uploadSubtitle.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Videos/{itemId}/Subtitles`.replace(`{${"itemId"}}`, encodeURIComponent(String(requestParameters.itemId))), method: 'POST', headers: headerParameters, query: queryParameters, body: UploadSubtitleRequestToJSON(requestParameters.uploadSubtitleRequest), }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Upload an external subtitle file. */ async uploadSubtitle(requestParameters: UploadSubtitleOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.uploadSubtitleRaw(requestParameters, initOverrides); } }