Package Exports
- pornhub.js
 
Readme
PornHub.js

Powerful PornHub API for Node.js
Features
- Parser: Parse pages for 
Video,Album,Photo,PornStarandModel - Search: Search for 
Video,Album,Gif,PornStarandModel, support all the query parameters - Pagination: Support pagination for search results
 - WebMaster: Utilize the WebMaster API from Hubtraffic like a king 😎
 
Documents
- Document for all the APIs and usages
 - Page Parser for 
Video,Album,Photo,PornStar, andModel - Search for 
Video,Album,Gif,PornStar, andModel - WebMaster API
 - Migrate from v0.x to v1.x? Check Migration Guide
 
Getting Started
Requirements
Node.js>= 14
Installation
npm install pornhub.js --save
pnpm install pornhub.js --save
yarn add pornhub.jsUsage
import { PornHub } from 'pornhub.js'
// const { PornHub } = require('pornhub.js')
const pornhub = new PornHub()Search Video
const result = pornhub.searchVideo('tokyo hot')
console.log(result.data[0]) // first videoResult
{
  "title": "Japanese Tokyo Hot",
  "url": "https://www.pornhub.com/view_video.php?viewkey=***",
  "views": "14M",
  "duration": "14:24",
  "hd": true,
  "premium": false,
  "freePremium": false,
  "preview": "https://ci.phncdn.com/videos/***.jpg"
}Getting Video Information
const url = 'https://www.pornhub.com/view_video.php?viewkey=ph5ac81eabe203d'
const video = await pornhub.video(url)
console.log(video)Result
{
  "title": "Japanese Tokyo Hot",
  "views": 49517,
  "duration": 1922,
  "durationFormatted": "32:02",
  "vote": { "up": 64, "down": 14, "total": 78, "rating": 0.82 },
  "premium": false,
  "thumb": "data:image/gif...",
  "provider": { "username": "wowgirls", "url": "/users/wowgirls" },
  "tags": ["hardcore", "hentai", "memes"],
  "categories": ["HD-Porn", "SFW"],
  "pornstars": ["pig"],
  "mediaDefinitions": [
    {
      "defaultQuality": true,
      "format": "hls",
      "quality": 720,
      "videoUrl": "https://cv.phncdn.com/videos/.../720P_1500K_.m3u8?validfrom=...&validto=...&rate=...&burst=...&ip=...&ipa=...&hash=..."
    },
    {
      "defaultQuality": false,
      "format": "hls",
      "quality": [1080, 720, 480, 240],
      "videoUrl": "https://cv.phncdn.com/videos/.../480P_600K_.m3u8?validfrom=...&validto=...&rate=...&burst=...&ip=...&ipa=...&hash=..."
    },
    {
      "defaultQuality": false,
      "format": "hls",
      "quality": 240,
      "videoUrl": "https://cv.phncdn.com/videos/.../240P_400K_.m3u8?validfrom=...&validto=...&rate=...&burst=...&ip=...&ipa=...&hash=...",
      "remote": true
    }
  ]
}More
See DOCUMENT for more information.
Notice
- Please note that video downloading is no longer supported. We are unable to provide a download link due to the changes made by PornHub. Instead, the raw 
mediaDefinitionsare provided. You can try to download videos via the m3u8 information inmediaDefinitionsor use alternative tools such as yt-dlp. But that would be out of the scope of this project.