@media-engine/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +295 -0
- package/dist/cache/index.d.ts +2 -0
- package/dist/cache/index.js +2 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/memory.d.ts +19 -0
- package/dist/cache/memory.js +83 -0
- package/dist/cache/memory.js.map +1 -0
- package/dist/cache/types.d.ts +9 -0
- package/dist/cache/types.js +2 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/details/index.d.ts +1 -0
- package/dist/details/index.js +2 -0
- package/dist/details/index.js.map +1 -0
- package/dist/details/types.d.ts +19 -0
- package/dist/details/types.js +2 -0
- package/dist/details/types.js.map +1 -0
- package/dist/engine/engine.d.ts +29 -0
- package/dist/engine/engine.js +1007 -0
- package/dist/engine/engine.js.map +1 -0
- package/dist/engine/index.d.ts +2 -0
- package/dist/engine/index.js +2 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/types.d.ts +13 -0
- package/dist/engine/types.js +2 -0
- package/dist/engine/types.js.map +1 -0
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +2 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/types.d.ts +27 -0
- package/dist/errors/types.js +77 -0
- package/dist/errors/types.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/media/index.d.ts +1 -0
- package/dist/media/index.js +2 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/types.d.ts +136 -0
- package/dist/media/types.js +2 -0
- package/dist/media/types.js.map +1 -0
- package/dist/merge/index.d.ts +2 -0
- package/dist/merge/index.js +2 -0
- package/dist/merge/index.js.map +1 -0
- package/dist/merge/strategy.d.ts +8 -0
- package/dist/merge/strategy.js +1168 -0
- package/dist/merge/strategy.js.map +1 -0
- package/dist/merge/types.d.ts +18 -0
- package/dist/merge/types.js +2 -0
- package/dist/merge/types.js.map +1 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.js +2 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/registry.d.ts +9 -0
- package/dist/providers/registry.js +92 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/types.d.ts +63 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/response/index.d.ts +1 -0
- package/dist/response/index.js +2 -0
- package/dist/response/index.js.map +1 -0
- package/dist/response/types.d.ts +32 -0
- package/dist/response/types.js +2 -0
- package/dist/response/types.js.map +1 -0
- package/dist/search/index.d.ts +1 -0
- package/dist/search/index.js +2 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/types.d.ts +26 -0
- package/dist/search/types.js +2 -0
- package/dist/search/types.js.map +1 -0
- package/dist/streaming/index.d.ts +1 -0
- package/dist/streaming/index.js +2 -0
- package/dist/streaming/index.js.map +1 -0
- package/dist/streaming/types.d.ts +126 -0
- package/dist/streaming/types.js +2 -0
- package/dist/streaming/types.js.map +1 -0
- package/dist/testing/fixtures.d.ts +4 -0
- package/dist/testing/fixtures.js +101 -0
- package/dist/testing/fixtures.js.map +1 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.js +3 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/providers.d.ts +26 -0
- package/dist/testing/providers.js +147 -0
- package/dist/testing/providers.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../src/merge/strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DetailsQuery } from "../details/index.js";
|
|
2
|
+
import type { MediaDetails } from "../media/index.js";
|
|
3
|
+
import type { ProviderDetailsResult, ProviderSearchResult } from "../providers/index.js";
|
|
4
|
+
import type { EngineWarning } from "../response/index.js";
|
|
5
|
+
import type { MediaSearchResult, SearchQuery } from "../search/index.js";
|
|
6
|
+
export type MatchStrength = "exact_id" | "exact_title_year_type" | "normalized_title_year_type" | "weak" | "none";
|
|
7
|
+
export interface MergeContext {
|
|
8
|
+
query?: SearchQuery | DetailsQuery;
|
|
9
|
+
language?: string;
|
|
10
|
+
providerPriority?: string[];
|
|
11
|
+
debug?: boolean;
|
|
12
|
+
warnings?: EngineWarning[];
|
|
13
|
+
includeIrrelevantSearchResults?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface MergeStrategy {
|
|
16
|
+
mergeSearchResults(results: ProviderSearchResult[], context: MergeContext): MediaSearchResult[];
|
|
17
|
+
mergeDetails(results: ProviderDetailsResult[], context: MergeContext): MediaDetails | null;
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/merge/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MediaProvider, ProviderDetailsQuery, ProviderInfo, ProviderSearchQuery } from "./types.js";
|
|
2
|
+
export declare class ProviderRegistry {
|
|
3
|
+
private readonly providers;
|
|
4
|
+
constructor(providers?: MediaProvider[]);
|
|
5
|
+
register(provider: MediaProvider): void;
|
|
6
|
+
getProviders(): ProviderInfo[];
|
|
7
|
+
selectSearchProviders(query: ProviderSearchQuery): MediaProvider[];
|
|
8
|
+
selectDetailsProviders(query: ProviderDetailsQuery): MediaProvider[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
const EXTERNAL_ID_SOURCES = [
|
|
2
|
+
"imdb",
|
|
3
|
+
"tmdb",
|
|
4
|
+
"kinopoisk",
|
|
5
|
+
"shikimori",
|
|
6
|
+
"myAnimeList",
|
|
7
|
+
"aniList",
|
|
8
|
+
"worldArt",
|
|
9
|
+
];
|
|
10
|
+
// Registry for provider registration and capability-based selection.
|
|
11
|
+
// Реестр для регистрации провайдеров и выбора по их возможностям.
|
|
12
|
+
export class ProviderRegistry {
|
|
13
|
+
providers = new Map();
|
|
14
|
+
constructor(providers = []) {
|
|
15
|
+
for (const provider of providers) {
|
|
16
|
+
this.register(provider);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
// Registers one provider and rejects duplicate stable names.
|
|
20
|
+
// Регистрирует одного провайдера и запрещает повторяющиеся стабильные имена.
|
|
21
|
+
register(provider) {
|
|
22
|
+
const name = provider.name.trim();
|
|
23
|
+
if (!name) {
|
|
24
|
+
throw new Error("Provider name is required.");
|
|
25
|
+
}
|
|
26
|
+
if (name !== provider.name) {
|
|
27
|
+
throw new Error(`Provider name "${provider.name}" must not include leading or trailing whitespace.`);
|
|
28
|
+
}
|
|
29
|
+
if (this.providers.has(provider.name)) {
|
|
30
|
+
throw new Error(`Provider with name "${provider.name}" is already registered.`);
|
|
31
|
+
}
|
|
32
|
+
this.providers.set(provider.name, provider);
|
|
33
|
+
}
|
|
34
|
+
// Returns safe provider metadata without provider internals or secrets.
|
|
35
|
+
// Возвращает безопасные метаданные провайдеров без внутренних данных и секретов.
|
|
36
|
+
getProviders() {
|
|
37
|
+
return Array.from(this.providers.values()).map((provider) => ({
|
|
38
|
+
name: provider.name,
|
|
39
|
+
version: provider.version,
|
|
40
|
+
kind: provider.kind,
|
|
41
|
+
capabilities: {
|
|
42
|
+
mediaTypes: [...provider.capabilities.mediaTypes],
|
|
43
|
+
search: {
|
|
44
|
+
byTitle: provider.capabilities.search.byTitle,
|
|
45
|
+
byExternalIds: [...provider.capabilities.search.byExternalIds],
|
|
46
|
+
},
|
|
47
|
+
details: {
|
|
48
|
+
byExternalIds: [...provider.capabilities.details.byExternalIds],
|
|
49
|
+
},
|
|
50
|
+
features: provider.capabilities.features ? [...provider.capabilities.features] : undefined,
|
|
51
|
+
},
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
// Selects providers that can handle a normalized search query.
|
|
55
|
+
// Выбирает провайдеров, которые могут обработать нормализованный поисковый запрос.
|
|
56
|
+
selectSearchProviders(query) {
|
|
57
|
+
const queryIdSources = getExternalIdSources(query.ids);
|
|
58
|
+
return Array.from(this.providers.values()).filter((provider) => {
|
|
59
|
+
if (query.type && !provider.capabilities.mediaTypes.includes(query.type)) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
const supportsTitleSearch = Boolean(query.title?.trim()) && provider.capabilities.search.byTitle;
|
|
63
|
+
const supportsIdSearch = queryIdSources.some((source) => provider.capabilities.search.byExternalIds.includes(source));
|
|
64
|
+
return supportsTitleSearch || supportsIdSearch;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
// Selects providers that can handle a normalized details query.
|
|
68
|
+
// Выбирает провайдеров, которые могут обработать нормализованный запрос деталей.
|
|
69
|
+
selectDetailsProviders(query) {
|
|
70
|
+
const queryIdSources = getExternalIdSources(query.ids);
|
|
71
|
+
return Array.from(this.providers.values()).filter((provider) => {
|
|
72
|
+
if (!provider.getDetails) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
if (query.type &&
|
|
76
|
+
!provider.capabilities.mediaTypes.includes(query.type) &&
|
|
77
|
+
!(query.type === "anime" && provider.capabilities.mediaTypes.includes("series"))) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
return queryIdSources.some((source) => provider.capabilities.details.byExternalIds.includes(source));
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Extracts present external ID sources from an ExternalIds object.
|
|
85
|
+
// Достает присутствующие источники внешних ID из объекта ExternalIds.
|
|
86
|
+
function getExternalIdSources(ids) {
|
|
87
|
+
if (!ids) {
|
|
88
|
+
return [];
|
|
89
|
+
}
|
|
90
|
+
return EXTERNAL_ID_SOURCES.filter((source) => Boolean(ids[source]));
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { ExternalIds, MediaDetails, MediaItem, MediaType, ProviderSource } from "../media/index.js";
|
|
2
|
+
export type ProviderKind = "metadata";
|
|
3
|
+
export type ExternalIdSource = "imdb" | "tmdb" | "kinopoisk" | "shikimori" | "myAnimeList" | "aniList" | "worldArt";
|
|
4
|
+
export type ProviderFeature = "posters" | "backdrops" | "ratings" | "genres" | "persons" | "seasons" | "episodes" | "alternative_titles";
|
|
5
|
+
export interface ProviderCapabilities {
|
|
6
|
+
mediaTypes: MediaType[];
|
|
7
|
+
search: {
|
|
8
|
+
byTitle: boolean;
|
|
9
|
+
byExternalIds: ExternalIdSource[];
|
|
10
|
+
};
|
|
11
|
+
details: {
|
|
12
|
+
byExternalIds: ExternalIdSource[];
|
|
13
|
+
};
|
|
14
|
+
features?: ProviderFeature[];
|
|
15
|
+
}
|
|
16
|
+
export interface ProviderContext {
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
timeoutMs?: number;
|
|
19
|
+
debug?: boolean;
|
|
20
|
+
language?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ProviderSearchQuery {
|
|
23
|
+
title?: string;
|
|
24
|
+
type?: MediaType;
|
|
25
|
+
year?: number;
|
|
26
|
+
ids?: ExternalIds;
|
|
27
|
+
limit?: number;
|
|
28
|
+
language?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface ProviderDetailsQuery {
|
|
31
|
+
id?: string;
|
|
32
|
+
ids?: ExternalIds;
|
|
33
|
+
type?: MediaType;
|
|
34
|
+
language?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface ProviderSearchResult {
|
|
37
|
+
provider: string;
|
|
38
|
+
item: MediaItem;
|
|
39
|
+
confidence?: number;
|
|
40
|
+
source?: ProviderSource;
|
|
41
|
+
raw?: unknown;
|
|
42
|
+
}
|
|
43
|
+
export interface ProviderDetailsResult {
|
|
44
|
+
provider: string;
|
|
45
|
+
details: MediaDetails;
|
|
46
|
+
confidence?: number;
|
|
47
|
+
source?: ProviderSource;
|
|
48
|
+
raw?: unknown;
|
|
49
|
+
}
|
|
50
|
+
export interface ProviderInfo {
|
|
51
|
+
name: string;
|
|
52
|
+
version?: string;
|
|
53
|
+
kind: ProviderKind;
|
|
54
|
+
capabilities: ProviderCapabilities;
|
|
55
|
+
}
|
|
56
|
+
export interface MediaProvider {
|
|
57
|
+
name: string;
|
|
58
|
+
version?: string;
|
|
59
|
+
kind: "metadata";
|
|
60
|
+
capabilities: ProviderCapabilities;
|
|
61
|
+
search(query: ProviderSearchQuery, context: ProviderContext): Promise<ProviderSearchResult[]>;
|
|
62
|
+
getDetails?(query: ProviderDetailsQuery, context: ProviderContext): Promise<ProviderDetailsResult | null>;
|
|
63
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "./types.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/response/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface ProviderFailure {
|
|
2
|
+
provider: string;
|
|
3
|
+
code: string;
|
|
4
|
+
retryable: boolean;
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ProviderExecutionMeta {
|
|
8
|
+
requested: string[];
|
|
9
|
+
successful: string[];
|
|
10
|
+
failed: ProviderFailure[];
|
|
11
|
+
}
|
|
12
|
+
export interface ProviderTimingMeta {
|
|
13
|
+
provider: string;
|
|
14
|
+
status: "success" | "failed";
|
|
15
|
+
tookMs: number;
|
|
16
|
+
}
|
|
17
|
+
export interface EngineWarning {
|
|
18
|
+
code: string;
|
|
19
|
+
message: string;
|
|
20
|
+
provider?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ResponseDebugMeta {
|
|
23
|
+
providers: string[];
|
|
24
|
+
timings: ProviderTimingMeta[];
|
|
25
|
+
}
|
|
26
|
+
export interface ResponseMeta {
|
|
27
|
+
providers: ProviderExecutionMeta;
|
|
28
|
+
cached: boolean;
|
|
29
|
+
tookMs: number;
|
|
30
|
+
warnings?: EngineWarning[];
|
|
31
|
+
debug?: ResponseDebugMeta;
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/response/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "./types.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ExternalIds, MediaItem, MediaType, ProviderSource } from "../media/index.js";
|
|
2
|
+
import type { ResponseMeta } from "../response/index.js";
|
|
3
|
+
export interface SearchQuery {
|
|
4
|
+
title?: string;
|
|
5
|
+
type?: MediaType;
|
|
6
|
+
year?: number;
|
|
7
|
+
ids?: ExternalIds;
|
|
8
|
+
imdb?: string;
|
|
9
|
+
tmdb?: string;
|
|
10
|
+
kinopoisk?: string;
|
|
11
|
+
shikimori?: string;
|
|
12
|
+
myAnimeList?: string;
|
|
13
|
+
aniList?: string;
|
|
14
|
+
limit?: number;
|
|
15
|
+
language?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface MediaSearchResult {
|
|
18
|
+
item: MediaItem;
|
|
19
|
+
score: number;
|
|
20
|
+
sources: ProviderSource[];
|
|
21
|
+
}
|
|
22
|
+
export interface SearchResponse {
|
|
23
|
+
query: SearchQuery;
|
|
24
|
+
results: MediaSearchResult[];
|
|
25
|
+
meta: ResponseMeta;
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/search/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "./types.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/streaming/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { ExternalIds, MediaType } from "../media/index.js";
|
|
2
|
+
import type { ExternalIdSource, ProviderContext } from "../providers/index.js";
|
|
3
|
+
import type { ResponseMeta } from "../response/index.js";
|
|
4
|
+
export interface StreamQuery {
|
|
5
|
+
type: MediaType;
|
|
6
|
+
ids?: ExternalIds;
|
|
7
|
+
imdb?: string;
|
|
8
|
+
tmdb?: string;
|
|
9
|
+
kinopoisk?: string;
|
|
10
|
+
shikimori?: string;
|
|
11
|
+
myAnimeList?: string;
|
|
12
|
+
aniList?: string;
|
|
13
|
+
title?: string;
|
|
14
|
+
year?: number;
|
|
15
|
+
seasonNumber?: number;
|
|
16
|
+
episodeNumber?: number;
|
|
17
|
+
absoluteEpisodeNumber?: number;
|
|
18
|
+
providers?: string[];
|
|
19
|
+
language?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface StreamMediaItem {
|
|
22
|
+
type: MediaType;
|
|
23
|
+
title?: string;
|
|
24
|
+
originalTitle?: string;
|
|
25
|
+
year?: number;
|
|
26
|
+
ids?: ExternalIds;
|
|
27
|
+
}
|
|
28
|
+
export interface StreamEpisodeRef {
|
|
29
|
+
seasonNumber?: number;
|
|
30
|
+
episodeNumber?: number;
|
|
31
|
+
absoluteEpisodeNumber?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface StreamEpisodeAvailability extends StreamEpisodeRef {
|
|
34
|
+
title?: string;
|
|
35
|
+
options: StreamOption[];
|
|
36
|
+
}
|
|
37
|
+
export type PlayerSourceKind = "embed" | "hls" | "mp4" | "external";
|
|
38
|
+
export interface PlayerSource {
|
|
39
|
+
kind: PlayerSourceKind;
|
|
40
|
+
label: string;
|
|
41
|
+
providerPlayerId?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface StreamAccess {
|
|
44
|
+
url: string;
|
|
45
|
+
method?: "GET" | "POST";
|
|
46
|
+
headers?: Record<string, string>;
|
|
47
|
+
referer?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface TranslationInfo {
|
|
50
|
+
id?: string;
|
|
51
|
+
title: string;
|
|
52
|
+
type: "dub" | "voiceover" | "subtitles" | "original" | "unknown";
|
|
53
|
+
language?: string;
|
|
54
|
+
team?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface QualityInfo {
|
|
57
|
+
label: string;
|
|
58
|
+
height?: number;
|
|
59
|
+
width?: number;
|
|
60
|
+
bitrateKbps?: number;
|
|
61
|
+
codec?: string;
|
|
62
|
+
}
|
|
63
|
+
export type SubtitleFormat = "vtt" | "srt" | "ass" | "unknown";
|
|
64
|
+
export interface SubtitleTrack {
|
|
65
|
+
language?: string;
|
|
66
|
+
label?: string;
|
|
67
|
+
format?: SubtitleFormat;
|
|
68
|
+
url?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface AudioTrack {
|
|
71
|
+
language?: string;
|
|
72
|
+
label?: string;
|
|
73
|
+
codec?: string;
|
|
74
|
+
}
|
|
75
|
+
export type StreamAvailabilityStatus = "available" | "region_locked" | "temporarily_unavailable" | "requires_account" | "unknown";
|
|
76
|
+
export interface StreamOption {
|
|
77
|
+
id: string;
|
|
78
|
+
provider: string;
|
|
79
|
+
player: PlayerSource;
|
|
80
|
+
translation?: TranslationInfo;
|
|
81
|
+
quality?: QualityInfo;
|
|
82
|
+
subtitles?: SubtitleTrack[];
|
|
83
|
+
audio?: AudioTrack[];
|
|
84
|
+
episode?: StreamEpisodeRef;
|
|
85
|
+
access: StreamAccess;
|
|
86
|
+
availability: StreamAvailabilityStatus;
|
|
87
|
+
expiresAt?: string;
|
|
88
|
+
sourceUrl?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface StreamingProviderSource {
|
|
91
|
+
provider: string;
|
|
92
|
+
url?: string;
|
|
93
|
+
ids?: ExternalIds;
|
|
94
|
+
}
|
|
95
|
+
export interface MediaAvailability {
|
|
96
|
+
query: StreamQuery;
|
|
97
|
+
item?: StreamMediaItem;
|
|
98
|
+
episodes?: StreamEpisodeAvailability[];
|
|
99
|
+
options: StreamOption[];
|
|
100
|
+
sourceProviders: StreamingProviderSource[];
|
|
101
|
+
checkedAt: string;
|
|
102
|
+
meta?: ResponseMeta;
|
|
103
|
+
}
|
|
104
|
+
export type StreamingProviderFeature = "embed" | "hls" | "mp4" | "external" | "translations" | "subtitles" | "qualities" | "episode_mapping" | "headers";
|
|
105
|
+
export interface StreamingProviderCapabilities {
|
|
106
|
+
mediaTypes: MediaType[];
|
|
107
|
+
lookup: {
|
|
108
|
+
byTitle: boolean;
|
|
109
|
+
byExternalIds: ExternalIdSource[];
|
|
110
|
+
byEpisode: boolean;
|
|
111
|
+
};
|
|
112
|
+
features?: StreamingProviderFeature[];
|
|
113
|
+
}
|
|
114
|
+
export interface StreamingProviderInfo {
|
|
115
|
+
name: string;
|
|
116
|
+
version?: string;
|
|
117
|
+
kind: "streaming";
|
|
118
|
+
capabilities: StreamingProviderCapabilities;
|
|
119
|
+
}
|
|
120
|
+
export interface StreamingProvider {
|
|
121
|
+
name: string;
|
|
122
|
+
version?: string;
|
|
123
|
+
kind: "streaming";
|
|
124
|
+
capabilities: StreamingProviderCapabilities;
|
|
125
|
+
getAvailability(query: StreamQuery, context: ProviderContext): Promise<MediaAvailability | null>;
|
|
126
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/streaming/types.ts"],"names":[],"mappings":""}
|