this code is not working at render production but working fine in local machine.
means if (request.resourceType() === “media”) {
console.log(“Media request intercepted:”, request.url());
browser.close();
resolve(request.url());
i donot get resourceType() === “media” at render production level…
same is working fine in local machine…there is not login require for this purpose… i have already checked in local machine crome testing browser is used for the same purpose and i am not login there
const getDirectVideoUrl = async (instagramUrl) => {
const browser = await puppeteer.launch({ headless:“new” });
const browserVersion = await browser.version();
console.log(‘Chromium Version:’, browserVersion);
const page = await browser.newPage();
// Enable request interception
await page.setRequestInterception(true);
console.log(“1 setRequestInterception(true) this done”);
// // Log all responses
page.on(“response”, (response) => {
console.log(“Response URL:”, response.url());
});
// Navigate to the URL
console.log(“5 just start of navigation”);
page.goto(instagramUrl, { waitUntil: “domcontentloaded” }).catch((error) => {
reject(error);
});
console.log(“6 page navigated”);
// Create a promise that resolves when the video URL is found
const videoUrlPromise = new Promise((resolve, reject) => {
console.log(“2 just enter inside new promise”);
page.on(“request”, (request) => {
console.log(“3. request event listned triggered”);
if (request.resourceType() === “media”) {
console.log(“Media request intercepted:”, request.url());
browser.close();
resolve(request.url());
} else {
console.log(“4. request continuingggggg”,request.url());
console.log(“Resource Type:”, request.resourceType());
request.continue();
}
});
page.on("error", (error) => {
console.error("Error:", error);
browser.close();
reject(error);
});
});
// Wait for the promise to resolve
const videoUrl = await videoUrlPromise;
return videoUrl;
};
for example i have given url below: approach is not working at production for any video url…but working in local machine…