Spaces:
Runtime error
Runtime error
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}; | |