const express = require('express'); const puppeteer = require('puppeteer-extra'); const StealthPlugin = require('puppeteer-extra-plugin-stealth'); const axios = require('axios'); puppeteer.use(StealthPlugin()); const app = express(); const PORT = 7860; const HEADERS = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "Referer": "https://lovetier.bz/", "Accept": "*/*" }; function resolveUrl(url, base) { try { return new URL(url, base).href; } catch (e) { return url; } } app.get('/', async (req, res) => { const id = req.query.id; const tsUrlBase64 = req.query.ts; // 💡 1. مسار تشغيل الفيديو if (tsUrlBase64) { try { const targetTs = Buffer.from(tsUrlBase64, 'base64').toString('utf-8'); const response = await axios({ method: 'get', url: targetTs, headers: HEADERS, responseType: 'stream' }); res.setHeader('Content-Type', 'video/mp2t'); res.setHeader('Access-Control-Allow-Origin', '*'); response.data.pipe(res); } catch (err) { res.status(500).send("TS Fetch Error"); } return; } // 💡 2. مسار القناص (تخطي الـ JS) if (id) { let browser; try { browser = await puppeteer.launch({ headless: "new", executablePath: process.env.PUPPETEER_EXECUTABLE_PATH || '/usr/bin/chromium', args: [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--disable-features=IsolateOrigins,site-per-process' ] }); const page = await browser.newPage(); await page.setExtraHTTPHeaders({ 'Referer': 'https://lovetier.bz/' }); // 💡 الخدعة السحرية: إبطال مفعول حماية الـ Framebuster اللي بتطرد الوركر await page.evaluateOnNewDocument(() => { Object.defineProperty(window, 'top', { get: () => { return {}; } // بنوهمه إننا مش الصفحة الرئيسية }); }); let m3u8Url = null; await page.setRequestInterception(true); page.on('request', request => { const url = request.url(); if (url.includes('.m3u8')) { m3u8Url = url; request.abort(); // خطفنا الرابط! بنوقف التحميل فوراً للسرعة } else if (['image', 'stylesheet', 'font', 'media'].includes(request.resourceType())) { request.abort(); // منع تحميل الصور عشان نسرع المعالجة } else { request.continue(); } }); const targetUrl = `https://popcdn.day/player/${id}`; try { // زودنا وقت الانتظار عشان بطء معالجات Hugging Face await page.goto(targetUrl, { waitUntil: 'domcontentloaded', timeout: 20000 }); let checks = 0; // هنصبر عليه 20 ثانية يفك التشفير while (!m3u8Url && checks < 40) { await new Promise(r => setTimeout(r, 500)); checks++; } } catch(e) {} await browser.close(); if (!m3u8Url) { return res.status(404).send("🛑 Shalaby Node Engine: Stream not found or JS Bypass failed."); } // سحب محتوى القائمة وإعادة تشفيرها const m3u8Response = await axios.get(m3u8Url, { headers: HEADERS }); let m3u8Content = m3u8Response.data; const finalBaseUrl = m3u8Response.request.res.responseUrl || m3u8Url; const protocol = req.headers['x-forwarded-proto'] || req.protocol; const scriptUrl = `${protocol}://${req.get('host')}${req.path}`; let lines = m3u8Content.split('\n'); let newContent = ""; for (let line of lines) { line = line.trim(); if (!line) continue; if (line.startsWith('#EXT-X-KEY:URI=')) { const keyMatch = line.match(/URI="(.*?)"/); if (keyMatch && keyMatch[1] && !keyMatch[1].startsWith('data:')) { const keyUrl = resolveUrl(keyMatch[1], finalBaseUrl); line = line.replace(keyMatch[1], `${scriptUrl}?ts=${Buffer.from(keyUrl).toString('base64')}`); } newContent += line + "\n"; } else if (line.startsWith('#')) { newContent += line + "\n"; } else { const tsLink = resolveUrl(line, finalBaseUrl); newContent += `${scriptUrl}?ts=${Buffer.from(tsLink).toString('base64')}\n`; } } res.setHeader('Content-Type', 'application/vnd.apple.mpegurl'); res.setHeader('Access-Control-Allow-Origin', '*'); res.send(newContent); } catch (err) { if (browser) await browser.close(); res.status(500).send("Engine Crash: " + err.message); } return; } res.send("

🔥 SHALABY FULL NODE.JS SNIPER ONLINE!

Usage: add ?id=beINAR3

"); }); app.listen(PORT, () => { console.log(`Shalaby Sniper running on port ${PORT}`); });