torflix / embed.js
merasabkuch's picture
Update embed.js
801f178 verified
const { firefox } = require('playwright'); // Ensure you have playwright installed
function serieMultiembed(imdbId) {
imdbId= imdbId.split(':');
return `https://multiembed.mov/?video_id=${imdbId[0]}&season=${imdbId[1]}&episode=${imdbId[2]}`;
}
async function movieshubembed(imdb,l=null){
var link = `https://watch.movieshubweb.com/embed/${imdb}`;
page.on('request', async (request) => {
console.log('>>', request.method(), request.url());
if (request.url().includes('.m3u8')) {
setTimeout(async () => await browser.close(), 5000);
resolve(request.url());
}
});
page.on('response', response =>
console.log('<<', response.status(), response.url())
);
try {
await page.goto(link);
await page.waitForLoadState('domcontentloaded');
await page.locator('button:text("Yes")').click();
await page.waitForSelector('#play');
await page.click('#play');
} catch (error) {
await browser.close();
reject(error);
}
}
async function movieMultiembed(imdbId,link=null) {
const browser = await firefox.launch();
const page = await browser.newPage();
await page.setViewportSize({ width: 1200, height: 800 });
return new Promise(async (resolve, reject) => {
page.on('request', async (request) => {
console.log('>>', request.method(), request.url());
if (request.url().includes('.m3u8')) {
setTimeout(async () => await browser.close(), 5000);
resolve(request.url());
}
});
page.on('response', response =>
console.log('<<', response.status(), response.url())
);
try {
if(link){
await page.goto(link);
}else{
await page.goto(`https://multiembed.mov/?video_id=${imdbId}`);
}
await page.waitForSelector('#play');
await page.click('#play');
} catch (error) {
await browser.close();
reject(error);
}
});
}
function timeoutPromise(ms) {
return new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout')), ms));
}
async function movieMultiembedTimeout(movieId, timeout,link=null) {
try {
const result = await Promise.race([
movieshubembed(movieId,link),
// movieMultiembed(movieId,link),
timeoutPromise(timeout)
]);
return result;
} catch (error) {
console.error(error);
return null; // or handle the timeout error as needed
}
}
module.exports = { movieMultiembed,movieMultiembedTimeout,serieMultiembed};