ntahh msh pemula njir
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")