@media-engine/providers 1.2.0 → 1.4.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/README.md +16 -3
- package/README.ru.md +16 -2
- package/dist/anilist/index.js +5 -2
- package/dist/anilist/index.js.map +1 -1
- package/dist/package-version.d.ts +2 -2
- package/dist/package-version.js +1 -1
- package/dist/videohub-streaming/cache.d.ts +19 -0
- package/dist/videohub-streaming/cache.js +36 -0
- package/dist/videohub-streaming/cache.js.map +1 -0
- package/dist/videohub-streaming/client.d.ts +11 -0
- package/dist/videohub-streaming/client.js +78 -23
- package/dist/videohub-streaming/client.js.map +1 -1
- package/dist/videohub-streaming/config.d.ts +4 -0
- package/dist/videohub-streaming/config.js +13 -2
- package/dist/videohub-streaming/config.js.map +1 -1
- package/dist/videohub-streaming/index.js +81 -22
- package/dist/videohub-streaming/index.js.map +1 -1
- package/dist/videohub-streaming/mapping.d.ts +2 -1
- package/dist/videohub-streaming/mapping.js +51 -2
- package/dist/videohub-streaming/mapping.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -70,6 +70,15 @@ const result = await media.getAvailability({
|
|
|
70
70
|
seasonNumber: 1,
|
|
71
71
|
episodeNumber: 1,
|
|
72
72
|
});
|
|
73
|
+
|
|
74
|
+
for await (const snapshot of media.getAvailabilityProgressively({
|
|
75
|
+
type: "series",
|
|
76
|
+
ids: { kinopoisk: "435" },
|
|
77
|
+
seasonNumber: 1,
|
|
78
|
+
episodeNumber: 1,
|
|
79
|
+
})) {
|
|
80
|
+
updatePlayerSources(snapshot.availability?.options ?? []);
|
|
81
|
+
}
|
|
73
82
|
```
|
|
74
83
|
|
|
75
84
|
The package also exports `ddbbStreamingProvider()`, `aniLibertyStreamingProvider()`,
|
|
@@ -81,12 +90,16 @@ known copyright/service placeholder videos. A user-owned device token raises the
|
|
|
81
90
|
Authenticated mode requires an HTTPS `baseUrl` unless the application explicitly enables
|
|
82
91
|
`allowInsecureHttpToken` for a local compatibility test. That override sends the token without TLS
|
|
83
92
|
and must not be used in a public deployment. Returned CDN video URLs use HTTPS. VeoVeo uses DDBB only to resolve its
|
|
84
|
-
public content ID, discards the iframe token, and returns direct signed HTTPS HLS. VideoHUB uses a Kinopoisk ID
|
|
85
|
-
|
|
86
|
-
|
|
93
|
+
public content ID, discards the iframe token, and returns direct signed HTTPS HLS. VideoHUB uses a Kinopoisk ID, lists an
|
|
94
|
+
anime season/episode catalog from one playlist request, and returns short-lived direct MP4 qualities
|
|
95
|
+
for movies or one exact series/anime episode. Anime accepts an absolute episode or a seasonal episode
|
|
96
|
+
pair and preserves both identities in its result. Its links are bound to the
|
|
87
97
|
playback User-Agent and may also be bound to the requesting public IP. Pass the playback client's
|
|
88
98
|
exact User-Agent as `MediaEngineOperationOptions.playbackUserAgent`; the required value is retained
|
|
89
99
|
in each option's `access.headers` for non-browser clients.
|
|
100
|
+
VideoHUB implements progressive availability, so every resolved translation can be displayed before
|
|
101
|
+
slower lookups finish. Its bounded warm cache keeps playlists and signed video resolutions separate,
|
|
102
|
+
never serves signed links stale, and preserves their original expiry.
|
|
90
103
|
Rutube performs a bounded exact title/year movie search and returns only Rutube's documented public
|
|
91
104
|
embed player. It does not expose or proxy Rutube media URLs and intentionally skips series.
|
|
92
105
|
|
package/README.ru.md
CHANGED
|
@@ -70,6 +70,15 @@ const result = await media.getAvailability({
|
|
|
70
70
|
seasonNumber: 1,
|
|
71
71
|
episodeNumber: 1,
|
|
72
72
|
});
|
|
73
|
+
|
|
74
|
+
for await (const snapshot of media.getAvailabilityProgressively({
|
|
75
|
+
type: "series",
|
|
76
|
+
ids: { kinopoisk: "435" },
|
|
77
|
+
seasonNumber: 1,
|
|
78
|
+
episodeNumber: 1,
|
|
79
|
+
})) {
|
|
80
|
+
updatePlayerSources(snapshot.availability?.options ?? []);
|
|
81
|
+
}
|
|
73
82
|
```
|
|
74
83
|
|
|
75
84
|
Пакет также экспортирует `ddbbStreamingProvider()`, `aniLibertyStreamingProvider()`,
|
|
@@ -83,12 +92,17 @@ const result = await media.getAvailability({
|
|
|
83
92
|
проверки совместимости. Этот режим отправляет токен без TLS и не должен использоваться в публичном
|
|
84
93
|
развёртывании. Ссылки на видео CDN используют HTTPS. VeoVeo использует DDBB только для получения публичного
|
|
85
94
|
content ID, отбрасывает iframe-токен и возвращает прямой подписанный HTTPS HLS.
|
|
86
|
-
VideoHUB ищет по ID
|
|
87
|
-
|
|
95
|
+
VideoHUB ищет по ID Кинопоиска и одним запросом playlist возвращает каталог сезонов и серий аниме.
|
|
96
|
+
Для воспроизведения сериала или аниме нужна точная серия: аниме можно запросить по абсолютному номеру
|
|
97
|
+
либо по паре сезон/серия; ответ сохраняет обе идентичности. Он возвращает
|
|
88
98
|
короткоживущие прямые MP4 в нескольких качествах. Ссылки привязаны к User-Agent проигрывающего
|
|
89
99
|
клиента и могут быть привязаны к внешнему IP. Передавайте точный User-Agent клиента через
|
|
90
100
|
`MediaEngineOperationOptions.playbackUserAgent`; для небраузерных клиентов нужное значение также
|
|
91
101
|
сохраняется в `access.headers` каждого варианта.
|
|
102
|
+
VideoHUB поддерживает прогрессивную доступность: каждый готовый перевод можно показать, не ожидая
|
|
103
|
+
более медленных lookup. Ограниченный warm-cache раздельно хранит плейлисты и ещё действующие
|
|
104
|
+
подписанные video resolutions, никогда не выдаёт подписанные ссылки stale и сохраняет их исходный
|
|
105
|
+
срок действия.
|
|
92
106
|
Rutube выполняет ограниченный точный поиск фильма по названию и году и возвращает только
|
|
93
107
|
официальный публичный embed-плеер Rutube. Прямые media-URL не извлекаются и не проксируются;
|
|
94
108
|
сериалы намеренно не поддерживаются.
|
package/dist/anilist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ const MEDIA_FIELDS = `
|
|
|
8
8
|
id idMal title { romaji english native } synonyms format status episodes duration
|
|
9
9
|
startDate { year month day } endDate { year month day }
|
|
10
10
|
description(asHtml: false) averageScore popularity isAdult countryOfOrigin
|
|
11
|
-
coverImage { extraLarge large } genres siteUrl
|
|
11
|
+
coverImage { extraLarge large } bannerImage genres siteUrl
|
|
12
12
|
`;
|
|
13
13
|
// Creates a public no-token AniList anime metadata provider.
|
|
14
14
|
// Создает публичный no-token AniList anime metadata provider.
|
|
@@ -31,7 +31,7 @@ export function aniListProvider(options = {}) {
|
|
|
31
31
|
mediaTypes: ["anime"],
|
|
32
32
|
search: { byTitle: true, byExternalIds: ["aniList", "myAnimeList"] },
|
|
33
33
|
details: { byExternalIds: ["aniList", "myAnimeList"] },
|
|
34
|
-
features: ["posters", "ratings", "genres"],
|
|
34
|
+
features: ["posters", "backdrops", "ratings", "genres"],
|
|
35
35
|
},
|
|
36
36
|
search: (query, context) => searchAniList(config, query, context),
|
|
37
37
|
getDetails: (query, context) => getAniListDetails(config, query, context),
|
|
@@ -114,6 +114,7 @@ function mapMediaItem(media) {
|
|
|
114
114
|
releaseDate,
|
|
115
115
|
description: normalizeText(media.description),
|
|
116
116
|
poster: mapPoster(media.coverImage),
|
|
117
|
+
backdrop: createProviderImage(media.bannerImage, "backdrop", PROVIDER_NAME),
|
|
117
118
|
genres: mapGenres(media.genres),
|
|
118
119
|
ratings: mapRating(media),
|
|
119
120
|
ids: { aniList: String(media.id), myAnimeList: media.idMal ? String(media.idMal) : undefined },
|
|
@@ -182,6 +183,7 @@ function repairMojibake(value) {
|
|
|
182
183
|
}
|
|
183
184
|
}
|
|
184
185
|
function mapDetails(item, media) {
|
|
186
|
+
const images = [item.poster, item.backdrop].filter((image) => Boolean(image));
|
|
185
187
|
return {
|
|
186
188
|
...item,
|
|
187
189
|
type: "anime",
|
|
@@ -189,6 +191,7 @@ function mapDetails(item, media) {
|
|
|
189
191
|
runtimeMinutes: media.duration ?? undefined,
|
|
190
192
|
countries: media.countryOfOrigin ? [media.countryOfOrigin] : undefined,
|
|
191
193
|
languages: media.countryOfOrigin === "JP" ? ["ja"] : undefined,
|
|
194
|
+
images: images.length ? images : undefined,
|
|
192
195
|
sourceProviders: [createSource(item.ids)],
|
|
193
196
|
animeKind: mapKind(media.format),
|
|
194
197
|
episodesCount: media.episodes ?? undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/anilist/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/anilist/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const MEDIA_ENGINE_PROVIDERS_VERSION = "1.
|
|
2
|
-
export declare const MEDIA_ENGINE_DEFAULT_USER_AGENT = "MediaEngine/1.
|
|
1
|
+
export declare const MEDIA_ENGINE_PROVIDERS_VERSION = "1.4.0";
|
|
2
|
+
export declare const MEDIA_ENGINE_DEFAULT_USER_AGENT = "MediaEngine/1.4.0 (https://github.com/Yaneart/media-engine)";
|
package/dist/package-version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Keep this runtime value aligned with packages/providers/package.json.
|
|
2
2
|
// scripts/check-release-consistency.mjs enforces the manifest/runtime contract.
|
|
3
|
-
export const MEDIA_ENGINE_PROVIDERS_VERSION = "1.
|
|
3
|
+
export const MEDIA_ENGINE_PROVIDERS_VERSION = "1.4.0";
|
|
4
4
|
export const MEDIA_ENGINE_DEFAULT_USER_AGENT = `MediaEngine/${MEDIA_ENGINE_PROVIDERS_VERSION} (https://github.com/Yaneart/media-engine)`;
|
|
5
5
|
//# sourceMappingURL=package-version.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { VideoHubPlaylist, VideoHubSourceResolution } from "./client.js";
|
|
2
|
+
export declare class VideoHubStreamingCache {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(options: {
|
|
5
|
+
maxEntries: number;
|
|
6
|
+
playlistTtlMs: number;
|
|
7
|
+
now: () => number;
|
|
8
|
+
});
|
|
9
|
+
getPlaylist(key: string): {
|
|
10
|
+
playlist: VideoHubPlaylist;
|
|
11
|
+
sourceUrl: string;
|
|
12
|
+
} | undefined;
|
|
13
|
+
setPlaylist(key: string, value: {
|
|
14
|
+
playlist: VideoHubPlaylist;
|
|
15
|
+
sourceUrl: string;
|
|
16
|
+
}): void;
|
|
17
|
+
getVideo(key: string): VideoHubSourceResolution | undefined;
|
|
18
|
+
setVideo(key: string, value: VideoHubSourceResolution): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { MemoryCache } from "@media-engine/core";
|
|
2
|
+
const PLAYLIST_PREFIX = "playlist";
|
|
3
|
+
const VIDEO_PREFIX = "video";
|
|
4
|
+
// Bounded process-local cache; signed links are never served stale or beyond their original expiry.
|
|
5
|
+
// Ограниченный process-local кэш; подписанные ссылки не выдаются stale или после исходного expiry.
|
|
6
|
+
export class VideoHubStreamingCache {
|
|
7
|
+
#cache;
|
|
8
|
+
#playlistTtlMs;
|
|
9
|
+
#now;
|
|
10
|
+
constructor(options) {
|
|
11
|
+
this.#cache = new MemoryCache({ maxEntries: options.maxEntries, now: options.now });
|
|
12
|
+
this.#playlistTtlMs = options.playlistTtlMs;
|
|
13
|
+
this.#now = options.now;
|
|
14
|
+
}
|
|
15
|
+
getPlaylist(key) {
|
|
16
|
+
return this.#cache.get(`${PLAYLIST_PREFIX}:${key}`);
|
|
17
|
+
}
|
|
18
|
+
setPlaylist(key, value) {
|
|
19
|
+
if (this.#playlistTtlMs <= 0)
|
|
20
|
+
return;
|
|
21
|
+
this.#cache.set(`${PLAYLIST_PREFIX}:${key}`, value, {
|
|
22
|
+
ttlMs: this.#playlistTtlMs,
|
|
23
|
+
staleTtlMs: 0,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
getVideo(key) {
|
|
27
|
+
return this.#cache.get(`${VIDEO_PREFIX}:${key}`);
|
|
28
|
+
}
|
|
29
|
+
setVideo(key, value) {
|
|
30
|
+
const ttlMs = Date.parse(value.expiresAt) - this.#now() - 1_000;
|
|
31
|
+
if (ttlMs <= 0)
|
|
32
|
+
return;
|
|
33
|
+
this.#cache.set(`${VIDEO_PREFIX}:${key}`, value, { ttlMs, staleTtlMs: 0 });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/videohub-streaming/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,oGAAoG;AACpG,mGAAmG;AACnG,MAAM,OAAO,sBAAsB;IACxB,MAAM,CAAc;IACpB,cAAc,CAAS;IACvB,IAAI,CAAe;IAE5B,YAAY,OAAyE;QACnF,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,IAAI,GAAG,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,WAAW,CAAC,GAAW,EAAE,KAAwD;QAC/E,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC;YAAE,OAAO;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE;YAClD,KAAK,EAAE,IAAI,CAAC,cAAc;YAC1B,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,IAAI,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,KAA+B;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC;QAChE,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;CACF"}
|
|
@@ -21,6 +21,16 @@ export interface VideoHubMp4Source {
|
|
|
21
21
|
export interface ResolvedVideoHubItem extends VideoHubPlaylistItem {
|
|
22
22
|
sources: VideoHubMp4Source[];
|
|
23
23
|
sourceUrl: string;
|
|
24
|
+
expiresAt?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface VideoHubSourceResolution {
|
|
27
|
+
sources: VideoHubMp4Source[];
|
|
28
|
+
sourceUrl: string;
|
|
29
|
+
expiresAt: string;
|
|
30
|
+
}
|
|
31
|
+
export interface VideoHubItemResolutionSnapshot {
|
|
32
|
+
items: ResolvedVideoHubItem[];
|
|
33
|
+
complete: boolean;
|
|
24
34
|
}
|
|
25
35
|
export declare function resolveVideoHubKinopoiskId(query: MediaAvailability["query"]): string | undefined;
|
|
26
36
|
export declare function loadVideoHubPlaylist(config: VideoHubStreamingConfig, kinopoiskId: string, context: ProviderContext, playbackUserAgent: string): Promise<{
|
|
@@ -28,6 +38,7 @@ export declare function loadVideoHubPlaylist(config: VideoHubStreamingConfig, ki
|
|
|
28
38
|
sourceUrl: string;
|
|
29
39
|
}>;
|
|
30
40
|
export declare function resolveVideoHubItems(config: VideoHubStreamingConfig, playlist: VideoHubPlaylist, query: MediaAvailability["query"], context: ProviderContext, playbackUserAgent: string): Promise<ResolvedVideoHubItem[]>;
|
|
41
|
+
export declare function resolveVideoHubItemsProgressively(config: VideoHubStreamingConfig, playlist: VideoHubPlaylist, query: MediaAvailability["query"], context: ProviderContext, playbackUserAgent: string): AsyncGenerator<VideoHubItemResolutionSnapshot>;
|
|
31
42
|
export declare function createVideoHubPlaylistUrl(baseUrl: string, kinopoiskId: string): URL;
|
|
32
43
|
export declare function createVideoHubVideoUrl(baseUrl: string, vkId: string): URL;
|
|
33
44
|
export declare function parseVideoHubPlaylist(provider: string, value: unknown, itemLimit: number): VideoHubPlaylist;
|
|
@@ -20,6 +20,11 @@ export function resolveVideoHubKinopoiskId(query) {
|
|
|
20
20
|
return kinopoisk && /^[1-9]\d{0,11}$/u.test(kinopoisk) ? kinopoisk : undefined;
|
|
21
21
|
}
|
|
22
22
|
export async function loadVideoHubPlaylist(config, kinopoiskId, context, playbackUserAgent) {
|
|
23
|
+
throwIfContextAborted(context);
|
|
24
|
+
const cacheKey = `${kinopoiskId}\u0000${playbackUserAgent}`;
|
|
25
|
+
const cached = config.cache.getPlaylist(cacheKey);
|
|
26
|
+
if (cached)
|
|
27
|
+
return cached;
|
|
23
28
|
const url = createVideoHubPlaylistUrl(config.baseUrl, kinopoiskId);
|
|
24
29
|
const payload = await fetchJson({
|
|
25
30
|
provider: config.name,
|
|
@@ -31,10 +36,12 @@ export async function loadVideoHubPlaylist(config, kinopoiskId, context, playbac
|
|
|
31
36
|
maxResponseBytes: config.maxPlaylistResponseBytes,
|
|
32
37
|
init: { headers: createHeaders(playbackUserAgent) },
|
|
33
38
|
});
|
|
34
|
-
|
|
39
|
+
const result = {
|
|
35
40
|
playlist: parseVideoHubPlaylist(config.name, payload, config.playlistItemLimit),
|
|
36
41
|
sourceUrl: url.href,
|
|
37
42
|
};
|
|
43
|
+
config.cache.setPlaylist(cacheKey, result);
|
|
44
|
+
return result;
|
|
38
45
|
}
|
|
39
46
|
function createVideoLookupContext(config, context) {
|
|
40
47
|
return {
|
|
@@ -45,33 +52,61 @@ function createVideoLookupContext(config, context) {
|
|
|
45
52
|
};
|
|
46
53
|
}
|
|
47
54
|
export async function resolveVideoHubItems(config, playlist, query, context, playbackUserAgent) {
|
|
55
|
+
let finalItems = [];
|
|
56
|
+
for await (const snapshot of resolveVideoHubItemsProgressively(config, playlist, query, context, playbackUserAgent)) {
|
|
57
|
+
finalItems = snapshot.items;
|
|
58
|
+
}
|
|
59
|
+
return finalItems;
|
|
60
|
+
}
|
|
61
|
+
// Resolves bounded video lookups concurrently and publishes every playable partial aggregate.
|
|
62
|
+
// Параллельно выполняет ограниченные video lookup и публикует каждый доступный частичный агрегат.
|
|
63
|
+
export async function* resolveVideoHubItemsProgressively(config, playlist, query, context, playbackUserAgent) {
|
|
48
64
|
const selected = selectVideoHubPlaylistItems(playlist, query).slice(0, config.videoLookupLimit);
|
|
49
|
-
if (selected.length === 0)
|
|
50
|
-
|
|
65
|
+
if (selected.length === 0) {
|
|
66
|
+
yield { items: [], complete: true };
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
51
69
|
const resolved = new Array(selected.length);
|
|
70
|
+
const running = new Map();
|
|
52
71
|
let nextIndex = 0;
|
|
53
72
|
let firstError;
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
}
|
|
73
|
+
const startNext = () => {
|
|
74
|
+
if (nextIndex >= selected.length)
|
|
75
|
+
return;
|
|
76
|
+
const index = nextIndex;
|
|
77
|
+
nextIndex += 1;
|
|
78
|
+
const item = selected[index];
|
|
79
|
+
const pending = loadVideoHubSources(config, item.vkId, context, playbackUserAgent).then((result) => ({ index, item, result }), (error) => {
|
|
80
|
+
rethrowIfProviderAborted(context, error);
|
|
81
|
+
return { index, error };
|
|
82
|
+
});
|
|
83
|
+
// A consumer may stop after the first snapshot; keep later abort rejections observed.
|
|
84
|
+
void pending.catch(() => undefined);
|
|
85
|
+
running.set(index, pending);
|
|
69
86
|
};
|
|
70
|
-
|
|
87
|
+
for (let index = 0; index < Math.min(config.videoLookupConcurrency, selected.length); index += 1) {
|
|
88
|
+
startNext();
|
|
89
|
+
}
|
|
90
|
+
while (running.size > 0) {
|
|
91
|
+
const outcome = await Promise.race(running.values());
|
|
92
|
+
running.delete(outcome.index);
|
|
93
|
+
startNext();
|
|
94
|
+
if ("error" in outcome) {
|
|
95
|
+
firstError ??= outcome.error;
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (outcome.result.sources.length === 0)
|
|
99
|
+
continue;
|
|
100
|
+
resolved[outcome.index] = { ...outcome.item, ...outcome.result };
|
|
101
|
+
yield {
|
|
102
|
+
items: resolved.filter((item) => item !== undefined),
|
|
103
|
+
complete: false,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
71
106
|
const available = resolved.filter((item) => item !== undefined);
|
|
72
107
|
if (available.length === 0 && firstError !== undefined)
|
|
73
108
|
throw firstError;
|
|
74
|
-
|
|
109
|
+
yield { items: available, complete: true };
|
|
75
110
|
}
|
|
76
111
|
export function createVideoHubPlaylistUrl(baseUrl, kinopoiskId) {
|
|
77
112
|
const url = new URL("/api/v1/player/sv/playlist", `${baseUrl}/`);
|
|
@@ -142,7 +177,9 @@ export function selectVideoHubPlaylistItems(playlist, query) {
|
|
|
142
177
|
function addAbsoluteEpisodeNumbers(items) {
|
|
143
178
|
const episodeKeys = [
|
|
144
179
|
...new Set(items.flatMap((item) => {
|
|
145
|
-
if (item.seasonNumber === undefined ||
|
|
180
|
+
if (item.seasonNumber === undefined ||
|
|
181
|
+
item.seasonNumber === 0 ||
|
|
182
|
+
item.episodeNumber === undefined)
|
|
146
183
|
return [];
|
|
147
184
|
return [`${item.seasonNumber}:${item.episodeNumber}`];
|
|
148
185
|
})),
|
|
@@ -151,6 +188,8 @@ function addAbsoluteEpisodeNumbers(items) {
|
|
|
151
188
|
return items.flatMap((item) => {
|
|
152
189
|
if (item.seasonNumber === undefined || item.episodeNumber === undefined)
|
|
153
190
|
return [];
|
|
191
|
+
if (item.seasonNumber === 0)
|
|
192
|
+
return [item];
|
|
154
193
|
const absoluteEpisodeNumber = absoluteByEpisode.get(`${item.seasonNumber}:${item.episodeNumber}`);
|
|
155
194
|
return absoluteEpisodeNumber === undefined ? [] : [{ ...item, absoluteEpisodeNumber }];
|
|
156
195
|
});
|
|
@@ -161,6 +200,11 @@ function compareEpisodeKeys(left, right) {
|
|
|
161
200
|
return leftSeason - rightSeason || leftEpisode - rightEpisode;
|
|
162
201
|
}
|
|
163
202
|
async function loadVideoHubSources(config, vkId, context, playbackUserAgent) {
|
|
203
|
+
throwIfContextAborted(context);
|
|
204
|
+
const cacheKey = `${vkId}\u0000${playbackUserAgent}`;
|
|
205
|
+
const cached = config.cache.getVideo(cacheKey);
|
|
206
|
+
if (cached)
|
|
207
|
+
return cached;
|
|
164
208
|
const url = createVideoHubVideoUrl(config.baseUrl, vkId);
|
|
165
209
|
const payload = await fetchJson({
|
|
166
210
|
provider: config.name,
|
|
@@ -172,10 +216,13 @@ async function loadVideoHubSources(config, vkId, context, playbackUserAgent) {
|
|
|
172
216
|
maxResponseBytes: config.maxVideoResponseBytes,
|
|
173
217
|
init: { headers: createHeaders(playbackUserAgent) },
|
|
174
218
|
});
|
|
175
|
-
|
|
219
|
+
const result = {
|
|
176
220
|
sources: parseVideoHubSources(config.name, payload),
|
|
177
221
|
sourceUrl: url.href,
|
|
222
|
+
expiresAt: new Date(config.now() + config.linkTtlMs).toISOString(),
|
|
178
223
|
};
|
|
224
|
+
config.cache.setVideo(cacheKey, result);
|
|
225
|
+
return result;
|
|
179
226
|
}
|
|
180
227
|
function parsePlaylistItem(value, isSerial) {
|
|
181
228
|
if (!isRecord(value))
|
|
@@ -183,7 +230,7 @@ function parsePlaylistItem(value, isSerial) {
|
|
|
183
230
|
const vkId = readIdentifier(value.vkId);
|
|
184
231
|
if (!vkId)
|
|
185
232
|
return undefined;
|
|
186
|
-
const seasonNumber = isSerial ?
|
|
233
|
+
const seasonNumber = isSerial ? readNonNegativeInteger(value.season) : undefined;
|
|
187
234
|
const episodeNumber = isSerial ? readPositiveInteger(value.episode) : undefined;
|
|
188
235
|
if (isSerial && (seasonNumber === undefined || episodeNumber === undefined))
|
|
189
236
|
return undefined;
|
|
@@ -219,6 +266,9 @@ function readIdentifier(value) {
|
|
|
219
266
|
function readPositiveInteger(value) {
|
|
220
267
|
return Number.isSafeInteger(value) && value > 0 ? value : undefined;
|
|
221
268
|
}
|
|
269
|
+
function readNonNegativeInteger(value) {
|
|
270
|
+
return Number.isSafeInteger(value) && value >= 0 ? value : undefined;
|
|
271
|
+
}
|
|
222
272
|
function readString(value, maxLength) {
|
|
223
273
|
if (typeof value !== "string")
|
|
224
274
|
return undefined;
|
|
@@ -236,4 +286,9 @@ function invalidResponse(provider, stage) {
|
|
|
236
286
|
retryable: false,
|
|
237
287
|
});
|
|
238
288
|
}
|
|
289
|
+
function throwIfContextAborted(context) {
|
|
290
|
+
if (context.signal?.aborted) {
|
|
291
|
+
throw context.signal.reason ?? new Error("VideoHUB operation was aborted.");
|
|
292
|
+
}
|
|
293
|
+
}
|
|
239
294
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/videohub-streaming/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/videohub-streaming/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { StreamingProviderCapabilities } from "@media-engine/core";
|
|
2
2
|
import { ProviderRateLimitGate, type ProviderFetch } from "../shared/index.js";
|
|
3
|
+
import { VideoHubStreamingCache } from "./cache.js";
|
|
3
4
|
export interface VideoHubStreamingProviderOptions {
|
|
4
5
|
name?: string;
|
|
5
6
|
version?: string;
|
|
@@ -12,6 +13,8 @@ export interface VideoHubStreamingProviderOptions {
|
|
|
12
13
|
videoLookupConcurrency?: number;
|
|
13
14
|
videoLookupTimeoutMs?: number;
|
|
14
15
|
linkTtlMs?: number;
|
|
16
|
+
playlistCacheTtlMs?: number;
|
|
17
|
+
cacheMaxEntries?: number;
|
|
15
18
|
userAgent?: string;
|
|
16
19
|
now?: () => number;
|
|
17
20
|
}
|
|
@@ -27,6 +30,7 @@ export interface VideoHubStreamingConfig {
|
|
|
27
30
|
videoLookupConcurrency: number;
|
|
28
31
|
videoLookupTimeoutMs: number;
|
|
29
32
|
linkTtlMs: number;
|
|
33
|
+
cache: VideoHubStreamingCache;
|
|
30
34
|
userAgent: string;
|
|
31
35
|
now: () => number;
|
|
32
36
|
}
|
|
@@ -2,6 +2,7 @@ import { MEDIA_ENGINE_DEFAULT_USER_AGENT } from "../package-version.js";
|
|
|
2
2
|
import { ProviderRateLimitGate } from "../shared/index.js";
|
|
3
3
|
import { resolveBoundedIntegerOption } from "../shared/options.js";
|
|
4
4
|
import { createHardenedProviderFetch } from "../shared/safe-fetch.js";
|
|
5
|
+
import { VideoHubStreamingCache } from "./cache.js";
|
|
5
6
|
const DEFAULT_PROVIDER_NAME = "videohub-streaming";
|
|
6
7
|
const DEFAULT_BASE_URL = "https://plapi.cdnvideohub.com";
|
|
7
8
|
const DEFAULT_MAX_PLAYLIST_RESPONSE_BYTES = 2 * 1024 * 1024;
|
|
@@ -11,9 +12,14 @@ const DEFAULT_VIDEO_LOOKUP_LIMIT = 8;
|
|
|
11
12
|
const DEFAULT_VIDEO_LOOKUP_CONCURRENCY = 4;
|
|
12
13
|
const DEFAULT_VIDEO_LOOKUP_TIMEOUT_MS = 15_000;
|
|
13
14
|
const DEFAULT_LINK_TTL_MS = 5 * 60_000;
|
|
15
|
+
const DEFAULT_PLAYLIST_CACHE_TTL_MS = 5 * 60_000;
|
|
16
|
+
const DEFAULT_CACHE_MAX_ENTRIES = 256;
|
|
14
17
|
const DEFAULT_ADDRESS_ATTEMPT_TIMEOUT_MS = 3_500;
|
|
15
18
|
export function createVideoHubConfig(options) {
|
|
16
19
|
const name = normalizeProviderName(options.name ?? DEFAULT_PROVIDER_NAME);
|
|
20
|
+
const now = options.now ?? Date.now;
|
|
21
|
+
const playlistCacheTtlMs = resolveBoundedIntegerOption(options.playlistCacheTtlMs, DEFAULT_PLAYLIST_CACHE_TTL_MS, "VideoHUB streaming playlistCacheTtlMs", 0, 60 * 60_000);
|
|
22
|
+
const cacheMaxEntries = resolveBoundedIntegerOption(options.cacheMaxEntries, DEFAULT_CACHE_MAX_ENTRIES, "VideoHUB streaming cacheMaxEntries", 2, 2_048);
|
|
17
23
|
return {
|
|
18
24
|
name,
|
|
19
25
|
baseUrl: normalizeBaseUrl(options.baseUrl ?? DEFAULT_BASE_URL),
|
|
@@ -31,8 +37,13 @@ export function createVideoHubConfig(options) {
|
|
|
31
37
|
videoLookupConcurrency: resolveBoundedIntegerOption(options.videoLookupConcurrency, DEFAULT_VIDEO_LOOKUP_CONCURRENCY, "VideoHUB streaming videoLookupConcurrency", 1, 8),
|
|
32
38
|
videoLookupTimeoutMs: resolveBoundedIntegerOption(options.videoLookupTimeoutMs, DEFAULT_VIDEO_LOOKUP_TIMEOUT_MS, "VideoHUB streaming videoLookupTimeoutMs", 500, 15_000),
|
|
33
39
|
linkTtlMs: resolveBoundedIntegerOption(options.linkTtlMs, DEFAULT_LINK_TTL_MS, "VideoHUB streaming linkTtlMs", 30_000, 60 * 60_000),
|
|
40
|
+
cache: new VideoHubStreamingCache({
|
|
41
|
+
maxEntries: cacheMaxEntries,
|
|
42
|
+
playlistTtlMs: playlistCacheTtlMs,
|
|
43
|
+
now,
|
|
44
|
+
}),
|
|
34
45
|
userAgent: options.userAgent?.trim() || MEDIA_ENGINE_DEFAULT_USER_AGENT,
|
|
35
|
-
now
|
|
46
|
+
now,
|
|
36
47
|
};
|
|
37
48
|
}
|
|
38
49
|
export function createVideoHubCapabilities() {
|
|
@@ -43,7 +54,7 @@ export function createVideoHubCapabilities() {
|
|
|
43
54
|
byExternalIds: ["kinopoisk"],
|
|
44
55
|
byEpisode: true,
|
|
45
56
|
},
|
|
46
|
-
features: ["mp4", "translations", "qualities", "episode_mapping", "headers"],
|
|
57
|
+
features: ["mp4", "translations", "qualities", "episode_mapping", "episode_catalog", "headers"],
|
|
47
58
|
};
|
|
48
59
|
}
|
|
49
60
|
function normalizeProviderName(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/videohub-streaming/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAsB,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/videohub-streaming/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { rethrowIfProviderAborted } from "../shared/abort.js";
|
|
2
|
-
import { loadVideoHubPlaylist,
|
|
2
|
+
import { loadVideoHubPlaylist, resolveVideoHubItemsProgressively, resolveVideoHubKinopoiskId, } from "./client.js";
|
|
3
3
|
import { createVideoHubCapabilities, createVideoHubConfig, } from "./config.js";
|
|
4
|
-
import { mapVideoHubAvailability } from "./mapping.js";
|
|
4
|
+
import { mapVideoHubAvailability, mapVideoHubEpisodeCatalog } from "./mapping.js";
|
|
5
5
|
export function videoHubStreamingProvider(options = {}) {
|
|
6
6
|
const config = createVideoHubConfig(options);
|
|
7
|
+
const getAvailabilityProgressively = (query, context) => streamVideoHubAvailability(config, query, context);
|
|
7
8
|
return {
|
|
8
9
|
name: config.name,
|
|
9
10
|
version: options.version,
|
|
@@ -11,28 +12,73 @@ export function videoHubStreamingProvider(options = {}) {
|
|
|
11
12
|
capabilities: createVideoHubCapabilities(),
|
|
12
13
|
availabilityDependsOnPlaybackUserAgent: true,
|
|
13
14
|
async getAvailability(query, context) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return null;
|
|
18
|
-
const kinopoiskId = resolveVideoHubKinopoiskId(query);
|
|
19
|
-
if (!kinopoiskId)
|
|
20
|
-
return null;
|
|
21
|
-
const playbackUserAgent = resolvePlaybackUserAgent(context, config.userAgent);
|
|
22
|
-
try {
|
|
23
|
-
const { playlist, sourceUrl } = await loadVideoHubPlaylist(config, kinopoiskId, context, playbackUserAgent);
|
|
24
|
-
if ((query.type !== "movie") !== playlist.isSerial)
|
|
25
|
-
return null;
|
|
26
|
-
const items = await resolveVideoHubItems(config, playlist, query, context, playbackUserAgent);
|
|
27
|
-
return mapVideoHubAvailability(config.name, kinopoiskId, playlist.title, items, query, sourceUrl, config.now(), config.linkTtlMs, playbackUserAgent);
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
rethrowIfProviderAborted(context, error);
|
|
31
|
-
throw error;
|
|
15
|
+
let finalAvailability = null;
|
|
16
|
+
for await (const snapshot of getAvailabilityProgressively(query, context)) {
|
|
17
|
+
finalAvailability = snapshot.availability;
|
|
32
18
|
}
|
|
19
|
+
return finalAvailability;
|
|
33
20
|
},
|
|
21
|
+
getAvailabilityProgressively,
|
|
34
22
|
};
|
|
35
23
|
}
|
|
24
|
+
async function* streamVideoHubAvailability(config, query, context) {
|
|
25
|
+
const controller = new AbortController();
|
|
26
|
+
const abort = () => controller.abort(context.signal?.reason);
|
|
27
|
+
context.signal?.addEventListener("abort", abort, { once: true });
|
|
28
|
+
if (context.signal?.aborted)
|
|
29
|
+
abort();
|
|
30
|
+
const progressiveContext = { ...context, signal: controller.signal };
|
|
31
|
+
try {
|
|
32
|
+
if (query.providers && !query.providers.includes(config.name)) {
|
|
33
|
+
yield completeSnapshot(null);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (!canResolveQuery(query)) {
|
|
37
|
+
yield completeSnapshot(null);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const kinopoiskId = resolveVideoHubKinopoiskId(query);
|
|
41
|
+
if (!kinopoiskId) {
|
|
42
|
+
yield completeSnapshot(null);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const playbackUserAgent = resolvePlaybackUserAgent(context, config.userAgent);
|
|
46
|
+
const { playlist, sourceUrl } = await loadVideoHubPlaylist(config, kinopoiskId, progressiveContext, playbackUserAgent);
|
|
47
|
+
if ((query.type !== "movie") !== playlist.isSerial) {
|
|
48
|
+
yield completeSnapshot(null);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (isAnimeCatalogQuery(query)) {
|
|
52
|
+
yield completeSnapshot(mapVideoHubEpisodeCatalog(config.name, kinopoiskId, playlist, query, sourceUrl, config.now()));
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
for await (const resolution of resolveVideoHubItemsProgressively(config, playlist, query, progressiveContext, playbackUserAgent)) {
|
|
56
|
+
const availability = mapVideoHubAvailability(config.name, kinopoiskId, playlist.title, resolution.items, query, sourceUrl, config.now(), config.linkTtlMs, playbackUserAgent);
|
|
57
|
+
yield resolution.complete
|
|
58
|
+
? completeSnapshot(availability)
|
|
59
|
+
: {
|
|
60
|
+
availability,
|
|
61
|
+
state: "pending",
|
|
62
|
+
pendingProviders: [config.name],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
rethrowIfProviderAborted(progressiveContext, error);
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
finally {
|
|
71
|
+
context.signal?.removeEventListener("abort", abort);
|
|
72
|
+
if (!controller.signal.aborted) {
|
|
73
|
+
const error = new Error("VideoHUB progressive availability consumer stopped.");
|
|
74
|
+
error.name = "AbortError";
|
|
75
|
+
controller.abort(error);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function completeSnapshot(availability) {
|
|
80
|
+
return { availability, state: "complete", pendingProviders: [] };
|
|
81
|
+
}
|
|
36
82
|
function resolvePlaybackUserAgent(context, fallback) {
|
|
37
83
|
const value = context.playbackUserAgent?.trim();
|
|
38
84
|
return value && value.length <= 512 && !/[\u0000-\u001f\u007f]/u.test(value) ? value : fallback;
|
|
@@ -43,7 +89,7 @@ function canResolveQuery(query) {
|
|
|
43
89
|
query.episodeNumber === undefined &&
|
|
44
90
|
query.absoluteEpisodeNumber === undefined);
|
|
45
91
|
}
|
|
46
|
-
const hasSeason =
|
|
92
|
+
const hasSeason = isNonNegativeInteger(query.seasonNumber);
|
|
47
93
|
const hasEpisode = isPositiveInteger(query.episodeNumber);
|
|
48
94
|
const hasAbsoluteEpisode = isPositiveInteger(query.absoluteEpisodeNumber);
|
|
49
95
|
if (query.type === "series") {
|
|
@@ -51,9 +97,22 @@ function canResolveQuery(query) {
|
|
|
51
97
|
}
|
|
52
98
|
if (query.type !== "anime" || hasSeason !== hasEpisode)
|
|
53
99
|
return false;
|
|
54
|
-
return
|
|
100
|
+
return ((query.seasonNumber === undefined &&
|
|
101
|
+
query.episodeNumber === undefined &&
|
|
102
|
+
query.absoluteEpisodeNumber === undefined) ||
|
|
103
|
+
hasAbsoluteEpisode ||
|
|
104
|
+
(hasSeason && hasEpisode));
|
|
55
105
|
}
|
|
56
106
|
function isPositiveInteger(value) {
|
|
57
107
|
return Number.isInteger(value) && (value ?? 0) > 0;
|
|
58
108
|
}
|
|
109
|
+
function isNonNegativeInteger(value) {
|
|
110
|
+
return Number.isInteger(value) && (value ?? -1) >= 0;
|
|
111
|
+
}
|
|
112
|
+
function isAnimeCatalogQuery(query) {
|
|
113
|
+
return (query.type === "anime" &&
|
|
114
|
+
query.seasonNumber === undefined &&
|
|
115
|
+
query.episodeNumber === undefined &&
|
|
116
|
+
query.absoluteEpisodeNumber === undefined);
|
|
117
|
+
}
|
|
59
118
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/videohub-streaming/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/videohub-streaming/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { MediaAvailability } from "@media-engine/core";
|
|
2
|
-
import type { ResolvedVideoHubItem } from "./client.js";
|
|
2
|
+
import type { ResolvedVideoHubItem, VideoHubPlaylist } from "./client.js";
|
|
3
|
+
export declare function mapVideoHubEpisodeCatalog(provider: string, kinopoiskId: string, playlist: VideoHubPlaylist, query: MediaAvailability["query"], sourceUrl: string, now: number): MediaAvailability | null;
|
|
3
4
|
export declare function mapVideoHubAvailability(provider: string, kinopoiskId: string, playlistTitle: string | undefined, items: ResolvedVideoHubItem[], query: MediaAvailability["query"], sourceUrl: string, now: number, linkTtlMs: number, playbackUserAgent: string): MediaAvailability | null;
|
|
@@ -1,6 +1,22 @@
|
|
|
1
|
+
import { selectVideoHubPlaylistItems } from "./client.js";
|
|
2
|
+
export function mapVideoHubEpisodeCatalog(provider, kinopoiskId, playlist, query, sourceUrl, now) {
|
|
3
|
+
const episodes = uniqueEpisodeRefs(selectVideoHubPlaylistItems(playlist, query));
|
|
4
|
+
if (episodes.length === 0)
|
|
5
|
+
return null;
|
|
6
|
+
const ids = { ...query.ids, kinopoisk: kinopoiskId };
|
|
7
|
+
return {
|
|
8
|
+
query,
|
|
9
|
+
item: { type: "anime", title: playlist.title ?? query.title, year: query.year, ids },
|
|
10
|
+
seasons: createSeasons(episodes),
|
|
11
|
+
episodes,
|
|
12
|
+
options: [],
|
|
13
|
+
sourceProviders: [{ provider, url: sourceUrl, ids }],
|
|
14
|
+
checkedAt: new Date(now).toISOString(),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
1
17
|
export function mapVideoHubAvailability(provider, kinopoiskId, playlistTitle, items, query, sourceUrl, now, linkTtlMs, playbackUserAgent) {
|
|
2
|
-
const
|
|
3
|
-
const options = uniqueOptions(items.flatMap((item) => item.sources.map((source) => createOption(provider, kinopoiskId, item, source, query, expiresAt, playbackUserAgent))));
|
|
18
|
+
const fallbackExpiresAt = new Date(now + linkTtlMs).toISOString();
|
|
19
|
+
const options = uniqueOptions(items.flatMap((item) => item.sources.map((source) => createOption(provider, kinopoiskId, item, source, query, item.expiresAt ?? fallbackExpiresAt, playbackUserAgent))));
|
|
4
20
|
if (options.length === 0)
|
|
5
21
|
return null;
|
|
6
22
|
const episode = items[0] ? createEpisodeRef(items[0], query) : undefined;
|
|
@@ -97,4 +113,37 @@ function uniqueOptions(options) {
|
|
|
97
113
|
return true;
|
|
98
114
|
});
|
|
99
115
|
}
|
|
116
|
+
function uniqueEpisodeRefs(items) {
|
|
117
|
+
const episodes = new Map();
|
|
118
|
+
for (const item of items) {
|
|
119
|
+
if (item.seasonNumber === undefined || item.episodeNumber === undefined)
|
|
120
|
+
continue;
|
|
121
|
+
const key = `${item.seasonNumber}:${item.episodeNumber}`;
|
|
122
|
+
if (episodes.has(key))
|
|
123
|
+
continue;
|
|
124
|
+
episodes.set(key, {
|
|
125
|
+
seasonNumber: item.seasonNumber,
|
|
126
|
+
episodeNumber: item.episodeNumber,
|
|
127
|
+
absoluteEpisodeNumber: item.absoluteEpisodeNumber,
|
|
128
|
+
options: [],
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
return [...episodes.values()].sort((left, right) => (left.seasonNumber ?? 0) - (right.seasonNumber ?? 0) ||
|
|
132
|
+
(left.episodeNumber ?? 0) - (right.episodeNumber ?? 0));
|
|
133
|
+
}
|
|
134
|
+
function createSeasons(episodes) {
|
|
135
|
+
const seasons = new Map();
|
|
136
|
+
for (const episode of episodes) {
|
|
137
|
+
if (episode.seasonNumber === undefined)
|
|
138
|
+
continue;
|
|
139
|
+
const entries = seasons.get(episode.seasonNumber) ?? [];
|
|
140
|
+
entries.push(episode);
|
|
141
|
+
seasons.set(episode.seasonNumber, entries);
|
|
142
|
+
}
|
|
143
|
+
return [...seasons.entries()].map(([seasonNumber, seasonEpisodes]) => ({
|
|
144
|
+
seasonNumber,
|
|
145
|
+
episodes: seasonEpisodes,
|
|
146
|
+
episodesCount: seasonEpisodes.length,
|
|
147
|
+
}));
|
|
148
|
+
}
|
|
100
149
|
//# sourceMappingURL=mapping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/videohub-streaming/mapping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/videohub-streaming/mapping.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAQ1D,MAAM,UAAU,yBAAyB,CACvC,QAAgB,EAChB,WAAmB,EACnB,QAA0B,EAC1B,KAAiC,EACjC,SAAiB,EACjB,GAAW;IAEX,MAAM,QAAQ,GAAG,iBAAiB,CAAC,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IACjF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;IAErD,OAAO;QACL,KAAK;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;QACpF,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC;QAChC,QAAQ;QACR,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QACpD,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAgB,EAChB,WAAmB,EACnB,aAAiC,EACjC,KAA6B,EAC7B,KAAiC,EACjC,SAAiB,EACjB,GAAW,EACX,SAAiB,EACjB,iBAAyB;IAEzB,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAClE,MAAM,OAAO,GAAG,aAAa,CAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1B,YAAY,CACV,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,MAAM,EACN,KAAK,EACL,IAAI,CAAC,SAAS,IAAI,iBAAiB,EACnC,iBAAiB,CAClB,CACF,CACF,CACF,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,MAAM,QAAQ,GAA4C,OAAO;QAC/D,CAAC,CAAC;YACE;gBACE,GAAG,OAAO;gBACV,OAAO;aACR;SACF;QACH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;IAErD,OAAO;QACL,KAAK;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,aAAa,IAAI,KAAK,CAAC,KAAK;YACnC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG;SACJ;QACD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO;QACP,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QACpD,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,QAAgB,EAChB,WAAmB,EACnB,IAA0B,EAC1B,MAAyB,EACzB,KAAiC,EACjC,SAAiB,EACjB,iBAAyB;IAEzB,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAEzD,OAAO;QACL,EAAE,EAAE,GAAG,QAAQ,IAAI,WAAW,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;QAC1E,QAAQ;QACR,MAAM,EAAE;YACN,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,UAAU;YACjB,gBAAgB,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,EAAE;SAC9C;QACD,WAAW;QACX,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE;QACD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,EAAE;QACzE,YAAY,EAAE,WAAW;QACzB,SAAS;QACT,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,IAA0B,EAC1B,KAAiC;IAEjC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAE7C,OAAO;QACL,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS;YACpE,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EAAE;YACvD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAgC,EAChC,IAAwC;IAExC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAClF,OAAO,MAAM,OAAO,CAAC,qBAAqB,MAAM,OAAO,CAAC,YAAY,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;AACpG,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAoB,EAAE,SAAkB;IACjE,MAAM,KAAK,GAAG,WAAW,IAAI,SAAS,IAAI,UAAU,CAAC;IACrD,MAAM,cAAc,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAChE,MAAM,IAAI,GAA4B,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACrE,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACjC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAChC,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACnC,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,SAAS,CAAC;IAEpB,OAAO;QACL,KAAK;QACL,IAAI;QACJ,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAuB;IAC5C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAC/G,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA6B;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqC,CAAC;IAE9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;YAAE,SAAS;QAClF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACzD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAChC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;YAChB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAChC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QACpD,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,QAAqC;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuC,CAAC;IAE/D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;YAAE,SAAS;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,YAAY;QACZ,QAAQ,EAAE,cAAc;QACxB,aAAa,EAAE,cAAc,CAAC,MAAM;KACrC,CAAC,CAAC,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@media-engine/providers",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Provider implementations for Media Engine.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/Yaneart/media-engine#readme",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"access": "public"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@media-engine/core": "1.
|
|
73
|
+
"@media-engine/core": "1.4.0"
|
|
74
74
|
},
|
|
75
75
|
"scripts": {
|
|
76
76
|
"clean": "node ../../scripts/clean-package-dist.mjs",
|