Spaces:
Runtime error
Runtime error
File size: 2,809 Bytes
d946783 801f178 d946783 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
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};
|