Skip to main content

Eporner API

An asynchronous Python API wrapper and scraper for eporner.com

Downloads CodeQL Analysis API Tests

Disclaimer

[!IMPORTANT] This is an unofficial and unaffiliated project. Please read the full disclaimer before use: DISCLAIMER.md

By using this project you agree to comply with the target site's rules, copyright/licensing requirements, and applicable laws. Do not use it to bypass access controls or scrape at disruptive rates.


Features

Category Details
Video Fetching Fetch video objects with full metadata (title, views, quality, publish date, authors, available qualities)
Video Downloading RAW/direct-based downloading with quality selection and fallback mechanisms
Pornstar Profiles Fetch pornstar/model profiles including total video count and their uploaded videos
Video Search Search videos with advanced filters for low quality mode, Gay/Straight, sorting order, and pagination
Category Search Browse and fetch videos under specific site categories
Async-First Fully asynchronous (async / await) built on top of asyncio
Built-in Caching Automatic response caching with configurable limits to reduce redundant network requests
CLI Support Command-line interface for quick downloads — run eporner_api -h for options
Type Safety Comprehensive type hinting and dataclass-based models throughout

Networking Features

The networking layer is provided by the eaf_base_api package and is fully configurable through RuntimeConfig:

Feature Description
HTTP/1.1, HTTP/2, HTTP/3 Configurable HTTP version (v1, v2, v3 — defaults to HTTP/3)
Browser Impersonation Built-in browser fingerprint impersonation via curl_cffi (defaults to Chrome)
Custom JA3 Fingerprint Override the TLS fingerprint with a custom JA3 string for advanced use cases
Proxy Support All proxy types supported (HTTP, HTTPS, SOCKS4, SOCKS5)
Proxy Authentication Username/password authentication for proxies
Bandwidth Limiting Set a maximum download speed in MB/s (e.g., 2.0, 3.5)
DNS over HTTPS Route DNS queries over HTTPS for privacy and bypassing DNS-level blocks
SSL Verification Toggle SSL certificate verification on or off
Request Delay Configurable delay between requests to respect rate limits
Concurrency Control Tune video and page concurrency independently for optimal throughput

Supported Platforms

This API has been tested and confirmed working on:

  • Windows 11 (x64)
  • macOS Sequoia (x86_64)
  • Linux (Arch) (x86_64)
  • Android 16 (aarch64)

Installation

[!WARNING] The installation from Git is temporary. The package will be migrated to PyPI within the next week.

pip install git+https://github.com/EchterAlsFake/unofficial-api-for-eporner git+https://github.com/EchterAlsFake/eaf_base_api

Quickstart

Have a look at the Documentation for more details

[!NOTE] Eporner API can also be used from the command line. Do: eporner_api -h to see the options

import asyncio
from eporner_api import Client, DownloadConfigRAW

async def main():
    # Initialize a Client object
    client = Client()
    
    # Fetch a video
    video_object = await client.get_video("<insert_url_here>")
    
    # Information from Video objects
    print(video_object.title)

    # Download the video
    config = DownloadConfigRAW(quality="best", path="./") # More options in the documentation
    await video_object.download(config, mode="best")

if __name__ == "__main__":
    asyncio.run(main())

Changelog

See Changelog for more details.


Support the Project ❤️

I develop all my projects entirely for free because I enjoy it and want to keep them accessible. If you find my work useful, please consider supporting me with a small donation — even 1 € makes a big difference and keeps me motivated!

☕ Ko-fi

https://ko-fi.com/EchterAlsFake

💳 PayPal

https://paypal.me/EchterAlsFake

🪙 Crypto (350+ currencies supported)

Crypto donation button by NOWPayments

Contribution

Do you see any issues or having some feature requests? Simply open an Issue or talk in the discussions.

Pull requests are also welcome.

License

Licensed under the LGPLv3 License
Copyright (C) 2023–2026 Johannes Habel

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unofficial_api_for_eporner-2.3.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

unofficial_api_for_eporner-2.3-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file unofficial_api_for_eporner-2.3.tar.gz.

File metadata

  • Download URL: unofficial_api_for_eporner-2.3.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for unofficial_api_for_eporner-2.3.tar.gz
Algorithm Hash digest
SHA256 0e063a309793c1df8f3b8e2fa3c5d6811d571177756e78807de1da910e42008c
MD5 114d1697068c6b5e01a4acaa48b425ed
BLAKE2b-256 18527e69b1149c3d317df69ba3ea81e92a04ae5f427b9ebeda1e45eca28506e1

See more details on using hashes here.

File details

Details for the file unofficial_api_for_eporner-2.3-py3-none-any.whl.

File metadata

  • Download URL: unofficial_api_for_eporner-2.3-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for unofficial_api_for_eporner-2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a420c25e2001f4b4bb43ab44efb238191b7b5bc98c2185d6e833d51ef4c171e7
MD5 65d7462adfa729f5ccfe43a29f706e31
BLAKE2b-256 e78bbc63b6b1a5a45921516382062b7344d58b5f5ec6dd3b6d05bd60882df78e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.3

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page