Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sskender/pornhub-api
Unofficial API for PornHub.com in Python
https://github.com/sskender/pornhub-api
api beautifulsoup beautifulsoup4 parser pip pip3 porn porn-download porn-website pornhub pornhub-api pornhub-downloader pornhubapi porno pornography proxy python
Last synced: 5 days ago
JSON representation
Unofficial API for PornHub.com in Python
- Host: GitHub
- URL: https://github.com/sskender/pornhub-api
- Owner: sskender
- License: mit
- Created: 2016-12-27T16:42:52.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-12-30T00:34:32.000Z (12 months ago)
- Last Synced: 2024-12-10T20:09:45.547Z (12 days ago)
- Topics: api, beautifulsoup, beautifulsoup4, parser, pip, pip3, porn, porn-download, porn-website, pornhub, pornhub-api, pornhub-downloader, pornhubapi, porno, pornography, proxy, python
- Language: Python
- Homepage:
- Size: 39.1 KB
- Stars: 400
- Watchers: 32
- Forks: 90
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PornHub Unofficial API
Unofficial API for pornhub.com in Python
### *Pull requests are welcome!!!*
I find it quite difficult to make time for an active development on this project, so I will be more than happy to merge your pull requests. Thank you all for supporting this project!
## Install
```bash
pip3 install pornhubapi
```## How to use
#### Create client
```python
import pornhub
client = pornhub.PornHub()
```#### Create client with proxy
```python
import pornhub
# With proxy, given a Proxy IP and Port. For the countries with restricted access like Turkey, etc.
client = pornhub.PornHub("5.135.164.72", 3128)
```#### Grab stars
The request can be sorted by: `view`, `trend`, `subs`, `alpha`, `videos`, `random`
```python
for star in client.getStars(10, sort_by="view"):
print(star)
print(star["name"])
```#### Create client with search keywords
```python
keywords = ["word1", "word2"]
client = pornhub.PornHub(keywords)# if using a proxy
client = pornhub.PornHub(keywords, "5.135.164.72", 3128)
# or
client = pornhub.PornHub(ProxyIP="5.135.164.72", ProxyPort=3128, keywords=["word1", "word2"])for video in client.getVideos(10, page=2):
print(video)
print(video["url"])
```#### Sort Video by parameter
When keywords are set: `view`, `rate`, `long`, `recent`
```python
keywords = ["word1", "word2"]
client = pornhub.PornHub(keywords)for video in client.getVideos(10, page=2, sort_by="long"):
print(video)
print(video["url"])
```When keywords are not set: `view`, `rate`, `long`, `new`, `hot`
```python
client = pornhub.PornHub()for video in client.getVideos(10, page=2, sort_by="hot"):
print(video)
print(video["url"])
```#### Take full information about all videos
Parameter `full_data` allows you to get complete information about the video, but its much more slower due to every page needs to be opened```python
keywords = ["word1", "word2"]
client = pornhub.PornHub(keywords)for video in client.getVideos(10, page=2, full_data=True):
print(video)
print(video["upload_date"])
```#### Get more information about the single video
Method `getVideo(url, viewkey)` gives more detail information about a single video
```python
client = pornhub.PornHub()# You can input the full video url, like that
video = client.getVideo("https://www.pornhub.com/view_video.php?viewkey=SOMEKEY")
# Or that
video = client.getVideo(url="https://www.pornhub.com/view_video.php?viewkey=SOMEKEY")
# Or input only viewkey, like that
video = client.getVideo(viewkey="SOMEKEY")print(video)
print(video["title"])
```The method return a dictionary with keywords:
1. `title` (type: string) - Video title
2. `views` (type: string) - Rounded number of views, for example "2M"
3. `accurate_views` (type: integer) - Full number of views, for example "123456789". When video don't have many views `views`=`accurate_views`
4. `rating` (type: integer) - Video rating in percent
5. `duration` (type: string) - Video duration in format "hh:mm:ss"
6. `loaded` (type: string) - When the video was uploaded, for example "2 months ago"
7. `upload_date` (type: string) - Video upload date in format "yyyy-mm-dd"
8. `likes` (type: string) - Similar like `views`
9. `accurate_likes` (type: integer) - Similar like `accurate_views`
10. `dislikes` (type: string) - Similar like `views`
11. `accurate_dislikes` (type: integer) - Similar like `accurate_views`
12. `favorite` (type: string) - How many times added to favorites, rounded. For example "2K"
13. `author` (type: string) - Video author (channel)
14. `pornstars` (type: list) - Video stars
15. `categories` (type: list) - Video categories
16. `tags` (type: list) - Video tags
17. `production` (type: string) - Video production (Professional or Homemade)
19. `url` (type: string) - URL to Video
18. `img_url` (type: string) - URL to Preview Image of Video
19. `embed_url` (type: string) - URL to Video PlayerIf the video is not available in your country, in `title` will **"Video not available in your country"**, in others keys will `None`
## Contributors
SashaSZ
Ibrahim Ipek
Kittinan
Елизаров Роман Русланович
IThinkImOKAY
## License
MIT license