nurlresolver
Version:
url resolver for node
41 lines • 1.45 kB
JavaScript
import { BaseUrlResolver } from "../BaseResolver.js";
export class NinjastreamResolver extends BaseUrlResolver {
constructor() {
super({
domains: [/https?:\/\/ninjastream/],
useCookies: true
});
}
async resolveInner(_urlToResolve) {
const response1 = await this.gotInstance(_urlToResolve);
const { fileEmbed, csrfToken } = this.scrapeHtml(response1.body, {
fileEmbed: {
selector: 'file-watch',
attr: 'v-bind:file'
},
csrfToken: {
selector: 'meta[name="csrf-token"]',
attr: 'content'
}
});
const title = JSON.parse(fileEmbed).name;
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,
headers: {
'x-csrf-token': csrfToken,
"x-requested-with": "XMLHttpRequest",
'referer': _urlToResolve
}
});
const result = JSON.parse(response2);
if (result.status == 'success') {
const link = `${result.result['playlist']}`;
return { link, title, isPlayable: true };
}
return [];
}
}
//# sourceMappingURL=ninjastream.js.map