pornhub-api icon indicating copy to clipboard operation
pornhub-api copied to clipboard

pornhub Unofficial api

=============================== Unofficial api for pornhub.com

.. image:: https://travis-ci.org/derfirm/pornhub-api.svg?branch=master :target: https://travis-ci.org/derfirm/pornhub-api

.. image:: https://api.codacy.com/project/badge/Grade/72b5baaa2a7d438cbe725924954a62b2 :target: https://www.codacy.com/manual/Derfirm/pornhub-api

.. image:: https://img.shields.io/pypi/v/pornhub-api.svg :target: https://pypi.python.org/pypi/pornhub-api

Key Features


  • response are fully-annotated with pydantic_
  • rest without parsing

.. _pydantic: https://pydantic-docs.helpmanual.io/

Installing


.. code:: bash

$ pip install pornhub-api

or with aiohttp support

.. code:: bash

$ pip install pornhub-api[aiohttp_backend]

Supported versions


  • Python 3.7+

Getting started

Initiate Api client


.. code-block:: python

from pornhub_api import PornhubApi

api = PornhubApi()

Initiate with AioHttp backend


.. code-block:: python

import asyncio
from pornhub_api.backends.aiohttp import AioHttpBackend


async def execute():
    backend = AioHttpBackend()
    api = PornhubApi(backend=backend)
    response = await api.video.get_by_id("ph560b93077ddae")
    print(response.video.title)

    await backend.close()

asyncio.run(execute())

Search Videos


.. code-block:: python

data = api.search.search(
    "chechick",
    ordering="mostviewed",
    period="weekly",
    tags=["black"],
)
for vid in data.videos:
    print(vid.title, vid.video_id)

Get Stars


.. code-block:: python

api.stars.all()
or
api.stats.all_detailed()

Get single Video details


.. code-block:: python

video = api.video.get_by_id("ph560b93077ddae").video print(video.title)

Get all videos tags or categories


.. code-block:: python

categories = api.video.categories() tags = api.video.tags("a")

Check Video availability


.. code-block:: python

response = api.video.is_active("ph560b93077ddae") print(response.active.is_active)

Search video by random tag and category


.. code-block:: python

import random
api = PornhubApi()

tags = random.sample(api.video.tags("f").tags, 5)
category = random.choice(api.video.categories().categories)
result = api.search.search(ordering="mostviewed", tags=tags, category=category)

print(result.size())
for vid in result.videos:
    print(vid.title, vid.url)