streaming-availability
Version:
Streaming Availability API allows getting streaming availability information of movies and series; and querying the list of available shows on streaming services such as Netflix, Disney+, Apple TV, Max and Hulu across 60 countries!
494 lines (493 loc) • 27.2 kB
JavaScript
"use strict";
/* tslint:disable */
/* eslint-disable */
/**
* Streaming Availability API
* Streaming Availability API allows getting streaming availability information of movies and series; and querying the list of available shows on streaming services such as Netflix, Disney+, Apple TV, Max and Hulu across 60 countries!
*
* The version of the OpenAPI document: 4.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SearchShowsByTitleOutputLanguageEnum = exports.SearchShowsByTitleSeriesGranularityEnum = exports.SearchShowsByFiltersOrderByEnum = exports.SearchShowsByFiltersSeriesGranularityEnum = exports.SearchShowsByFiltersGenresRelationEnum = exports.SearchShowsByFiltersOutputLanguageEnum = exports.GetTopShowsOutputLanguageEnum = exports.GetShowOutputLanguageEnum = exports.GetShowSeriesGranularityEnum = exports.ShowsApi = void 0;
var runtime = require("../runtime");
var index_1 = require("../models/index");
/**
*
*/
var ShowsApi = /** @class */ (function (_super) {
__extends(ShowsApi, _super);
function ShowsApi() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* Get the details of a show via id, imdbId or tmdbId, including the global streaming availability info.
* Get a Show
*/
ShowsApi.prototype.getShowRaw = function (requestParameters, initOverrides) {
return __awaiter(this, void 0, void 0, function () {
var queryParameters, headerParameters, _a, _b, _c, _d, response;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
if (requestParameters['id'] == null) {
throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getShow().');
}
queryParameters = {};
if (requestParameters['country'] != null) {
queryParameters['country'] = requestParameters['country'];
}
if (requestParameters['seriesGranularity'] != null) {
queryParameters['series_granularity'] = requestParameters['seriesGranularity'];
}
if (requestParameters['outputLanguage'] != null) {
queryParameters['output_language'] = requestParameters['outputLanguage'];
}
headerParameters = {};
if (!(this.configuration && this.configuration.apiKey)) return [3 /*break*/, 2];
_a = headerParameters;
_b = "X-API-Key";
return [4 /*yield*/, this.configuration.apiKey("X-API-Key")];
case 1:
_a[_b] = _e.sent(); // X-API-Key authentication
_e.label = 2;
case 2:
if (!(this.configuration && this.configuration.apiKey)) return [3 /*break*/, 4];
_c = headerParameters;
_d = "X-RapidAPI-Key";
return [4 /*yield*/, this.configuration.apiKey("X-RapidAPI-Key")];
case 3:
_c[_d] = _e.sent(); // X-RapidAPI-Key authentication
_e.label = 4;
case 4: return [4 /*yield*/, this.request({
path: "/shows/{id}".replace("{".concat("id", "}"), encodeURIComponent(String(requestParameters['id']))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides)];
case 5:
response = _e.sent();
return [2 /*return*/, new runtime.JSONApiResponse(response, function (jsonValue) { return (0, index_1.ShowFromJSON)(jsonValue); })];
}
});
});
};
/**
* Get the details of a show via id, imdbId or tmdbId, including the global streaming availability info.
* Get a Show
*/
ShowsApi.prototype.getShow = function (requestParameters, initOverrides) {
return __awaiter(this, void 0, void 0, function () {
var response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.getShowRaw(requestParameters, initOverrides)];
case 1:
response = _a.sent();
return [4 /*yield*/, response.value()];
case 2: return [2 /*return*/, _a.sent()];
}
});
});
};
/**
* Get the official top shows in a service. Top shows are determined by the streaming service itself. Supported streaming services are: - Netflix: netflix - Amazon Prime Video: prime - Disney+: disney - Apple TV: apple - Max: hbo For unsupported services, this endpoint will return an empty list. Series granularity is always show for this endpoint, meaning that the output will not include season and episode info.
* Get Top Shows
*/
ShowsApi.prototype.getTopShowsRaw = function (requestParameters, initOverrides) {
return __awaiter(this, void 0, void 0, function () {
var queryParameters, headerParameters, _a, _b, _c, _d, response;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
if (requestParameters['country'] == null) {
throw new runtime.RequiredError('country', 'Required parameter "country" was null or undefined when calling getTopShows().');
}
if (requestParameters['service'] == null) {
throw new runtime.RequiredError('service', 'Required parameter "service" was null or undefined when calling getTopShows().');
}
queryParameters = {};
if (requestParameters['country'] != null) {
queryParameters['country'] = requestParameters['country'];
}
if (requestParameters['service'] != null) {
queryParameters['service'] = requestParameters['service'];
}
if (requestParameters['outputLanguage'] != null) {
queryParameters['output_language'] = requestParameters['outputLanguage'];
}
if (requestParameters['showType'] != null) {
queryParameters['show_type'] = requestParameters['showType'];
}
headerParameters = {};
if (!(this.configuration && this.configuration.apiKey)) return [3 /*break*/, 2];
_a = headerParameters;
_b = "X-API-Key";
return [4 /*yield*/, this.configuration.apiKey("X-API-Key")];
case 1:
_a[_b] = _e.sent(); // X-API-Key authentication
_e.label = 2;
case 2:
if (!(this.configuration && this.configuration.apiKey)) return [3 /*break*/, 4];
_c = headerParameters;
_d = "X-RapidAPI-Key";
return [4 /*yield*/, this.configuration.apiKey("X-RapidAPI-Key")];
case 3:
_c[_d] = _e.sent(); // X-RapidAPI-Key authentication
_e.label = 4;
case 4: return [4 /*yield*/, this.request({
path: "/shows/top",
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides)];
case 5:
response = _e.sent();
return [2 /*return*/, new runtime.JSONApiResponse(response, function (jsonValue) { return jsonValue.map(index_1.ShowFromJSON); })];
}
});
});
};
/**
* Get the official top shows in a service. Top shows are determined by the streaming service itself. Supported streaming services are: - Netflix: netflix - Amazon Prime Video: prime - Disney+: disney - Apple TV: apple - Max: hbo For unsupported services, this endpoint will return an empty list. Series granularity is always show for this endpoint, meaning that the output will not include season and episode info.
* Get Top Shows
*/
ShowsApi.prototype.getTopShows = function (requestParameters, initOverrides) {
return __awaiter(this, void 0, void 0, function () {
var response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.getTopShowsRaw(requestParameters, initOverrides)];
case 1:
response = _a.sent();
return [4 /*yield*/, response.value()];
case 2: return [2 /*return*/, _a.sent()];
}
});
});
};
/**
* Search through the catalog of the given streaming services in the given country. Provides filters such as show language, genres, keyword and release year. Output includes all the information about the shows, such as title, IMDb ID, TMDb ID, release year, deep links to streaming services, available subtitles, audios, available video quality and many more! Apart from the info about the given country-service combinations, output also includes information about streaming availability in the other services for the given country. Streaming availability info from the other countries are not included in the response. When show_type is movie or series_granularity is show, items per page is 20. When show_type is series and series_granularity is episode items per page is 10. Otherwise, items per page is 15.
* Search Shows by filters
*/
ShowsApi.prototype.searchShowsByFiltersRaw = function (requestParameters, initOverrides) {
return __awaiter(this, void 0, void 0, function () {
var queryParameters, headerParameters, _a, _b, _c, _d, response;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
if (requestParameters['country'] == null) {
throw new runtime.RequiredError('country', 'Required parameter "country" was null or undefined when calling searchShowsByFilters().');
}
queryParameters = {};
if (requestParameters['country'] != null) {
queryParameters['country'] = requestParameters['country'];
}
if (requestParameters['catalogs'] != null) {
queryParameters['catalogs'] = requestParameters['catalogs'].join(runtime.COLLECTION_FORMATS["csv"]);
}
if (requestParameters['outputLanguage'] != null) {
queryParameters['output_language'] = requestParameters['outputLanguage'];
}
if (requestParameters['showType'] != null) {
queryParameters['show_type'] = requestParameters['showType'];
}
if (requestParameters['genres'] != null) {
queryParameters['genres'] = requestParameters['genres'].join(runtime.COLLECTION_FORMATS["csv"]);
}
if (requestParameters['genresRelation'] != null) {
queryParameters['genres_relation'] = requestParameters['genresRelation'];
}
if (requestParameters['showOriginalLanguage'] != null) {
queryParameters['show_original_language'] = requestParameters['showOriginalLanguage'];
}
if (requestParameters['yearMin'] != null) {
queryParameters['year_min'] = requestParameters['yearMin'];
}
if (requestParameters['yearMax'] != null) {
queryParameters['year_max'] = requestParameters['yearMax'];
}
if (requestParameters['ratingMin'] != null) {
queryParameters['rating_min'] = requestParameters['ratingMin'];
}
if (requestParameters['ratingMax'] != null) {
queryParameters['rating_max'] = requestParameters['ratingMax'];
}
if (requestParameters['keyword'] != null) {
queryParameters['keyword'] = requestParameters['keyword'];
}
if (requestParameters['seriesGranularity'] != null) {
queryParameters['series_granularity'] = requestParameters['seriesGranularity'];
}
if (requestParameters['orderBy'] != null) {
queryParameters['order_by'] = requestParameters['orderBy'];
}
if (requestParameters['orderDirection'] != null) {
queryParameters['order_direction'] = requestParameters['orderDirection'];
}
if (requestParameters['cursor'] != null) {
queryParameters['cursor'] = requestParameters['cursor'];
}
headerParameters = {};
if (!(this.configuration && this.configuration.apiKey)) return [3 /*break*/, 2];
_a = headerParameters;
_b = "X-API-Key";
return [4 /*yield*/, this.configuration.apiKey("X-API-Key")];
case 1:
_a[_b] = _e.sent(); // X-API-Key authentication
_e.label = 2;
case 2:
if (!(this.configuration && this.configuration.apiKey)) return [3 /*break*/, 4];
_c = headerParameters;
_d = "X-RapidAPI-Key";
return [4 /*yield*/, this.configuration.apiKey("X-RapidAPI-Key")];
case 3:
_c[_d] = _e.sent(); // X-RapidAPI-Key authentication
_e.label = 4;
case 4: return [4 /*yield*/, this.request({
path: "/shows/search/filters",
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides)];
case 5:
response = _e.sent();
return [2 /*return*/, new runtime.JSONApiResponse(response, function (jsonValue) { return (0, index_1.SearchResultFromJSON)(jsonValue); })];
}
});
});
};
/**
* Search through the catalog of the given streaming services in the given country. Provides filters such as show language, genres, keyword and release year. Output includes all the information about the shows, such as title, IMDb ID, TMDb ID, release year, deep links to streaming services, available subtitles, audios, available video quality and many more! Apart from the info about the given country-service combinations, output also includes information about streaming availability in the other services for the given country. Streaming availability info from the other countries are not included in the response. When show_type is movie or series_granularity is show, items per page is 20. When show_type is series and series_granularity is episode items per page is 10. Otherwise, items per page is 15.
* Search Shows by filters
*/
ShowsApi.prototype.searchShowsByFilters = function (requestParameters, initOverrides) {
return __awaiter(this, void 0, void 0, function () {
var response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.searchShowsByFiltersRaw(requestParameters, initOverrides)];
case 1:
response = _a.sent();
return [4 /*yield*/, response.value()];
case 2: return [2 /*return*/, _a.sent()];
}
});
});
};
/**
* Search for movies and series by a title. Maximum amount of items returned are 20 unless there are more than 20 shows with the exact given title input. In that case all the items have 100% match with the title will be returned. Streaming availability info for the target country is included in the response, but not for the other countries. Results might include shows that are not streamable in the target country. Only criteria for the search are the title and the show type. No pagination is supported.
* Search Shows by title
*/
ShowsApi.prototype.searchShowsByTitleRaw = function (requestParameters, initOverrides) {
return __awaiter(this, void 0, void 0, function () {
var queryParameters, headerParameters, _a, _b, _c, _d, response;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
if (requestParameters['title'] == null) {
throw new runtime.RequiredError('title', 'Required parameter "title" was null or undefined when calling searchShowsByTitle().');
}
if (requestParameters['country'] == null) {
throw new runtime.RequiredError('country', 'Required parameter "country" was null or undefined when calling searchShowsByTitle().');
}
queryParameters = {};
if (requestParameters['title'] != null) {
queryParameters['title'] = requestParameters['title'];
}
if (requestParameters['showType'] != null) {
queryParameters['show_type'] = requestParameters['showType'];
}
if (requestParameters['country'] != null) {
queryParameters['country'] = requestParameters['country'];
}
if (requestParameters['seriesGranularity'] != null) {
queryParameters['series_granularity'] = requestParameters['seriesGranularity'];
}
if (requestParameters['outputLanguage'] != null) {
queryParameters['output_language'] = requestParameters['outputLanguage'];
}
headerParameters = {};
if (!(this.configuration && this.configuration.apiKey)) return [3 /*break*/, 2];
_a = headerParameters;
_b = "X-API-Key";
return [4 /*yield*/, this.configuration.apiKey("X-API-Key")];
case 1:
_a[_b] = _e.sent(); // X-API-Key authentication
_e.label = 2;
case 2:
if (!(this.configuration && this.configuration.apiKey)) return [3 /*break*/, 4];
_c = headerParameters;
_d = "X-RapidAPI-Key";
return [4 /*yield*/, this.configuration.apiKey("X-RapidAPI-Key")];
case 3:
_c[_d] = _e.sent(); // X-RapidAPI-Key authentication
_e.label = 4;
case 4: return [4 /*yield*/, this.request({
path: "/shows/search/title",
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides)];
case 5:
response = _e.sent();
return [2 /*return*/, new runtime.JSONApiResponse(response, function (jsonValue) { return jsonValue.map(index_1.ShowFromJSON); })];
}
});
});
};
/**
* Search for movies and series by a title. Maximum amount of items returned are 20 unless there are more than 20 shows with the exact given title input. In that case all the items have 100% match with the title will be returned. Streaming availability info for the target country is included in the response, but not for the other countries. Results might include shows that are not streamable in the target country. Only criteria for the search are the title and the show type. No pagination is supported.
* Search Shows by title
*/
ShowsApi.prototype.searchShowsByTitle = function (requestParameters, initOverrides) {
return __awaiter(this, void 0, void 0, function () {
var response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.searchShowsByTitleRaw(requestParameters, initOverrides)];
case 1:
response = _a.sent();
return [4 /*yield*/, response.value()];
case 2: return [2 /*return*/, _a.sent()];
}
});
});
};
return ShowsApi;
}(runtime.BaseAPI));
exports.ShowsApi = ShowsApi;
/**
* @export
*/
exports.GetShowSeriesGranularityEnum = {
Show: 'show',
Season: 'season',
Episode: 'episode'
};
/**
* @export
*/
exports.GetShowOutputLanguageEnum = {
En: 'en',
Es: 'es',
Tr: 'tr',
Fr: 'fr'
};
/**
* @export
*/
exports.GetTopShowsOutputLanguageEnum = {
En: 'en',
Es: 'es',
Tr: 'tr',
Fr: 'fr'
};
/**
* @export
*/
exports.SearchShowsByFiltersOutputLanguageEnum = {
En: 'en',
Es: 'es',
Tr: 'tr',
Fr: 'fr'
};
/**
* @export
*/
exports.SearchShowsByFiltersGenresRelationEnum = {
And: 'and',
Or: 'or'
};
/**
* @export
*/
exports.SearchShowsByFiltersSeriesGranularityEnum = {
Show: 'show',
Season: 'season',
Episode: 'episode'
};
/**
* @export
*/
exports.SearchShowsByFiltersOrderByEnum = {
OriginalTitle: 'original_title',
ReleaseDate: 'release_date',
Rating: 'rating',
PopularityAlltime: 'popularity_alltime',
Popularity1year: 'popularity_1year',
Popularity1month: 'popularity_1month',
Popularity1week: 'popularity_1week'
};
/**
* @export
*/
exports.SearchShowsByTitleSeriesGranularityEnum = {
Show: 'show',
Season: 'season',
Episode: 'episode'
};
/**
* @export
*/
exports.SearchShowsByTitleOutputLanguageEnum = {
En: 'en',
Es: 'es',
Tr: 'tr',
Fr: 'fr'
};