const https = require('https'); async function PornHub(url) { const payload = JSON.stringify({ platform: 'Pornhub', url: url, app_id: 'pornhub_downloader' }); const options = { hostname: 'download.pornhubdownloader.io', path: '/xxx-download/video-info-v3', method: 'POST', headers: { 'Content-Type': 'application/json', 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36', 'Referer': 'https://pornhubdownloader.io/', 'Content-Length': Buffer.byteLength(payload), 'Accept': 'application/json', 'Accept-Encoding': 'identity' }, timeout: 20000 }; return new Promise((resolve, reject) => { const req = https.request(options, (res) => { let body = ''; res.setEncoding('utf8'); res.on('data', (chunk) => { body += chunk; }); res.on('end', () => { try { const parsed = JSON.parse(body); if (parsed.code === 200 && parsed.data && Array.isArray(parsed.data.videos)) { const videoList = parsed.data.videos.map(v => ({ quality: v.quality, url: v.url })); resolve({ title: parsed.data.title, thumbnail: parsed.data.cover, videos: videoList }); } else { resolve(parsed); } } catch (err) { reject(new Error('Response is not valid JSON')); } }); }); req.on('error', (err) => { reject(err); }); req.on('timeout', () => { req.destroy(new Error('Request timed out')); }); req.write(payload); req.end(); }); } return PornHub("https://www.pornhub.com/view_video.php?viewkey=68a887b926479")