Pornhub Downloader
Pricing
$4.45 / 1,000 scraped videos
Pornhub Downloader
Download public Pornhub video data from video URLs, listing URLs, or search terms. Export metadata, engagement, tags, channel details, thumbnails, and source-visible HLS links.
Pricing
$4.45 / 1,000 scraped videos
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🎬 Pornhub downloader for public video data
Pornhub Downloader collects public Pornhub video data from direct video URLs, listing URLs, search pages, or plain search terms. Use this Pornhub downloader when you need repeatable exports for content review, research, cataloging, moderation support, media operations, or an API workflow.
For a quick first run, add one Pornhub video URL or search term, keep Maximum discovery videos at 25, and start the Actor. The run saves one row per accepted public video with the source view key, title, description, duration, upload date, thumbnail, engagement, tags, categories, performers, channel details, discovery context, and source-visible media links when Pornhub exposes them.
✅ What this Actor does
- Accepts public Pornhub video URLs.
- Accepts Pornhub listing URLs and search result pages.
- Accepts plain search terms and discovers matching public videos.
- Lets you filter discovered videos by production type and duration.
- Saves one dataset row per accepted public video.
- Returns video metadata, engagement, taxonomy, channel details, thumbnails, and media variants when available.
- Pushes accepted rows during the run so you can inspect early results before a larger job finishes.
- Skips duplicate or unsupported targets instead of filling your export with failure rows.
This Actor is built for public Pornhub pages. It does not use a Pornhub account, cookies, Premium access, private content, or a browser extension.
📦 Data you can export
Each saved video can include:
viewKey- Pornhub's source-native video identifier.title,description,durationSeconds,uploadDate, andthumbnailUrl.engagement.views,engagement.upvotes,engagement.downvotes,engagement.likePercent, andengagement.favorites.taxonomy.categories,taxonomy.tags,taxonomy.performers, andtaxonomy.production.channel.name,channel.url,channel.videoCount, andchannel.subscriberCount.media.masterPlaylistUrlandmedia.variantswith quality, dimensions, content type, and media URL when the source exposes playable links.discoverycontext, including the search term, listing or search URL, and result rank when the video came from discovery.
You can open the dataset in Apify, export it as JSON, CSV, Excel, XML, RSS, or HTML, call it from the Apify API, schedule recurring runs, or connect the results to webhooks and integrations.
🚀 How to run
- Add one target per row in Pornhub targets.
- Use direct video URLs when you already know the exact videos.
- Use listing URLs, search URLs, or plain search terms when you want discovery.
- Set Maximum discovery videos to cap search and listing output.
- Choose optional production and duration filters for discovery targets.
- Start the Actor and open the dataset.
Example targets:
https://www.pornhub.com/view_video.php?viewkey=ph5f1b2c3d4e5f6https://www.pornhub.com/video/search?search=exampleexample search term
🔧 Input options
| Field | What to enter |
|---|---|
targets | One Pornhub video URL, listing URL, search URL, or plain search term per row. |
maxItems | Maximum videos to collect from search terms and listing URLs. Default is 25; maximum is 5000. |
production | Discovery filter for all videos, professional videos, or homemade videos. |
minDuration | Optional minimum duration filter for discovery targets. |
maxDuration | Optional maximum duration filter for discovery targets. |
Direct video URLs are resolved as individual videos. Discovery targets use Maximum discovery videos so run size and spend stay predictable.
📤 Output example
{"viewKey": "ph5f1b2c3d4e5f6","title": "Example video title","description": "Source video description when available.","durationSeconds": 742,"uploadDate": "2026-06-01","thumbnailUrl": "https://ei.phncdn.com/videos/202606/01/123456/original/(m=eaAaGwObaaaa)(mh=example).jpg","engagement": {"views": 1234567,"upvotes": 12345,"downvotes": 321,"likePercent": 97,"favorites": 4567},"taxonomy": {"categories": ["Category"],"tags": ["tag"],"performers": ["Performer Name"],"production": "professional"},"channel": {"name": "Channel Name","url": "https://www.pornhub.com/channels/channel-name","videoCount": 120,"subscriberCount": 456789},"media": {"masterPlaylistUrl": "https://example.com/master.m3u8","variants": [{"quality": "720p","width": 1280,"height": 720,"contentType": "application/vnd.apple.mpegurl","mediaUrl": "https://example.com/720p.m3u8"}]},"discovery": {"query": "example search term","listingUrl": "https://www.pornhub.com/video/search?search=example+search+term","rank": 1}}
💳 Pricing
This Actor uses pay-per-event pricing. You are charged $0.00445 for each accepted public video saved by the Actor, which is $4.45 per 1,000 accepted videos.
Targets that do not produce an accepted video, such as invalid, duplicate, unsupported, unavailable, or no-result targets, do not create scraped-video events. Use Maximum discovery videos to keep test runs small and cap larger discovery jobs.
⚠️ Limits and caveats
The Actor works with public Pornhub pages and the data Pornhub exposes for those pages at run time. Some videos may have missing descriptions, engagement counts, channel facts, taxonomy values, thumbnails, or media variants. In those cases, the Actor saves the available data and leaves unavailable values empty.
Source-visible media URLs can depend on Pornhub availability and playback rules after your run. If a downstream tool needs fresh links, rerun the Actor for the same target.
Discovery targets stop when the Actor reaches Maximum discovery videos or when Pornhub stops returning matching public videos for the submitted listing, search page, or search term.
❓ FAQ
Can I use search terms instead of Pornhub URLs?
Yes. Add one plain search term per row in Pornhub targets. The Actor converts it into Pornhub search discovery and saves matching public videos up to Maximum discovery videos.
Does this Actor download hosted video files?
No. It exports public video metadata and source-visible media links. It does not copy files into Apify storage or create ZIP archives.
Does it need cookies, login, or a Pornhub account?
No. The normal workflow is for public pages and does not require Pornhub cookies, login, a browser extension, or a source API key.
Why did a target return no videos?
The target may be invalid, unsupported, duplicated, unavailable, restricted, temporarily empty, or not exposing accepted public videos during the run. The Actor continues with the next target and keeps the dataset focused on successful video results.
📝 Changelog
- 0.1: Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Other actors
- RedGifs Bulk Downloader ↗ - Download RedGifs video links, metadata, tags, thumbnails, and optional hosted files.
- AShemaleTube Downloader ↗ - Extract public AShemaleTube HLS links, titles, durations, thumbnails, and tags.
- OnlyFans Downloader ↗ - Export media URLs and post context from OnlyFans content you can access.
- Facebook Media Downloader ↗ - Download public Facebook video and reel links with captions, thumbnails, and engagement counts.
- Instagram Downloader API ↗ - Extract public Instagram media URLs, captions, thumbnails, and engagement counts.
Made with ❤️ by Maxime Dupré