Pornhub Scraper
Pricing
from $4.00 / 1,000 results
Pornhub Scraper
[๐ฐ $4.00 / 1K] Extract public Pornhub video data โ title, duration, views, rating, votes, tags, categories, pornstars, channel, thumbnail, and upload date. Scrape by keyword search or paste video, search, channel, model, pornstar, and category URLs. Optional direct media/download links.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Pull public video data from Pornhub at scale โ titles, durations, view counts, up-votes, upload dates, categories, tags, pornstar lists, channel details, thumbnails, and optional HD stream links โ from search keywords or any video, channel, model, pornstar, or category page. Built for media researchers, content analysts, and data teams who need structured adult-video metadata in bulk without collecting it page by page.
Why This Scraper?
- 6 input URL types in one actor โ individual video, search results, channel, model, pornstar, and category pages all flow into a single clean dataset, no per-type setup.
- Keyword search built in โ type a performer name or topic and the actor runs the search for you; no need to hand-craft a search URL.
- 5 sort orders โ Most Relevant, Most Recent, Most Viewed, Top Rated, and Longest, applied across every search and listing page.
- 20+ structured fields per video โ including arrays for categories, tags, and pornstar lists, plus production type, channel name and URL, view count, and up-votes.
- Related-video expansion, capped per source โ optionally pull the suggested videos from each video page as extra flat rows, with a per-video cap so your result count stays predictable.
- HD stream links at 4 qualities โ opt in for direct media links: 1080p, 720p, 480p, and 240p streams plus MP4 links for download workflows.
- One flat row per video โ every result is a single record (no nested child arrays), so search results, channel catalogs, and related videos all land in the same table ready to filter and export.
- ISO-8601 dates and clean arrays โ upload dates are normalized and empty placeholder values are stripped, so you never get junk sentinels like
"No"in your pornstar or category fields.
Use Cases
Market & Trend Research
- Track which categories and tags trend across Most Viewed and Top Rated listings
- Compare view counts and up-votes across a topic to gauge audience demand
- Surface the longest or most-recent uploads for a search term
- Build view-count time series by re-running a saved search on a schedule
Content Cataloging
- Pull a channel, model, or pornstar's full back catalog into a single sheet
- Index videos by category and tag for a searchable internal library
- Capture thumbnails and embed URLs for content management systems
- Map production type (professional vs. homemade) across a creator's output
Competitive & Creator Analysis
- Benchmark a creator's upload cadence and engagement against peers
- Compare category mix and tagging strategies between channels
- Monitor a pornstar page for new releases and rising view counts
- Analyze which tags correlate with the highest view counts in a niche
Dataset Building
- Assemble a labeled video-metadata dataset for media or recommendation research
- Collect related-video graphs to study suggestion patterns
- Export view, vote, and duration distributions for statistical analysis
- Feed structured rows into dashboards and BI tools
Compliance & Moderation Research
- Compile public metadata for content-policy and moderation studies
- Track category and tag prevalence for safety research
- Build reference sets of public listings for academic or legal review
Getting Started
Keyword Search
The simplest run โ one keyword, default of 100 videos:
{"searchQueries": ["massage"]}
Sorted Multi-URL Run
Collect from several pages and order them by most viewed:
{"startUrls": ["https://www.pornhub.com/model/example-model/videos","https://www.pornhub.com/categories/example-category"],"sortBy": "mv","maxResults": 200}
Full Configuration
Search and listing pages with related videos and direct media links enabled:
{"searchQueries": ["amateur"],"startUrls": ["https://www.pornhub.com/view_video.php?viewkey=ph0000000000000"],"sortBy": "tr","maxResults": 500,"includeRelatedVideos": true,"maxRelatedPerVideo": 10,"includeDownloadUrls": true}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | string[] | [] | Pornhub URLs to collect. Works with video, search results, channel, model, pornstar, user, and category pages. The actor auto-detects each URL type. |
searchQueries | string[] | [] | Keywords to search on Pornhub (for example a performer name or a topic). Each query runs its own search and the matching videos are collected. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | The most videos to collect in total across all URLs and searches. Set to 0 for no limit (up to a safety ceiling of 100,000). |
sortBy | select | Most Relevant | Order for search and listing pages: Most Relevant, Most Recent, Most Viewed, Top Rated, or Longest. |
includeRelatedVideos | boolean | false | Also collect the related videos suggested on each video page, added as extra rows. Use the cap below to control how many. |
maxRelatedPerVideo | integer | 10 | When related videos is on, the most related videos to keep for each source video. Keeps your result count predictable. |
includeDownloadUrls | boolean | false | Include direct media links (streaming and download URLs) for each video. Useful for download workflows. |
Output
Every result is one flat row with recordType: "video". Here's a representative result with download links enabled:
{"recordType": "video","videoId": "1234567890","viewKey": "ph0000000000000","url": "https://www.pornhub.com/view_video.php?viewkey=ph0000000000000","embedUrl": "https://www.pornhub.com/embed/ph0000000000000","title": "Relaxing Full Body Massage Session","duration": 676,"durationFormatted": "11:16","views": 480121,"upVotes": 3120,"uploadDate": "2026-05-26","categories": ["Massage", "Amateur"],"tags": ["relaxing", "oil", "full body"],"pornstars": ["Jane Example"],"productionType": "homemade","channelName": "Example Studio","channelUrl": "https://www.pornhub.com/channels/example-studio","thumbnailUrl": "https://di.phncdn.com/videos/example/thumb.jpg","previewUrl": "https://dl.phncdn.com/videos/example/preview.webm","masterM3u8Url": "https://ev.phncdn.com/hls/videos/example/master.m3u8","bestM3u8Url": "https://ev.phncdn.com/hls/videos/example/index-v1-a1.m3u8","downloadUrls": [{ "quality": "1080", "format": "hls", "videoUrl": "https://ev.phncdn.com/hls/videos/example/index-1080.m3u8" },{ "quality": "720", "format": "hls", "videoUrl": "https://ev.phncdn.com/hls/videos/example/index-720.m3u8" }],"sourceUrl": "https://www.pornhub.com/video/search?search=massage","scrapedAt": "2026-06-10T14:30:00+00:00"}
Core Fields
| Field | Type | Description |
|---|---|---|
recordType | string | Always "video" |
videoId | string | Numeric video identifier |
viewKey | string | Pornhub viewkey token for the video |
url | string | Canonical video URL |
embedUrl | string | Embeddable player URL |
title | string | Video title |
sourceUrl | string | The input URL or search query that produced this row |
scrapedAt | string | ISO-8601 timestamp of when the row was collected |
Engagement & Timing
| Field | Type | Description |
|---|---|---|
duration | integer | Length in seconds |
durationFormatted | string | Length as H:MM:SS or M:SS |
views | integer | View count |
upVotes | integer | Number of up-votes |
uploadDate | string | ISO-8601 upload/publish date |
Taxonomy & Channel
| Field | Type | Description |
|---|---|---|
categories | string[] | Category labels |
tags | string[] | Tag labels |
pornstars | string[] | Listed performers |
productionType | string | professional or homemade when known |
channelName | string | Uploader / channel name |
channelUrl | string | Uploader / channel URL |
thumbnailUrl | string | Primary thumbnail URL |
previewUrl | string | Animated hover-preview clip URL (when available) |
Media Links
Populated only when includeDownloadUrls is on.
| Field | Type | Description |
|---|---|---|
masterM3u8Url | string | Master playlist URL covering all available stream qualities |
bestM3u8Url | string | Highest-quality stream URL |
downloadUrls | object[] | Stream and download links as { quality, format, videoUrl } |
Empty fields are stripped from each row, so a video with no listed performers simply omits pornstars rather than returning an empty value.
Tips for Best Results
- Start small to test. Set
maxResultsto 10โ20 on your first run to confirm the data matches your needs, then scale up. - Use a model or pornstar URL to pull a full catalog. A creator's
/videospage returns their entire back catalog, bounded only bymaxResultsโ the fastest way to snapshot everything one creator has published. - Pick the sort that matches your goal. Use Most Viewed or Top Rated for trend research, Most Recent to monitor new uploads, and Longest to surface full-length content.
- Fetch media links promptly. When
includeDownloadUrlsis on, the stream and download URLs are time-limited and tied to the network that requested them โ use them right after the run rather than saving them for later. - Keep related videos capped. Turning on
includeRelatedVideosadds extra rows per source video; leavemaxRelatedPerVideomodest (5โ10) so your total result count stays predictable. - Mix URLs and keywords in one run. Combine
startUrlsandsearchQueriesin a single invocation โ they share the globalmaxResultsbudget and land in the same dataset. - Set
maxResultsto 0 for everything. When you want a creator's or category's complete listing, use0(capped at a 100,000 safety ceiling) instead of guessing a number. - Plan very large pulls in batches. Results are collected page by page, so a single run gathers as many videos as fit within its time limit. For very large catalogs, raise the run's time limit in the run options, or split the work across several runs (for example by sorting or by separate searches) and merge the datasets afterward.
Pricing
From $4.00 per 1,000 results โ a flat per-result rate that undercuts comparable Pornhub data tools. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows the total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.48 | $0.45 | $0.43 | $0.40 |
| 1,000 | $4.80 | $4.50 | $4.30 | $4.00 |
| 10,000 | $48.00 | $45.00 | $43.00 | $40.00 |
| 100,000 | $480.00 | $450.00 | $430.00 | $400.00 |
A "result" is any video row in the output dataset, including related videos when that option is on. No compute or time-based charges โ you pay per result, plus a small fixed per-run start fee.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n โ Workflow automation
- Google Sheets โ Direct spreadsheet export
- Slack / Email โ Notifications on new results
- Webhooks โ Trigger custom APIs on run completion
- Apify API โ Full programmatic access
Legal & Ethical Use
This actor collects only publicly available video metadata and is intended for legitimate research, content cataloging, and analytics. It is for adults aged 18 or older. Users are responsible for complying with applicable laws, local regulations, and Pornhub's Terms of Service, and for using collected data only for their own lawful, compliant purposes. Do not use extracted data for spam, harassment, or any illegal purpose, and respect the rights and privacy of the people depicted.