Back

Scrape Downloader Pornhub

81 views
hirox Code by: @hirox

Description

ntahh msh pemula njir

Features

Code (javascript)

pornhub.js
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")