@vyla-entertainment/sdk 1.20.0 → 1.21.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/package.json +3 -2
- package/src/config.js +10 -85
- package/src/sdk.d.ts +94 -121
- package/src/sdk.js +82 -78
- package/src/sources/111477.js +88 -100
- package/src/sources/123anime.js +120 -56
- package/src/sources/3eyedraven.js +82 -135
- package/src/sources/cinecat.js +37 -18
- package/src/sources/cinemaarmy.js +179 -180
- package/src/sources/cinesrc.js +401 -397
- package/src/sources/cno.js +101 -94
- package/src/sources/dulo.js +134 -149
- package/src/sources/flaxmovies.js +114 -105
- package/src/sources/frost.js +38 -29
- package/src/sources/fsonline.js +95 -47
- package/src/sources/hdhub.js +43 -36
- package/src/sources/hexa.js +60 -53
- package/src/sources/hyper.js +42 -35
- package/src/sources/kickassanime.js +117 -124
- package/src/sources/kisskh.js +114 -59
- package/src/sources/lmscript.js +72 -70
- package/src/sources/lookmovie.js +80 -79
- package/src/sources/movenerds.js +74 -124
- package/src/sources/movy.js +197 -209
- package/src/sources/net79.js +59 -55
- package/src/sources/peestream.js +126 -138
- package/src/sources/pengu.js +46 -49
- package/src/sources/pstream.js +73 -67
- package/src/sources/purstream.js +96 -104
- package/src/sources/rivestream.js +182 -176
- package/src/sources/rivo.js +58 -53
- package/src/sources/streamaggregator.js +114 -128
- package/src/sources/thugtv.js +70 -62
- package/src/sources/vidapi.js +122 -114
- package/src/sources/vidcore.js +14 -122
- package/src/sources/vidfast.js +14 -122
- package/src/sources/vidlink.js +78 -27
- package/src/sources/vidup.js +14 -122
- package/src/sources/vidvault.js +133 -187
- package/src/sources/vidy.js +192 -187
- package/src/sources/vidzee.js +189 -183
- package/src/sources/vixsrc.js +123 -113
- package/src/sources/watchout.js +60 -46
- package/src/sources/xdownloader.js +127 -128
- package/src/sources/yapgrid.js +68 -62
- package/src/sources/yastream.js +35 -29
- package/src/subtitles.js +105 -122
- package/src/utils/helpers.js +586 -247
- package/src/sources/bcine.js +0 -202
- package/src/sources/cinezo.js +0 -55
- package/src/sources/vidora.js +0 -62
- package/src/sources/vidrock.js +0 -145
package/src/subtitles.js
CHANGED
|
@@ -1,122 +1,105 @@
|
|
|
1
|
-
import { getUA } from './utils/helpers.js';
|
|
2
|
-
|
|
3
|
-
const SUBTITLE_BASES = [
|
|
4
|
-
'https://sub.vdrk.site/v1',
|
|
5
|
-
'https://sub.vdrk.site/v2',
|
|
6
|
-
'https://opensubtitles-v3.strem.io'
|
|
7
|
-
];
|
|
8
|
-
|
|
9
|
-
async function
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return [];
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return [
|
|
107
|
-
{ base: SUBTITLE_BASES[0], path: `/movie/${id}` },
|
|
108
|
-
{ base: SUBTITLE_BASES[1], path: `/movie/${id}` },
|
|
109
|
-
{ base: SUBTITLE_BASES[2], path: `/subtitles/movie/${imdbId}.json` }
|
|
110
|
-
];
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export async function getSubPathsTv(id, season, episode) {
|
|
114
|
-
const imdbId = await resolveImdbId(id, true);
|
|
115
|
-
return [
|
|
116
|
-
{ base: SUBTITLE_BASES[0], path: `/tv/${id}/${season}/${episode}` },
|
|
117
|
-
{ base: SUBTITLE_BASES[1], path: `/tv/${id}/${season}/${episode}` },
|
|
118
|
-
{ base: SUBTITLE_BASES[2], path: `/subtitles/series/${imdbId}:${season}:${episode}.json` }
|
|
119
|
-
];
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export { SUBTITLE_BASES };
|
|
1
|
+
import { getUA, resolveImdbId } from './utils/helpers.js';
|
|
2
|
+
|
|
3
|
+
const SUBTITLE_BASES = [
|
|
4
|
+
'https://sub.vdrk.site/v1',
|
|
5
|
+
'https://sub.vdrk.site/v2',
|
|
6
|
+
'https://opensubtitles-v3.strem.io'
|
|
7
|
+
];
|
|
8
|
+
|
|
9
|
+
export async function fetchSubtitles(paths = []) {
|
|
10
|
+
try {
|
|
11
|
+
const results = await Promise.all(
|
|
12
|
+
paths.map(async ({ base, path }) => {
|
|
13
|
+
try {
|
|
14
|
+
const res = await fetch(`${base}${path}`, {
|
|
15
|
+
headers: { 'User-Agent': getUA() },
|
|
16
|
+
signal: AbortSignal.timeout(6000),
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
if (!res.ok) {
|
|
20
|
+
res.body?.cancel();
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const data = await res.json();
|
|
25
|
+
|
|
26
|
+
if (base.includes('/v2')) {
|
|
27
|
+
return Array.isArray(data)
|
|
28
|
+
? data.map(x => ({
|
|
29
|
+
label: x.label,
|
|
30
|
+
file: x.file || x.url,
|
|
31
|
+
type: 'vtt',
|
|
32
|
+
source: 'v2'
|
|
33
|
+
}))
|
|
34
|
+
: [];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (base.includes('opensubtitles-v3.strem.io')) {
|
|
38
|
+
if (!Array.isArray(data?.subtitles)) return [];
|
|
39
|
+
return data.subtitles.map(sub => {
|
|
40
|
+
if (!sub?.url) return null;
|
|
41
|
+
const isSrt = sub.url.toLowerCase().endsWith('.srt');
|
|
42
|
+
return {
|
|
43
|
+
label: sub.lang ? sub.lang.toUpperCase() : 'OpenSubtitles',
|
|
44
|
+
file: sub.url,
|
|
45
|
+
type: isSrt ? 'srt' : 'vtt',
|
|
46
|
+
source: 'opensubtitles'
|
|
47
|
+
};
|
|
48
|
+
}).filter(Boolean);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (base.includes('fed-subs.pstream.mov')) {
|
|
52
|
+
if (!data?.subtitles || typeof data.subtitles !== 'object') return [];
|
|
53
|
+
|
|
54
|
+
return Object.entries(data.subtitles)
|
|
55
|
+
.map(([language, sub]) => {
|
|
56
|
+
if (!sub?.subtitle_link) return null;
|
|
57
|
+
const ext = sub.subtitle_link.split('.').pop()?.toLowerCase();
|
|
58
|
+
return {
|
|
59
|
+
label: sub.subtitle_name || language,
|
|
60
|
+
file: sub.subtitle_link,
|
|
61
|
+
type: ext === 'vtt' ? 'vtt' : 'srt',
|
|
62
|
+
source: 'febbox'
|
|
63
|
+
};
|
|
64
|
+
})
|
|
65
|
+
.filter(Boolean);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const v1 = Array.isArray(data) ? data : [];
|
|
69
|
+
return v1.map(x => ({
|
|
70
|
+
label: x.label,
|
|
71
|
+
file: x.file || x.url,
|
|
72
|
+
type: 'vtt',
|
|
73
|
+
source: 'v1'
|
|
74
|
+
}));
|
|
75
|
+
} catch {
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
return results.flat();
|
|
82
|
+
} catch {
|
|
83
|
+
return [];
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export async function getSubPathsMovie(id) {
|
|
88
|
+
const imdbId = await resolveImdbId(id, false);
|
|
89
|
+
return [
|
|
90
|
+
{ base: SUBTITLE_BASES[0], path: `/movie/${id}` },
|
|
91
|
+
{ base: SUBTITLE_BASES[1], path: `/movie/${id}` },
|
|
92
|
+
{ base: SUBTITLE_BASES[2], path: `/subtitles/movie/${imdbId}.json` }
|
|
93
|
+
];
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export async function getSubPathsTv(id, season, episode) {
|
|
97
|
+
const imdbId = await resolveImdbId(id, true);
|
|
98
|
+
return [
|
|
99
|
+
{ base: SUBTITLE_BASES[0], path: `/tv/${id}/${season}/${episode}` },
|
|
100
|
+
{ base: SUBTITLE_BASES[1], path: `/tv/${id}/${season}/${episode}` },
|
|
101
|
+
{ base: SUBTITLE_BASES[2], path: `/subtitles/series/${imdbId}:${season}:${episode}.json` }
|
|
102
|
+
];
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export { SUBTITLE_BASES };
|