contentapi.ts
Version:
Nodejs library that provides high-level APIs for obtaining information on various entertainment media such as books, movies, comic books, anime, manga, and so on.
59 lines • 3.58 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
// filepath: /Users/mehakpreetsingh/Documents/NextJs App/anime-haven.ts/server/utils/src/extractors/kwik.ts
const models_1 = require("../models");
const puppeteer_core_1 = __importDefault(require("puppeteer-core"));
class Kwik extends models_1.VideoExtractor {
constructor() {
super(...arguments);
this.serverName = 'kwik';
this.sources = [];
this.host = 'https://animepahe.com';
this.extract = async (videoUrl) => {
console.log("Video URL", videoUrl);
let browser = null;
try {
console.log("Connecting to Browserless");
browser = await puppeteer_core_1.default.connect({
browserWSEndpoint: `wss://chrome.browserless.io?token=Rw70jcguA7rY5ac5d9128ec9333ea56851c6245927`,
});
const page = await browser.newPage();
await page.setExtraHTTPHeaders({
Referer: this.host,
Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en-IN,en-GB;q=0.9,en;q=0.8',
Cookie: '__ddg10_=1741881917; __ddg8_=NziYGZV9tqNLZUh2; __ddg9_=49.43.243.251; XSRF-TOKEN=eyJpdiI6InVQUG5DMjl5NklqWkhYZjM0WG9jS2c9PSIsInZhbHVlIjoiMHVqTUI1MWxnS3BoWE05SWhyNmJZVXlwelQ1V0QvQWhSSHB2N2NJNE1DOWU0bUtHTlhWRjVLelFucnF6WElEeWNwanc5RTJZanBUZ3hCc083T0NzUERXSDd4V0IzLzBDcElDdUVta3JxQkpzcXFuQUpVMjdhcS9TKzNUdXNKWWUiLCJtYWMiOiIzMjFmMWY1ZWIzMWY2NzY3NGYwNWYzNzI4NmIzZTI5NDJiMGY5ODM2M2QxMDg4ODZlYTM3ZDk2NjA1NzY3ZTUwIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6Iml6S3lVYkVURGhGQTVRRGdwMEtOU0E9PSIsInZhbHVlIjoiS1d6ckdtVk5ueGFENCthei9YNVJkNGwyb1lqRzhLYmFzRUpXQUN6RHZjVUloeWx0bnFxZ2Jwb21XeWFhZkFkY0diZG5OTzZ3TWYvNktEc3VraU9Vdm9XVDY1UWJOeHFsME5HY0t2WVA1aDBLZFc5UVRXVjRPVkFpYlFJbG1uelYiLCJtYWMiOiJiMDliYjI2ODQ3MDU1MTc0ODAyYTNlNjgzYjM5OWFmNDBlNzQyMjY5OWVhNTg4YTU1ZDJlMGMyYWY3M2JlOGYyIiwidGFnIjoiIn0%3D; latest=5878; aud=jpn; av1=0; res=1080; __ddg1_=8lu9I4gc1uR2itnG0Ajt; __ddg2_=1RG0v5pQkKLUSJi1; __ddgid_=MPBk4n8hzifPnTHn',
Priority: 'u=0, i',
'Sec-Fetch-Dest': 'document',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Safari/605.1.15'
});
await page.goto(videoUrl.href, { waitUntil: 'networkidle2' });
const data = await page.content();
console.log("Response data:", data);
const source = eval(/(eval)(\(f.*?)(\n<\/script>)/s.exec(data)[2].replace('eval', '')).match(/https.*?m3u8/);
this.sources.push({
url: source[0],
isM3U8: source[0].includes('.m3u8'),
});
return this.sources;
}
catch (err) {
console.error("Error making request:", err);
throw new Error(err.message);
}
finally {
if (browser !== null) {
await browser.close();
}
}
};
}
}
exports.default = Kwik;
//# sourceMappingURL=kwik.js.map