animob 1.0.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 (229) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +245 -0
  3. package/animb.png +0 -0
  4. package/dist/extractors/index.d.ts +11 -0
  5. package/dist/extractors/index.js +27 -0
  6. package/dist/extractors/index.js.map +1 -0
  7. package/dist/extractors/kwik.d.ts +18 -0
  8. package/dist/extractors/kwik.js +117 -0
  9. package/dist/extractors/kwik.js.map +1 -0
  10. package/dist/extractors/lplayer.d.ts +11 -0
  11. package/dist/extractors/lplayer.js +131 -0
  12. package/dist/extractors/lplayer.js.map +1 -0
  13. package/dist/extractors/megacloud.d.ts +10 -0
  14. package/dist/extractors/megacloud.js +44 -0
  15. package/dist/extractors/megacloud.js.map +1 -0
  16. package/dist/extractors/megaup.d.ts +31 -0
  17. package/dist/extractors/megaup.js +79 -0
  18. package/dist/extractors/megaup.js.map +1 -0
  19. package/dist/extractors/mixdrop.d.ts +7 -0
  20. package/dist/extractors/mixdrop.js +32 -0
  21. package/dist/extractors/mixdrop.js.map +1 -0
  22. package/dist/extractors/movearnpre.d.ts +9 -0
  23. package/dist/extractors/movearnpre.js +154 -0
  24. package/dist/extractors/movearnpre.js.map +1 -0
  25. package/dist/extractors/sendvid.d.ts +8 -0
  26. package/dist/extractors/sendvid.js +76 -0
  27. package/dist/extractors/sendvid.js.map +1 -0
  28. package/dist/extractors/sibnet.d.ts +8 -0
  29. package/dist/extractors/sibnet.js +44 -0
  30. package/dist/extractors/sibnet.js.map +1 -0
  31. package/dist/extractors/streamsb.d.ts +11 -0
  32. package/dist/extractors/streamsb.js +65 -0
  33. package/dist/extractors/streamsb.js.map +1 -0
  34. package/dist/extractors/streamtape.d.ts +7 -0
  35. package/dist/extractors/streamtape.js +32 -0
  36. package/dist/extractors/streamtape.js.map +1 -0
  37. package/dist/extractors/streamwish.d.ts +11 -0
  38. package/dist/extractors/streamwish.js +46 -0
  39. package/dist/extractors/streamwish.js.map +1 -0
  40. package/dist/extractors/vidcloud.d.ts +11 -0
  41. package/dist/extractors/vidcloud.js +109 -0
  42. package/dist/extractors/vidcloud.js.map +1 -0
  43. package/dist/extractors/videostr.d.ts +10 -0
  44. package/dist/extractors/videostr.js +44 -0
  45. package/dist/extractors/videostr.js.map +1 -0
  46. package/dist/extractors/vidmoly.d.ts +7 -0
  47. package/dist/extractors/vidmoly.js +75 -0
  48. package/dist/extractors/vidmoly.js.map +1 -0
  49. package/dist/extractors/voe.d.ts +10 -0
  50. package/dist/extractors/voe.js +44 -0
  51. package/dist/extractors/voe.js.map +1 -0
  52. package/dist/index.d.ts +6 -0
  53. package/dist/index.js +23 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/models/anime-parser.d.ts +26 -0
  56. package/dist/models/anime-parser.js +14 -0
  57. package/dist/models/anime-parser.js.map +1 -0
  58. package/dist/models/base-parser.d.ts +10 -0
  59. package/dist/models/base-parser.js +7 -0
  60. package/dist/models/base-parser.js.map +1 -0
  61. package/dist/models/base-provider.d.ts +40 -0
  62. package/dist/models/base-provider.js +45 -0
  63. package/dist/models/base-provider.js.map +1 -0
  64. package/dist/models/base-types.d.ts +22 -0
  65. package/dist/models/base-types.js +3 -0
  66. package/dist/models/base-types.js.map +1 -0
  67. package/dist/models/book-parser.d.ts +4 -0
  68. package/dist/models/book-parser.js +7 -0
  69. package/dist/models/book-parser.js.map +1 -0
  70. package/dist/models/comic-parser.d.ts +4 -0
  71. package/dist/models/comic-parser.js +7 -0
  72. package/dist/models/comic-parser.js.map +1 -0
  73. package/dist/models/index.d.ts +13 -0
  74. package/dist/models/index.js +39 -0
  75. package/dist/models/index.js.map +1 -0
  76. package/dist/models/lightnovel-parser.d.ts +16 -0
  77. package/dist/models/lightnovel-parser.js +7 -0
  78. package/dist/models/lightnovel-parser.js.map +1 -0
  79. package/dist/models/manga-parser.d.ts +17 -0
  80. package/dist/models/manga-parser.js +10 -0
  81. package/dist/models/manga-parser.js.map +1 -0
  82. package/dist/models/movie-parser.d.ts +26 -0
  83. package/dist/models/movie-parser.js +7 -0
  84. package/dist/models/movie-parser.js.map +1 -0
  85. package/dist/models/news-parser.d.ts +4 -0
  86. package/dist/models/news-parser.js +7 -0
  87. package/dist/models/news-parser.js.map +1 -0
  88. package/dist/models/proxy.d.ts +25 -0
  89. package/dist/models/proxy.js +83 -0
  90. package/dist/models/proxy.js.map +1 -0
  91. package/dist/models/type-objects.d.ts +48 -0
  92. package/dist/models/type-objects.js +57 -0
  93. package/dist/models/type-objects.js.map +1 -0
  94. package/dist/models/types.d.ts +515 -0
  95. package/dist/models/types.js +118 -0
  96. package/dist/models/types.js.map +1 -0
  97. package/dist/models/video-extractor.d.ts +19 -0
  98. package/dist/models/video-extractor.js +10 -0
  99. package/dist/models/video-extractor.js.map +1 -0
  100. package/dist/providers/anime/animekai.d.ts +94 -0
  101. package/dist/providers/anime/animekai.js +661 -0
  102. package/dist/providers/anime/animekai.js.map +1 -0
  103. package/dist/providers/anime/animepahe.d.ts +41 -0
  104. package/dist/providers/anime/animepahe.js +270 -0
  105. package/dist/providers/anime/animepahe.js.map +1 -0
  106. package/dist/providers/anime/animesama.d.ts +25 -0
  107. package/dist/providers/anime/animesama.js +504 -0
  108. package/dist/providers/anime/animesama.js.map +1 -0
  109. package/dist/providers/anime/animesaturn.d.ts +32 -0
  110. package/dist/providers/anime/animesaturn.js +298 -0
  111. package/dist/providers/anime/animesaturn.js.map +1 -0
  112. package/dist/providers/anime/animeunity.d.ts +27 -0
  113. package/dist/providers/anime/animeunity.js +157 -0
  114. package/dist/providers/anime/animeunity.js.map +1 -0
  115. package/dist/providers/anime/hianime.d.ts +150 -0
  116. package/dist/providers/anime/hianime.js +825 -0
  117. package/dist/providers/anime/hianime.js.map +1 -0
  118. package/dist/providers/anime/index.d.ts +17 -0
  119. package/dist/providers/anime/index.js +22 -0
  120. package/dist/providers/anime/index.js.map +1 -0
  121. package/dist/providers/anime/kickassanime.d.ts +65 -0
  122. package/dist/providers/anime/kickassanime.js +582 -0
  123. package/dist/providers/anime/kickassanime.js.map +1 -0
  124. package/dist/providers/books/index.d.ts +2 -0
  125. package/dist/providers/books/index.js +4 -0
  126. package/dist/providers/books/index.js.map +1 -0
  127. package/dist/providers/comics/getComics.d.ts +9 -0
  128. package/dist/providers/comics/getComics.js +54 -0
  129. package/dist/providers/comics/getComics.js.map +1 -0
  130. package/dist/providers/comics/index.d.ts +5 -0
  131. package/dist/providers/comics/index.js +8 -0
  132. package/dist/providers/comics/index.js.map +1 -0
  133. package/dist/providers/index.d.ts +9 -0
  134. package/dist/providers/index.js +23 -0
  135. package/dist/providers/index.js.map +1 -0
  136. package/dist/providers/light-novels/index.d.ts +5 -0
  137. package/dist/providers/light-novels/index.js +8 -0
  138. package/dist/providers/light-novels/index.js.map +1 -0
  139. package/dist/providers/light-novels/novelupdates.d.ts +26 -0
  140. package/dist/providers/light-novels/novelupdates.js +155 -0
  141. package/dist/providers/light-novels/novelupdates.js.map +1 -0
  142. package/dist/providers/manga/asurascans.d.ts +16 -0
  143. package/dist/providers/manga/asurascans.js +143 -0
  144. package/dist/providers/manga/asurascans.js.map +1 -0
  145. package/dist/providers/manga/comick.d.ts +36 -0
  146. package/dist/providers/manga/comick.js +141 -0
  147. package/dist/providers/manga/comick.js.map +1 -0
  148. package/dist/providers/manga/comix.d.ts +36 -0
  149. package/dist/providers/manga/comix.js +265 -0
  150. package/dist/providers/manga/comix.js.map +1 -0
  151. package/dist/providers/manga/index.d.ts +21 -0
  152. package/dist/providers/manga/index.js +26 -0
  153. package/dist/providers/manga/index.js.map +1 -0
  154. package/dist/providers/manga/mangadex.d.ts +26 -0
  155. package/dist/providers/manga/mangadex.js +301 -0
  156. package/dist/providers/manga/mangadex.js.map +1 -0
  157. package/dist/providers/manga/mangahere.d.ts +29 -0
  158. package/dist/providers/manga/mangahere.js +376 -0
  159. package/dist/providers/manga/mangahere.js.map +1 -0
  160. package/dist/providers/manga/mangakakalot.d.ts +56 -0
  161. package/dist/providers/manga/mangakakalot.js +461 -0
  162. package/dist/providers/manga/mangakakalot.js.map +1 -0
  163. package/dist/providers/manga/mangapill.d.ts +15 -0
  164. package/dist/providers/manga/mangapill.js +104 -0
  165. package/dist/providers/manga/mangapill.js.map +1 -0
  166. package/dist/providers/manga/mangareader.d.ts +15 -0
  167. package/dist/providers/manga/mangareader.js +110 -0
  168. package/dist/providers/manga/mangareader.js.map +1 -0
  169. package/dist/providers/manga/weebcentral.d.ts +12 -0
  170. package/dist/providers/manga/weebcentral.js +169 -0
  171. package/dist/providers/manga/weebcentral.js.map +1 -0
  172. package/dist/providers/meta/anilist.d.ts +206 -0
  173. package/dist/providers/meta/anilist.js +2025 -0
  174. package/dist/providers/meta/anilist.js.map +1 -0
  175. package/dist/providers/meta/index.d.ts +9 -0
  176. package/dist/providers/meta/index.js +10 -0
  177. package/dist/providers/meta/index.js.map +1 -0
  178. package/dist/providers/meta/mal.d.ts +39 -0
  179. package/dist/providers/meta/mal.js +529 -0
  180. package/dist/providers/meta/mal.js.map +1 -0
  181. package/dist/providers/meta/tmdb.d.ts +48 -0
  182. package/dist/providers/meta/tmdb.js +364 -0
  183. package/dist/providers/meta/tmdb.js.map +1 -0
  184. package/dist/providers/movies/dramacool.d.ts +98 -0
  185. package/dist/providers/movies/dramacool.js +367 -0
  186. package/dist/providers/movies/dramacool.js.map +1 -0
  187. package/dist/providers/movies/flixhq.d.ts +90 -0
  188. package/dist/providers/movies/flixhq.js +438 -0
  189. package/dist/providers/movies/flixhq.js.map +1 -0
  190. package/dist/providers/movies/goku.d.ts +80 -0
  191. package/dist/providers/movies/goku.js +369 -0
  192. package/dist/providers/movies/goku.js.map +1 -0
  193. package/dist/providers/movies/himovies.d.ts +102 -0
  194. package/dist/providers/movies/himovies.js +445 -0
  195. package/dist/providers/movies/himovies.js.map +1 -0
  196. package/dist/providers/movies/index.d.ts +17 -0
  197. package/dist/providers/movies/index.js +22 -0
  198. package/dist/providers/movies/index.js.map +1 -0
  199. package/dist/providers/movies/netmirror.d.ts +27 -0
  200. package/dist/providers/movies/netmirror.js +259 -0
  201. package/dist/providers/movies/netmirror.js.map +1 -0
  202. package/dist/providers/movies/sflix.d.ts +106 -0
  203. package/dist/providers/movies/sflix.js +490 -0
  204. package/dist/providers/movies/sflix.js.map +1 -0
  205. package/dist/providers/movies/turkish123.d.ts +32 -0
  206. package/dist/providers/movies/turkish123.js +141 -0
  207. package/dist/providers/movies/turkish123.js.map +1 -0
  208. package/dist/providers/news/animenewsnetwork.d.ts +30 -0
  209. package/dist/providers/news/animenewsnetwork.js +105 -0
  210. package/dist/providers/news/animenewsnetwork.js.map +1 -0
  211. package/dist/providers/news/index.d.ts +5 -0
  212. package/dist/providers/news/index.js +8 -0
  213. package/dist/providers/news/index.js.map +1 -0
  214. package/dist/providers/others/index.d.ts +0 -0
  215. package/dist/providers/others/index.js +2 -0
  216. package/dist/providers/others/index.js.map +1 -0
  217. package/dist/utils/index.d.ts +3 -0
  218. package/dist/utils/index.js +33 -0
  219. package/dist/utils/index.js.map +1 -0
  220. package/dist/utils/providers-list.d.ts +11 -0
  221. package/dist/utils/providers-list.js +40 -0
  222. package/dist/utils/providers-list.js.map +1 -0
  223. package/dist/utils/queries.d.ts +13 -0
  224. package/dist/utils/queries.js +31 -0
  225. package/dist/utils/queries.js.map +1 -0
  226. package/dist/utils/utils.d.ts +32 -0
  227. package/dist/utils/utils.js +324 -0
  228. package/dist/utils/utils.js.map +1 -0
  229. package/package.json +107 -0
@@ -0,0 +1,31 @@
1
+ import { ISource, IVideo, VideoExtractor } from '../models';
2
+ import { AxiosAdapter } from 'axios';
3
+ import { ProxyConfig } from '../models/types';
4
+ export declare class MegaUp extends VideoExtractor {
5
+ protected proxyConfig?: ProxyConfig | undefined;
6
+ protected adapter?: AxiosAdapter | undefined;
7
+ protected serverName: string;
8
+ protected sources: IVideo[];
9
+ protected apiBase: string;
10
+ constructor(proxyConfig?: ProxyConfig | undefined, adapter?: AxiosAdapter | undefined);
11
+ GenerateToken: (n: string) => Promise<string>;
12
+ DecodeIframeData: (n: string) => Promise<{
13
+ url: string;
14
+ skip: {
15
+ intro: [number, number];
16
+ outro: [number, number];
17
+ };
18
+ }>;
19
+ Decode: (n: string) => Promise<{
20
+ sources: {
21
+ file: string;
22
+ }[];
23
+ tracks: {
24
+ kind: string;
25
+ file: string;
26
+ label: string;
27
+ }[];
28
+ download: string;
29
+ }>;
30
+ extract: (videoUrl: URL) => Promise<ISource>;
31
+ }
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MegaUp = void 0;
7
+ const models_1 = require("../models");
8
+ const axios_1 = __importDefault(require("axios"));
9
+ class MegaUp extends models_1.VideoExtractor {
10
+ constructor(proxyConfig, adapter) {
11
+ super(proxyConfig, adapter);
12
+ this.proxyConfig = proxyConfig;
13
+ this.adapter = adapter;
14
+ this.serverName = 'MegaUp';
15
+ this.sources = [];
16
+ this.apiBase = 'https://enc-dec.app/api';
17
+ this.GenerateToken = async (n) => {
18
+ try {
19
+ const res = await axios_1.default.get(`${this.apiBase}/enc-kai?text=${encodeURIComponent(n)}`);
20
+ return res.data.result;
21
+ }
22
+ catch (error) {
23
+ throw new Error(error.message);
24
+ }
25
+ };
26
+ this.DecodeIframeData = async (n) => {
27
+ try {
28
+ const res = await axios_1.default.post(`${this.apiBase}/dec-kai`, { text: n });
29
+ return res.data.result;
30
+ }
31
+ catch (error) {
32
+ throw new Error(error.message);
33
+ }
34
+ };
35
+ this.Decode = async (n) => {
36
+ try {
37
+ const res = await axios_1.default.post(`${this.apiBase}/dec-mega`, {
38
+ text: n,
39
+ agent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36',
40
+ }, { headers: { 'Content-Type': 'application/json' } });
41
+ return res.data.result;
42
+ }
43
+ catch (error) {
44
+ console.log(error);
45
+ throw new Error(error.message);
46
+ }
47
+ };
48
+ this.extract = async (videoUrl) => {
49
+ try {
50
+ const url = videoUrl.href.replace('/e/', '/media/');
51
+ const res = await axios_1.default.get(url, {
52
+ headers: {
53
+ Connection: 'keep-alive',
54
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36',
55
+ },
56
+ });
57
+ const decrypted = await this.Decode(res.data.result);
58
+ const data = {
59
+ sources: decrypted.sources.map((s) => ({
60
+ url: s.file,
61
+ isM3U8: s.file.includes('.m3u8') || s.file.endsWith('m3u8'),
62
+ })),
63
+ subtitles: decrypted.tracks.map(t => ({
64
+ kind: t.kind,
65
+ url: t.file,
66
+ lang: t.label,
67
+ })),
68
+ download: decrypted.download,
69
+ };
70
+ return data;
71
+ }
72
+ catch (error) {
73
+ throw new Error(error.message);
74
+ }
75
+ };
76
+ }
77
+ }
78
+ exports.MegaUp = MegaUp;
79
+ //# sourceMappingURL=megaup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"megaup.js","sourceRoot":"","sources":["../../src/extractors/megaup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { VideoExtractor, IVideo } from '../models';
2
+ declare class MixDrop extends VideoExtractor {
3
+ protected serverName: string;
4
+ protected sources: IVideo[];
5
+ extract: (videoUrl: URL) => Promise<IVideo[]>;
6
+ }
7
+ export default MixDrop;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const models_1 = require("../models");
4
+ const utils_1 = require("../utils/utils");
5
+ class MixDrop extends models_1.VideoExtractor {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.serverName = 'MixDrop';
9
+ this.sources = [];
10
+ this.extract = async (videoUrl) => {
11
+ try {
12
+ const { data } = await this.client.get(videoUrl.href);
13
+ const formated = (0, utils_1.safeUnpack)(/(eval)(\(f.*?)(\n<\/script>)/s.exec(data)[2]);
14
+ const [poster, source] = formated
15
+ .match(/poster="([^"]+)"|wurl="([^"]+)"/g)
16
+ .map((x) => x.split(`="`)[1].replace(/"/g, ''))
17
+ .map((x) => (x.startsWith('http') ? x : `https:${x}`));
18
+ this.sources.push({
19
+ url: source,
20
+ isM3U8: source.includes('.m3u8'),
21
+ poster: poster,
22
+ });
23
+ return this.sources;
24
+ }
25
+ catch (err) {
26
+ throw new Error(err.message);
27
+ }
28
+ };
29
+ }
30
+ }
31
+ exports.default = MixDrop;
32
+ //# sourceMappingURL=mixdrop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mixdrop.js","sourceRoot":"","sources":["../../src/extractors/mixdrop.ts"],"names":[],"mappings":";;AAAA,sCAAmD;AACnD,0CAA4C;AAE5C,MAAM,OAAQ,SAAQ,uBAAc;IAApC;;QACqB,eAAU,GAAG,SAAS,CAAC;QACvB,YAAO,GAAa,EAAE,CAAC;QAEjC,YAAO,GAAG,KAAK,EAAE,QAAa,EAAqB,EAAE;YAC5D,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAEtD,MAAM,QAAQ,GAAG,IAAA,kBAAU,EAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE5E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,QAAQ;qBAC9B,KAAK,CAAC,kCAAkC,CAAE;qBAC1C,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;qBACtD,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBAChB,GAAG,EAAE,MAAM;oBACX,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAChC,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CAAA;AACD,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { IVideo } from '../models';
2
+ import VideoExtractor from '../models/video-extractor';
3
+ declare class MoveArnPre extends VideoExtractor {
4
+ protected serverName: string;
5
+ protected sources: IVideo[];
6
+ private unpack;
7
+ extract: (videoUrl: URL) => Promise<IVideo[]>;
8
+ }
9
+ export default MoveArnPre;
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const video_extractor_1 = __importDefault(require("../models/video-extractor"));
7
+ class MoveArnPre extends video_extractor_1.default {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.serverName = 'movearnpre';
11
+ this.sources = [];
12
+ this.extract = async (videoUrl) => {
13
+ var _a;
14
+ try {
15
+ const { data } = await this.client.get(videoUrl.href, {
16
+ headers: {
17
+ Referer: videoUrl.origin,
18
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
19
+ },
20
+ });
21
+ let masterUrl = '';
22
+ const packedMatch = data.match(/eval\(function\(p,a,c,k,e,d\)[\s\S]*?}\('(.+)',(\d+),(\d+),'(.+?)'\.split\('\|'\)\)\)/);
23
+ if (packedMatch) {
24
+ const unpacked = this.unpack(packedMatch[0]);
25
+ if (unpacked) {
26
+ const hlsMatches = {};
27
+ const hlsPattern = /["']hls(\d+)["']:\s*["']([^"']+)["']/g;
28
+ let match;
29
+ while ((match = hlsPattern.exec(unpacked)) !== null) {
30
+ const url = match[2];
31
+ if (!url.endsWith('.txt') && (url.includes('.m3u8') || url.includes('/stream/'))) {
32
+ hlsMatches[`hls${match[1]}`] = url;
33
+ }
34
+ }
35
+ const priority = ['hls4', 'hls2', 'hls3'];
36
+ for (const key of priority) {
37
+ if (hlsMatches[key]) {
38
+ masterUrl = hlsMatches[key];
39
+ break;
40
+ }
41
+ }
42
+ if (!masterUrl) {
43
+ const patterns = [
44
+ /file:\s*["']([^"']*master\.m3u8[^"']*)["']/,
45
+ /["']([^"']*\/stream\/[^"']*master\.m3u8[^"']*)["']/,
46
+ ];
47
+ for (const pattern of patterns) {
48
+ const match = unpacked.match(pattern);
49
+ if (match === null || match === void 0 ? void 0 : match[1]) {
50
+ masterUrl = match[1];
51
+ break;
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ if (!masterUrl) {
58
+ const patterns = [
59
+ /sources:\s*\[\s*\{\s*file:\s*["']([^"']+)["']/,
60
+ /file:\s*["']([^"']*master\.m3u8[^"']*)["']/,
61
+ /["']([^"']*\/stream\/[^"']*master\.m3u8[^"']*)["']/,
62
+ ];
63
+ for (const pattern of patterns) {
64
+ const match = data.match(pattern);
65
+ if (match === null || match === void 0 ? void 0 : match[1]) {
66
+ masterUrl = match[1];
67
+ break;
68
+ }
69
+ }
70
+ }
71
+ if (!masterUrl)
72
+ return [];
73
+ if (masterUrl.startsWith('/')) {
74
+ masterUrl = `${videoUrl.origin}${masterUrl}`;
75
+ }
76
+ try {
77
+ const { data: m3u8Data } = await this.client.get(masterUrl, {
78
+ headers: {
79
+ Referer: videoUrl.href,
80
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
81
+ },
82
+ timeout: 10000,
83
+ });
84
+ this.sources.push({
85
+ quality: 'auto',
86
+ url: masterUrl,
87
+ isM3U8: true,
88
+ });
89
+ if (m3u8Data.includes('#EXT-X-STREAM-INF')) {
90
+ const variants = m3u8Data.split('#EXT-X-STREAM-INF:');
91
+ for (const variant of variants) {
92
+ if (!variant.includes('m3u8'))
93
+ continue;
94
+ const lines = variant.split('\n');
95
+ const variantUrl = (_a = lines[1]) === null || _a === void 0 ? void 0 : _a.trim();
96
+ if (!variantUrl)
97
+ continue;
98
+ const resMatch = variant.match(/RESOLUTION=\d+x(\d+)/);
99
+ const quality = resMatch ? `${resMatch[1]}p` : 'unknown';
100
+ let fullUrl = variantUrl;
101
+ if (!variantUrl.startsWith('http')) {
102
+ const baseUrl = masterUrl.substring(0, masterUrl.lastIndexOf('/') + 1);
103
+ fullUrl = baseUrl + variantUrl;
104
+ }
105
+ this.sources.push({
106
+ url: fullUrl,
107
+ quality,
108
+ isM3U8: true,
109
+ });
110
+ }
111
+ }
112
+ }
113
+ catch (_b) {
114
+ if (this.sources.length === 0) {
115
+ this.sources.push({
116
+ quality: 'auto',
117
+ url: masterUrl,
118
+ isM3U8: true,
119
+ });
120
+ }
121
+ }
122
+ return this.sources;
123
+ }
124
+ catch (_c) {
125
+ return [];
126
+ }
127
+ };
128
+ }
129
+ unpack(packed) {
130
+ try {
131
+ const match = packed.match(/}\('(.+)',(\d+),(\d+),'(.+)'\.split\('\|'\)/);
132
+ if (!match)
133
+ return '';
134
+ const payload = match[1].replace(/\\'/g, "'");
135
+ const radix = parseInt(match[2]);
136
+ const count = parseInt(match[3]);
137
+ const symbols = match[4].split('|');
138
+ let unpacked = payload;
139
+ for (let i = count - 1; i >= 0; i--) {
140
+ if (symbols[i]) {
141
+ const token = i.toString(radix);
142
+ const regex = new RegExp('\\b' + token + '\\b', 'g');
143
+ unpacked = unpacked.replace(regex, symbols[i]);
144
+ }
145
+ }
146
+ return unpacked;
147
+ }
148
+ catch (_a) {
149
+ return '';
150
+ }
151
+ }
152
+ }
153
+ exports.default = MoveArnPre;
154
+ //# sourceMappingURL=movearnpre.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"movearnpre.js","sourceRoot":"","sources":["../../src/extractors/movearnpre.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { IVideo } from '../models';
2
+ import VideoExtractor from '../models/video-extractor';
3
+ declare class Sendvid extends VideoExtractor {
4
+ protected serverName: string;
5
+ protected sources: IVideo[];
6
+ extract: (videoUrl: URL) => Promise<IVideo[]>;
7
+ }
8
+ export default Sendvid;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const video_extractor_1 = __importDefault(require("../models/video-extractor"));
7
+ class Sendvid extends video_extractor_1.default {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.serverName = 'sendvid';
11
+ this.sources = [];
12
+ this.extract = async (videoUrl) => {
13
+ try {
14
+ const { data } = await this.client.get(videoUrl.href, {
15
+ headers: {
16
+ Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
17
+ 'Accept-Language': 'en-US,en;q=0.9',
18
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:145.0) Gecko/20100101 Firefox/145.0',
19
+ Referer: 'https://sendvid.com/',
20
+ },
21
+ validateStatus: status => {
22
+ return (status >= 200 && status < 300) || status === 404;
23
+ },
24
+ });
25
+ let extractedVideoUrl = null;
26
+ let poster = undefined;
27
+ const sourceTagMatch = data.match(/<source\s+src="([^"]+)"\s+type="video\/mp4"/);
28
+ if (sourceTagMatch && sourceTagMatch[1]) {
29
+ extractedVideoUrl = sourceTagMatch[1];
30
+ }
31
+ if (!extractedVideoUrl) {
32
+ const videoSourceVarMatch = data.match(/var\s+video_source\s*=\s*"([^"]+)"/);
33
+ if (videoSourceVarMatch && videoSourceVarMatch[1]) {
34
+ extractedVideoUrl = videoSourceVarMatch[1];
35
+ }
36
+ }
37
+ if (!extractedVideoUrl) {
38
+ const ogVideoMatch = data.match(/<meta\s+property="og:video"\s+content="([^"]+)"/);
39
+ if (ogVideoMatch && ogVideoMatch[1]) {
40
+ extractedVideoUrl = ogVideoMatch[1];
41
+ }
42
+ }
43
+ if (!extractedVideoUrl) {
44
+ console.warn(`Sendvid video not found or taken down: ${videoUrl.href}`);
45
+ return [];
46
+ }
47
+ const posterMatch = data.match(/poster="([^"]+)"/);
48
+ if (posterMatch && posterMatch[1]) {
49
+ poster = posterMatch[1];
50
+ }
51
+ this.sources.push({
52
+ url: extractedVideoUrl,
53
+ quality: 'default',
54
+ isM3U8: false,
55
+ ...(poster && { poster }),
56
+ });
57
+ return this.sources;
58
+ }
59
+ catch (err) {
60
+ if (err &&
61
+ typeof err === 'object' &&
62
+ 'response' in err &&
63
+ err.response &&
64
+ typeof err.response === 'object' &&
65
+ 'status' in err.response &&
66
+ err.response.status === 404) {
67
+ console.warn(`Sendvid video not found (404): ${videoUrl.href}`);
68
+ return [];
69
+ }
70
+ throw new Error(`Sendvid extraction failed: ${err.message}`);
71
+ }
72
+ };
73
+ }
74
+ }
75
+ exports.default = Sendvid;
76
+ //# sourceMappingURL=sendvid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendvid.js","sourceRoot":"","sources":["../../src/extractors/sendvid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { IVideo } from '../models';
2
+ import VideoExtractor from '../models/video-extractor';
3
+ declare class Sibnet extends VideoExtractor {
4
+ protected serverName: string;
5
+ protected sources: IVideo[];
6
+ extract: (videoUrl: URL) => Promise<IVideo[]>;
7
+ }
8
+ export default Sibnet;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const video_extractor_1 = __importDefault(require("../models/video-extractor"));
7
+ class Sibnet extends video_extractor_1.default {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.serverName = 'sibnet';
11
+ this.sources = [];
12
+ this.extract = async (videoUrl) => {
13
+ try {
14
+ const { data } = await this.client.get(videoUrl.href, {
15
+ headers: {
16
+ Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
17
+ 'Accept-Language': 'en-US,en;q=0.9',
18
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:145.0) Gecko/20100101 Firefox/145.0',
19
+ Referer: 'https://video.sibnet.ru/',
20
+ },
21
+ });
22
+ const srcMatch = data.match(/player\.src\(\[\{src:\s*"([^"]+)",\s*type:\s*"([^"]+)"/);
23
+ if (!srcMatch) {
24
+ throw new Error('Could not find video source in page');
25
+ }
26
+ const videoPath = srcMatch[1];
27
+ const videoType = srcMatch[2];
28
+ const fullUrl = videoPath.startsWith('http') ? videoPath : `https://video.sibnet.ru${videoPath}`;
29
+ this.sources.push({
30
+ url: fullUrl,
31
+ quality: 'default',
32
+ isM3U8: videoType.includes('m3u8') || fullUrl.includes('.m3u8'),
33
+ referer: videoUrl.href,
34
+ });
35
+ return this.sources;
36
+ }
37
+ catch (err) {
38
+ throw new Error(`Sibnet extraction failed: ${err.message}`);
39
+ }
40
+ };
41
+ }
42
+ }
43
+ exports.default = Sibnet;
44
+ //# sourceMappingURL=sibnet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sibnet.js","sourceRoot":"","sources":["../../src/extractors/sibnet.ts"],"names":[],"mappings":";;;;;AACA,gFAAuD;AAEvD,MAAM,MAAO,SAAQ,yBAAc;IAAnC;;QACqB,eAAU,GAAG,QAAQ,CAAC;QACtB,YAAO,GAAa,EAAE,CAAC;QAEjC,YAAO,GAAG,KAAK,EAAE,QAAa,EAAqB,EAAE;YAC5D,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACpD,OAAO,EAAE;wBACP,MAAM,EAAE,iEAAiE;wBACzE,iBAAiB,EAAE,gBAAgB;wBACnC,YAAY,EAAE,kFAAkF;wBAChG,OAAO,EAAE,0BAA0B;qBACpC;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBAEtF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACzD,CAAC;gBAED,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAE9B,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,SAAS,EAAE,CAAC;gBAEjG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBAChB,GAAG,EAAE,OAAO;oBACZ,OAAO,EAAE,SAAS;oBAClB,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAC/D,OAAO,EAAE,QAAQ,CAAC,IAAI;iBACvB,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,6BAA8B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CAAA;AAED,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { VideoExtractor, IVideo } from '../models';
2
+ declare class StreamSB extends VideoExtractor {
3
+ protected serverName: string;
4
+ protected sources: IVideo[];
5
+ private readonly host;
6
+ private readonly host2;
7
+ private PAYLOAD;
8
+ extract: (videoUrl: URL, isAlt?: boolean) => Promise<IVideo[]>;
9
+ private addSources;
10
+ }
11
+ export default StreamSB;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const models_1 = require("../models");
4
+ const utils_1 = require("../utils");
5
+ class StreamSB extends models_1.VideoExtractor {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.serverName = 'streamsb';
9
+ this.sources = [];
10
+ this.host = 'https://streamsss.net/sources50';
11
+ this.host2 = 'https://watchsb.com/sources50';
12
+ this.PAYLOAD = (hex) => `566d337678566f743674494a7c7c${hex}7c7c346b6767586d6934774855537c7c73747265616d7362/6565417268755339773461447c7c346133383438333436313335376136323337373433383634376337633465366534393338373136643732373736343735373237613763376334363733353737303533366236333463353333363534366137633763373337343732363536313664373336327c7c6b586c3163614468645a47617c7c73747265616d7362`;
13
+ this.extract = async (videoUrl, isAlt = false) => {
14
+ let headers = {
15
+ watchsb: 'sbstream',
16
+ 'User-Agent': utils_1.USER_AGENT,
17
+ Referer: videoUrl.href,
18
+ };
19
+ let id = videoUrl.href.split('/e/').pop();
20
+ if (id === null || id === void 0 ? void 0 : id.includes('html'))
21
+ id = id.split('.html')[0];
22
+ const bytes = new TextEncoder().encode(id);
23
+ const res = await this.client
24
+ .get(`${isAlt ? this.host2 : this.host}/${this.PAYLOAD(Buffer.from(bytes).toString('hex'))}`, {
25
+ headers,
26
+ })
27
+ .catch(() => null);
28
+ if (!(res === null || res === void 0 ? void 0 : res.data.stream_data))
29
+ throw new Error('No source found. Try a different server.');
30
+ headers = {
31
+ 'User-Agent': utils_1.USER_AGENT,
32
+ Referer: videoUrl.href.split('e/')[0],
33
+ };
34
+ const m3u8Urls = await this.client.get(res.data.stream_data.file, {
35
+ headers,
36
+ });
37
+ const videoList = m3u8Urls.data.split('#EXT-X-STREAM-INF:');
38
+ for (const video of videoList !== null && videoList !== void 0 ? videoList : []) {
39
+ if (!video.includes('m3u8'))
40
+ continue;
41
+ const url = video.split('\n')[1];
42
+ const quality = video.split('RESOLUTION=')[1].split(',')[0].split('x')[1];
43
+ this.sources.push({
44
+ url: url,
45
+ quality: `${quality}p`,
46
+ isM3U8: true,
47
+ });
48
+ }
49
+ this.sources.push({
50
+ quality: 'auto',
51
+ url: res.data.stream_data.file,
52
+ isM3U8: res.data.stream_data.file.includes('.m3u8'),
53
+ });
54
+ return this.sources;
55
+ };
56
+ this.addSources = (source) => {
57
+ this.sources.push({
58
+ url: source.file,
59
+ isM3U8: source.file.includes('.m3u8'),
60
+ });
61
+ };
62
+ }
63
+ }
64
+ exports.default = StreamSB;
65
+ //# sourceMappingURL=streamsb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamsb.js","sourceRoot":"","sources":["../../src/extractors/streamsb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { VideoExtractor, IVideo } from '../models';
2
+ declare class StreamTape extends VideoExtractor {
3
+ protected serverName: string;
4
+ protected sources: IVideo[];
5
+ extract: (videoUrl: URL) => Promise<IVideo[]>;
6
+ }
7
+ export default StreamTape;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const models_1 = require("../models");
4
+ class StreamTape extends models_1.VideoExtractor {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.serverName = 'StreamTape';
8
+ this.sources = [];
9
+ this.extract = async (videoUrl) => {
10
+ try {
11
+ const apiUrl = 'https://crawlr.cc/F4A2D9B6C?url=' + encodeURIComponent(videoUrl.href);
12
+ const { data } = await this.client.get(apiUrl);
13
+ if (!data.sources || data.sources.length === 0) {
14
+ throw new Error('No sources returned');
15
+ }
16
+ for (const src of data.sources) {
17
+ this.sources.push({
18
+ url: src.url,
19
+ quality: src.quality,
20
+ isM3U8: src.url.includes('.m3u8'),
21
+ });
22
+ }
23
+ return this.sources;
24
+ }
25
+ catch (err) {
26
+ throw new Error(err.message);
27
+ }
28
+ };
29
+ }
30
+ }
31
+ exports.default = StreamTape;
32
+ //# sourceMappingURL=streamtape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamtape.js","sourceRoot":"","sources":["../../src/extractors/streamtape.ts"],"names":[],"mappings":";;AAAA,sCAAmD;AAiBnD,MAAM,UAAW,SAAQ,uBAAc;IAAvC;;QACqB,eAAU,GAAG,YAAY,CAAC;QAC1B,YAAO,GAAa,EAAE,CAAC;QAEjC,YAAO,GAAG,KAAK,EAAE,QAAa,EAAqB,EAAE;YAC5D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,kCAAkC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAEtF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAgB,MAAM,CAAC,CAAC;gBAE9D,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/C,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACzC,CAAC;gBAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;wBAChB,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;qBAClC,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CAAA;AAED,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { VideoExtractor, IVideo, ISubtitle } from '../models';
2
+ declare class StreamWish extends VideoExtractor {
3
+ protected serverName: string;
4
+ protected sources: IVideo[];
5
+ extract: (videoUrl: URL) => Promise<{
6
+ sources: IVideo[];
7
+ } & {
8
+ subtitles: ISubtitle[];
9
+ }>;
10
+ }
11
+ export default StreamWish;