@vyla-entertainment/sdk 1.9.0 → 1.10.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.
Files changed (40) hide show
  1. package/.github/workflows/publish.yml +38 -38
  2. package/.gitlab-ci.yml +16 -0
  3. package/README.md +9 -13
  4. package/package.json +33 -32
  5. package/src/config.js +86 -118
  6. package/src/health.js +2 -2
  7. package/src/sdk.d.ts +122 -122
  8. package/src/sdk.js +7 -4
  9. package/src/sources/anineko.js +3 -1
  10. package/src/sources/cinejoy.js +194 -209
  11. package/src/sources/flaxmovies.js +113 -21
  12. package/src/sources/frame.js +88 -0
  13. package/src/sources/fsonic.js +3 -1
  14. package/src/sources/fsonline.js +3 -1
  15. package/src/sources/lmscript.js +42 -42
  16. package/src/sources/lookmovie.js +3 -1
  17. package/src/sources/luna.js +125 -0
  18. package/src/sources/mapple.js +40 -4
  19. package/src/sources/megasource.js +47 -0
  20. package/src/sources/meowtv.js +0 -1
  21. package/src/sources/nova.js +46 -0
  22. package/src/sources/peestream.js +122 -0
  23. package/src/sources/pengu.js +8 -3
  24. package/src/sources/rivestream.js +179 -0
  25. package/src/sources/videasy.js +3 -1
  26. package/src/sources/vidgod.js +147 -0
  27. package/src/sources/vidnest.js +3 -1
  28. package/src/sources/vidvault.js +113 -113
  29. package/src/sources/vidzee.js +154 -199
  30. package/src/subtitles.js +18 -0
  31. package/src/utils/helpers.js +2 -2
  32. package/src/sources/1embed.js +0 -115
  33. package/src/sources/anikoto.js +0 -198
  34. package/src/sources/anizone.js +0 -109
  35. package/src/sources/cinesu.js +0 -94
  36. package/src/sources/kickassanime.js +0 -107
  37. package/src/sources/nekowatch.js +0 -57
  38. package/src/sources/opstream.js +0 -123
  39. package/src/sources/peachify.js +0 -78
  40. package/src/sources/reanime.js +0 -324
@@ -1,38 +1,38 @@
1
- name: Publish npm package
2
-
3
- on:
4
- workflow_dispatch:
5
-
6
- permissions:
7
- contents: write
8
-
9
- jobs:
10
- publish:
11
- runs-on: ubuntu-latest
12
-
13
- steps:
14
- - uses: actions/checkout@v4
15
- with:
16
- token: ${{ secrets.GITHUB_TOKEN }}
17
-
18
- - uses: actions/setup-node@v4
19
- with:
20
- node-version: 22
21
- registry-url: https://registry.npmjs.org/
22
-
23
- - name: Configure git
24
- run: |
25
- git config user.name "github-actions[bot]"
26
- git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
27
-
28
- - run: npm ci
29
-
30
- - name: Bump version
31
- run: |
32
- npm version minor
33
- git push --follow-tags
34
-
35
- - name: Publish
36
- run: npm publish
37
- env:
38
- NODE_AUTH_TOKEN: ${{ secrets.NPM_KEY }}
1
+ name: Publish npm package
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ permissions:
7
+ contents: write
8
+
9
+ jobs:
10
+ publish:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ with:
16
+ token: ${{ secrets.GITHUB_TOKEN }}
17
+
18
+ - uses: actions/setup-node@v4
19
+ with:
20
+ node-version: 22
21
+ registry-url: https://registry.npmjs.org/
22
+
23
+ - name: Configure git
24
+ run: |
25
+ git config user.name "github-actions[bot]"
26
+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
27
+
28
+ - run: npm ci
29
+
30
+ - name: Bump version
31
+ run: |
32
+ npm version minor
33
+ git push --follow-tags
34
+
35
+ - name: Publish
36
+ run: npm publish
37
+ env:
38
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_KEY }}
package/.gitlab-ci.yml ADDED
@@ -0,0 +1,16 @@
1
+ stages:
2
+ - build
3
+ - test
4
+ - deploy
5
+ - publish
6
+
7
+ publish:
8
+ stage: publish
9
+ image: node:22
10
+ rules:
11
+ - if: '$CI_COMMIT_TAG'
12
+ when: manual
13
+ script:
14
+ - npm ci
15
+ - echo "//registry.npmjs.org/:_authToken=${NPM_KEY}" > .npmrc
16
+ - npm publish
package/README.md CHANGED
@@ -1,11 +1,8 @@
1
- # Vyla SDK
2
-
3
- VylaSDK is a JavaScript/TypeScript SDK for accessing Vyla's stream providers, subtitles, and download sources directly from Node.js. Instead of using the Vyla REST API, developers can run the scraping layer directly in their own environment with full control over requests, execution, and provider management.
4
-
5
- ### Installing
1
+ # vyla/sdk
2
+ VylaSDK is a javascript base version of [Vyla](https://vyla.mintlify.app/)'s stream & scrape api, allowing developers to access content providers directly without using a REST api. This gives you the power & updates of Vyla without the headaches of api keys & server reliability.
6
3
 
4
+ ## Installing
7
5
  To start, install VylaSDK through npm or pnpm:
8
-
9
6
  ```bash
10
7
  # npm
11
8
  npm install @vyla-entertainment/sdk
@@ -14,22 +11,21 @@ npm install @vyla-entertainment/sdk
14
11
  pnpm install @vyla-entertainment/sdk
15
12
  ```
16
13
 
17
- Please note we do not provide proxying, you have to do that on your end.
14
+ View our full documentation at https://docs.vyla.cc/sdk
18
15
 
19
- **View our full documentation at:** https://docs.vyla.cc/sdk
20
-
21
- ### [DMCA](https://docs.vyla.cc/misc/dmca)
16
+ # [DMCA](https://docs.vyla.cc/misc/dmca)
22
17
 
23
18
  If your source is listed here, I sincerely apologize. I understand that its inclusion may be costing you a lot of money, and that was never my intention. Please contact me as soon as possible, and I'll remove it ASAP.
24
19
 
25
20
  This is a small hobby project that I built for learning and personal interest, not for profit. I genuinely want to respect the wishes of source owners and will address any removal requests as quickly as I can.
26
21
 
27
- This project is developed and maintained by [Vyla Entertainment](https://github.com/vyla-entertainment).
22
+ This project is developed and maintained by [Vyla Entertainment](https://github.com/vyla-entertainment) (@vyla-entertainment).
28
23
 
29
24
  Original work and core authorship:
30
25
 
31
- [@endoverdosing](https://github.com/EndOverdosing)
26
+ [@alwaysmesmerizingyou](https://gitlab.com/alwaysmesmerizingyou)
27
+
32
28
  [@GavinGoGaming](https://github.com/GavinGoGaming)
33
29
 
34
- **Full credits and acknowledgements:**
30
+ Full credits and acknowledgements:
35
31
  https://docs.vyla.cc/misc/credit
package/package.json CHANGED
@@ -1,32 +1,33 @@
1
- {
2
- "name": "@vyla-entertainment/sdk",
3
- "version": "1.9.0",
4
- "scripts": {
5
- "test": "node test/index.js"
6
- },
7
- "author": "vyla-entertainment",
8
- "contributors": [
9
- {
10
- "name": "GavinGoGaming",
11
- "email": "gavin@klash.dev"
12
- },
13
- {
14
- "name": "EndOverdosing"
15
- }
16
- ],
17
- "license": "CC-BY-NC-4.0",
18
- "type": "module",
19
- "description": "Vyla's multi-provider stream scraper SDK",
20
- "main": "src/sdk.js",
21
- "types": "src/sdk.d.ts",
22
- "directories": {
23
- "test": "test"
24
- },
25
- "keywords": [],
26
- "devDependencies": {
27
- "dotenv": "^17.4.2"
28
- },
29
- "publishConfig": {
30
- "access": "public"
31
- }
32
- }
1
+ {
2
+ "name": "@vyla-entertainment/sdk",
3
+ "version": "1.10.0",
4
+ "scripts": {
5
+ "test": "node test/index.js"
6
+ },
7
+ "author": "vyla-entertainment",
8
+ "contributors": [
9
+ {
10
+ "name": "GavinGoGaming",
11
+ "email": "gavin@klash.dev"
12
+ },
13
+ {
14
+ "name": "alwaysmesmerizingyou",
15
+ "email": "alwaysmesmerizingyou@gmail.com"
16
+ }
17
+ ],
18
+ "license": "CC-BY-NC-4.0",
19
+ "type": "module",
20
+ "description": "Vyla's multi-provider stream scraper SDK",
21
+ "main": "src/sdk.js",
22
+ "types": "src/sdk.d.ts",
23
+ "directories": {
24
+ "test": "test"
25
+ },
26
+ "keywords": [],
27
+ "devDependencies": {
28
+ "dotenv": "^17.4.2"
29
+ },
30
+ "publishConfig": {
31
+ "access": "public"
32
+ }
33
+ }
package/src/config.js CHANGED
@@ -6,17 +6,6 @@
6
6
  // Fshare/Fsonic Tested: 155 ( they don't have Michael )
7
7
 
8
8
  export const SOURCES = [
9
- {
10
- key: '1embed',
11
- label: '1Embed',
12
- sourceFile: '1embed',
13
- proxyParam: '1e',
14
- timeout: 20000,
15
- jitter: 500,
16
- retries: 2,
17
- multiUrl: true,
18
- },
19
-
20
9
  {
21
10
  key: '123anime',
22
11
  label: '123Anime',
@@ -60,30 +49,6 @@ export const SOURCES = [
60
49
  skipProxy: true
61
50
  },
62
51
 
63
- {
64
- key: 'anikoto-sub',
65
- label: 'AniKoto (Sub)',
66
- sourceFile: 'anikoto',
67
- proxyParam: 'aksub',
68
- timeout: 25000,
69
- jitter: 500,
70
- retries: 2,
71
- multiUrl: true,
72
- skipProxy: true
73
- },
74
-
75
- {
76
- key: 'anikoto-dub',
77
- label: 'AniKoto (Dub)',
78
- sourceFile: 'anikoto',
79
- proxyParam: 'akdub',
80
- timeout: 25000,
81
- jitter: 500,
82
- retries: 2,
83
- multiUrl: true,
84
- skipProxy: true
85
- },
86
-
87
52
  {
88
53
  key: 'anineko-sub',
89
54
  sourceFile: 'anineko',
@@ -138,18 +103,6 @@ export const SOURCES = [
138
103
  },
139
104
  },
140
105
 
141
- {
142
- key: 'anizone',
143
- label: 'AniZone',
144
- sourceFile: 'anizone',
145
- proxyParam: 'az',
146
- timeout: 25000,
147
- jitter: 500,
148
- retries: 2,
149
- multiUrl: true,
150
- skipProxy: true
151
- },
152
-
153
106
  {
154
107
  key: 'cinejoy',
155
108
  label: 'Cinejoy',
@@ -162,25 +115,6 @@ export const SOURCES = [
162
115
  skipProxy: true,
163
116
  },
164
117
 
165
- {
166
- key: 'cinesu',
167
- label: 'CineSu',
168
- sourceFile: 'cinesu',
169
- proxyParam: 'cs',
170
- timeout: 20000,
171
- jitter: 500,
172
- retries: 2,
173
- multiUrl: false,
174
- skipProxy: true,
175
- cdnHeaders: [{
176
- pattern: /glendale-plumbing\.com/i,
177
- headers: {
178
- Referer: 'https://cine.su/',
179
- Origin: 'https://cine.su',
180
- },
181
- }],
182
- },
183
-
184
118
  {
185
119
  key: 'flaxmovies',
186
120
  label: 'FlaxMovies',
@@ -200,6 +134,18 @@ export const SOURCES = [
200
134
  },],
201
135
  },
202
136
 
137
+ {
138
+ key: 'frame',
139
+ label: 'Frame',
140
+ sourceFile: 'frame',
141
+ proxyParam: 'fr',
142
+ timeout: 25000,
143
+ jitter: 500,
144
+ retries: 2,
145
+ multiUrl: true,
146
+ skipProxy: true,
147
+ },
148
+
203
149
  {
204
150
  key: 'fsharetv',
205
151
  label: 'FShareTV',
@@ -249,18 +195,6 @@ export const SOURCES = [
249
195
  retries: 2,
250
196
  },
251
197
 
252
- {
253
- key: 'kickassanime',
254
- label: 'KickAssAnime',
255
- sourceFile: 'kickassanime',
256
- proxyParam: 'kaa',
257
- timeout: 25000,
258
- jitter: 500,
259
- retries: 2,
260
- multiUrl: true,
261
- skipProxy: true
262
- },
263
-
264
198
  {
265
199
  key: 'kisskh',
266
200
  label: 'KissKH',
@@ -296,6 +230,32 @@ export const SOURCES = [
296
230
  },
297
231
  },
298
232
 
233
+ {
234
+ key: 'luna-sub',
235
+ label: 'Luna (Sub)',
236
+ sourceFile: 'luna',
237
+ proxyParam: 'lusub',
238
+ subtype: 'sub',
239
+ timeout: 25000,
240
+ jitter: 500,
241
+ retries: 2,
242
+ multiUrl: true,
243
+ skipProxy: true,
244
+ },
245
+
246
+ {
247
+ key: 'luna-dub',
248
+ label: 'Luna (Dub)',
249
+ sourceFile: 'luna',
250
+ proxyParam: 'ludub',
251
+ subtype: 'dub',
252
+ timeout: 25000,
253
+ jitter: 500,
254
+ retries: 2,
255
+ multiUrl: true,
256
+ skipProxy: true,
257
+ },
258
+
299
259
  {
300
260
  key: 'mapple',
301
261
  label: 'Mapple',
@@ -315,33 +275,19 @@ export const SOURCES = [
315
275
  jitter: 500,
316
276
  retries: 2,
317
277
  multiUrl: true,
278
+ skipProxy: true
318
279
  },
319
280
 
320
281
  {
321
- key: 'opstream',
322
- label: 'OpStream',
323
- sourceFile: 'opstream',
324
- proxyParam: 'op',
325
- timeout: 35000,
282
+ key: 'peestream',
283
+ label: 'PeeStream',
284
+ sourceFile: 'peestream',
285
+ proxyParam: 'pee',
286
+ timeout: 25000,
326
287
  jitter: 500,
327
288
  retries: 2,
328
289
  multiUrl: true,
329
290
  skipProxy: true,
330
- verifyHeaders: {
331
- Referer: 'https://opstream.fun/',
332
- Origin: 'https://opstream.fun',
333
- },
334
- },
335
-
336
- {
337
- key: 'peachify',
338
- label: 'Peachify',
339
- sourceFile: 'peachify',
340
- proxyParam: 'pf',
341
- timeout: 30000,
342
- jitter: 500,
343
- retries: 1,
344
- multiUrl: true
345
291
  },
346
292
 
347
293
  {
@@ -354,7 +300,29 @@ export const SOURCES = [
354
300
  retries: 1,
355
301
  multiUrl: true,
356
302
  skipProxy: true,
357
- disabled: true, // Temporarily disabled because they now require google auth
303
+ disabled: false, // Enabled, but only returns streams when a manifest is provided
304
+ },
305
+
306
+ {
307
+ key: 'nova',
308
+ label: 'Nova',
309
+ sourceFile: 'nova',
310
+ proxyParam: 'nv',
311
+ timeout: 25000,
312
+ jitter: 500,
313
+ retries: 1,
314
+ multiUrl: true,
315
+ },
316
+
317
+ {
318
+ key: 'megasource',
319
+ label: 'MegaSource',
320
+ sourceFile: 'megasource',
321
+ proxyParam: 'mg',
322
+ timeout: 25000,
323
+ jitter: 500,
324
+ retries: 1,
325
+ multiUrl: true,
358
326
  },
359
327
 
360
328
  {
@@ -369,27 +337,14 @@ export const SOURCES = [
369
337
  },
370
338
 
371
339
  {
372
- key: 'reanime-sub',
373
- label: 'Reanime (Sub)',
374
- sourceFile: 'reanime',
375
- proxyParam: 'resub',
376
- timeout: 25000,
377
- jitter: 500,
378
- retries: 2,
379
- multiUrl: true,
380
- skipProxy: true
381
- },
382
-
383
- {
384
- key: 'reanime-dub',
385
- label: 'Reanime (Dub)',
386
- sourceFile: 'reanime',
387
- proxyParam: 'redub',
388
- timeout: 25000,
340
+ key: 'rivestream',
341
+ label: 'RiveStream',
342
+ sourceFile: 'rivestream',
343
+ proxyParam: 'rs',
344
+ timeout: 30000,
389
345
  jitter: 500,
390
346
  retries: 2,
391
347
  multiUrl: true,
392
- skipProxy: true
393
348
  },
394
349
 
395
350
  {
@@ -441,6 +396,18 @@ export const SOURCES = [
441
396
  retries: 1,
442
397
  },
443
398
 
399
+ {
400
+ key: 'vidgod',
401
+ label: 'VidGod',
402
+ sourceFile: 'vidgod',
403
+ proxyParam: 'vg',
404
+ timeout: 25000,
405
+ jitter: 500,
406
+ retries: 2,
407
+ multiUrl: true,
408
+ skipProxy: true,
409
+ },
410
+
444
411
  {
445
412
  key: 'vidlink',
446
413
  label: 'Vidlink',
@@ -498,7 +465,8 @@ export const SOURCES = [
498
465
  jitter: 500,
499
466
  retries: 2,
500
467
  multiUrl: true,
501
- skipProxy: true
468
+ skipProxy: true,
469
+ disabled: true, // Temporarily disabled because their site is down, embed website does not load
502
470
  },
503
471
 
504
472
  {
package/src/health.js CHANGED
@@ -14,7 +14,7 @@ async function withRetry(fn, attempts = 2, delay = 300) {
14
14
  return null;
15
15
  }
16
16
 
17
- export async function probeSource(tmdbApiKey, cfg, mod) {
17
+ export async function probeSource(sdk, cfg, mod) {
18
18
  const audio = /dub$/.test(cfg.key) ? 'dub' : 'sub';
19
19
  const streamArgs = {
20
20
  id: HEALTH_PROBE_ID,
@@ -23,7 +23,7 @@ export async function probeSource(tmdbApiKey, cfg, mod) {
23
23
  clientIP: null,
24
24
  absoluteBase: null,
25
25
  audio,
26
- tmdbApiKey,
26
+ sdk,
27
27
  config: cfg,
28
28
  };
29
29