nurlresolver
Version:
url resolver for node
42 lines • 1.5 kB
JavaScript
import { BaseUrlResolver } from "../BaseResolver.js";
export class StreamlareResolver extends BaseUrlResolver {
constructor() {
super({
domains: [/https?:\/\/streamlare/],
useCookies: true,
speedRank: 75
});
}
async resolveInner(_urlToResolve) {
const response1 = await this.gotInstance(_urlToResolve);
const { fileEmbed } = this.scrapeHtml(response1.body, {
fileEmbed: {
selector: 'file-embed',
attr: ':file'
}
});
const title = `${JSON.parse(fileEmbed).name}.mp4`;
const jsontopost = { id: JSON.parse(fileEmbed).hashid };
const u1 = new URL('/api/video/get', _urlToResolve);
const response2 = await this.gotInstance.post(u1.href, {
json: jsontopost,
resolveBodyOnly: true
});
const result = JSON.parse(response2);
if (result.status == 'success') {
const link = decryptString(result.result['Original'].src);
return { link, title, isPlayable: true };
}
return [];
}
}
const decryptString = (s) => {
const encodedString = Buffer.from(s, 'base64').toString('binary'); //atob
let result = '';
for (let i = 0; i < encodedString.length; i++) {
const tempResult = 51 ^ encodedString.charCodeAt(i);
result += String.fromCharCode(tempResult);
}
return result;
};
//# sourceMappingURL=streamlare.js.map