Profile
Back to NewsBack
GitHub Trending 8 min
Reader Mode
EchterAlsFake/Porn_Fetch: Cross-Platform Porn (Hub) downloader with Account Login and Searching support

EchterAlsFake/Porn_Fetch: Cross-Platform Porn (Hub) downloader with Account Login and Searching support

14 hours ago

This project is currently not in a functional state. Please wait a few more days, I am actively working on it 🙏

PS: I am writing an exam on Monday, Tuesday and Wednesday. Life ain't easy rn.

[!CAUTION]
This README describes the current 3.9 source code and the planned first beta.
The downloadable 3.8 release is an older GPL release. Its app, license,
screenshots, install process, and supported platforms may be different. If
you need information about 3.8, use the documentation from its release tag.
I'm actively working on this rewrite. Some features and builds can still fail;
please report problems with the commit ID or beta version you used.

The 3.9 rewrite

This branch is where I am building the next version of Porn Fetch. It has a PySide6 desktop app, a Qt-free CLI, and a different licensing system from 3.8. The first beta is for finding problems, and I will keep working on them as quickly as I can. See the development status and the installation guide before trying it.

About the License

The 3.9 source is under the Porn Fetch Source-Available License 1.0. Earlier GPL releases keep their GPL rights. The source license and a premium feature credential are separate things.

The 3.9 client now requires a signed license on the commercial policy. It includes one calendar year of updates from first activation and permanent use of builds released within that entitlement, on up to ten installations. First activation requires a connection; subsequent offline use is limited to seven days after successful validation. Older beta credentials are rejected explicitly.

Payment deployment is still sandboxed as of 6 October 2026; Patreon is disabled. Do not assume this client change enables real payments. See the licensing architecture and release requirements.

#FreeHongKong

[!WARNING]
Porn Fetch is NOT associated with the websites. Porn Fetch is AGAINST the Terms of Services of EVERY website! Usage is on YOUR risk.
[!IMPORTANT]
Porn Fetch may get flagged by your antivirus software. See HERE for an explanation why this is.
If your antivirus flags a beta build, check the download source and report the
detection before making changes to your security settings.

🚀 Quick Links

🌟 Features

  • Cross-platform
  • Downloading Videos
  • Downloading Playlists
  • Downloading whole model / channel accounts
  • Multithreaded downloading
  • Automatic resuming
  • Installer updates for desktop builds and signed self-updates for standalone CLI builds
  • Custom template for filenames based on video metadata
  • Dark mode and CLI support
  • No ads or mandatory logins
  • Multiple supported websites
  • modern looking user interface
  • Proxy support
  • Model Batch download with database updating (CLI only)
  • A lot of available settings
  • In-App speed limit
  • Automatic file tagging (metadata)
  • Automatic conversion from MPEG-TS to mp4 (within seconds)
  • Build scripts for supported desktop and CLI targets
  • Independent Open-Source Server
  • Source-available application, made with ❤️ in 🇩🇪

📦 Installation & Building from Source

There are three ways to get Porn Fetch running:

  1. Pre-built Binaries & Installers (fastest)
  2. One-Liner Install Scripts (automatic build)
  3. Building from Source (recommended for development)
[!TIP]
For the complete multi-platform guide with system package instructions and troubleshooting, see the Installation & Build Guide.

1. Pre-built Binaries & Installers

Grab the latest release for your platform from GitHub Releases:
  • Qt Installer Framework (*_Setup installers):
Installs the desktop application and configures the Qt maintenancetool for repository-based in-app updates. - Windows: PornFetch_windows_GUI_x64_Setup.exe - Linux: PornFetch_linux_GUI_x64_Setup.run (run chmod +x before launching) - macOS: PornFetch_macos_GUI_Universal_Setup.dmg
  • Standalone Portable Bundles (.zip / .dmg):
Extract the ZIP to any folder. Make sure the bundled pocketbase (or pocketbase.exe) stays right next to the app binary—Porn Fetch needs it for download tracking and queue management.
  • Standalone Headless CLI:
Single portable binary (PornFetch_linux_CLI_x64, PornFetch_windows_CLI_x64.exe, etc.) with built-in cryptographically verified self-updating:
./PornFetch_linux_CLI_x64 self-update --check
  ./PornFetch_linux_CLI_x64 self-update

2. One-Liner Install Scripts

To automatically install dependencies, clone, and build the latest code on your machine:
  • Linux & macOS:
curl -sSL https://raw.githubusercontent.com/EchterAlsFake/Porn_Fetch/master/scripts/install.sh | bash
  • Windows (PowerShell as Administrator):
irm https://raw.githubusercontent.com/EchterAlsFake/Porn_Fetch/master/scripts/install_windows.ps1 | iex

3. Building & Running from Source

The source tree targets Python 3.14 and uses uv for dependency management.
# 1. Clone the repository
git clone https://github.com/EchterAlsFake/Porn_Fetch.git
cd Porn_Fetch

2. Sync dependencies (uv automatically provisions Python 3.14)

uv sync --extra gui --group dev

3. Fetch PocketBase (required for database and queue persistence)

uv run python scripts/fetch_pocketbase.py

4. Patch QtAsyncio (required for the GUI under Python 3.14)

uv run python scripts/patch_qtasyncio.py .venv

5. Launch the application!

uv run main.py # Desktop GUI uv run Porn_Fetch_CLI.py # Headless CLI
Headless / Termux note: If you only need the CLI (e.g. on headless servers or in Android Termux), you don't need any Qt dependencies or the QtAsyncio patch. Just run uv sync (or pip install -e . on Termux) and execute uv run Porn_Fetch_CLI.py.

4. Compiling Standalone Binaries from Source

To produce distributable single binaries yourself:
  • CLI binary:
uv run pyinstaller --clean packaging/pyinstaller_cli.spec
  • GUI executable:
uv run pyside6-deploy -c packaging/pysidedeploy_linux.spec    # Linux
  uv run pyside6-deploy -c packaging/pysidedeploy_windows.spec  # Windows
  uv run pyside6-deploy -c packaging/pysidedeploy_macos.spec    # macOS

Premium license

A valid entitlement enables these features:

  • 1080+ downloads
  • parallel downloads
In the GUI, use Purchase / renew license, then paste the signed key or use Import License File. In the CLI, choose License Management and enter the key, JSON envelope, or file path. Only commercial-policy test credentials work with the current client; old beta credentials are not upgraded automatically. See the installation guide.

General Information

[!NOTE]
Targets in the current build workflow. A target in the workflow does not
mean its first beta artifact has passed manual testing.

| Platform | App | Architectures | |----------------------------|------------------|-------------------------------------------------| | Windows | GUI | x64 | | Windows | CLI | x64, ARM64 | | Linux (X11 / Wayland) | GUI | x64, ARM64 | | Linux (X11 / Wayland) | CLI | x64, ARM64 | | macOS | GUI | x86_64, ARM64 (Universal build) | | Android | CLI from source | Termux; no beta APK in the desktop build workflow |

Linux 32-bit (x32 artifact) and riscv64 CLI builds are available as experimental workflow-dispatch targets. They use native target toolchains and must pass a CI build and smoke test before their artifacts are published. Linux s390x and ppc64le CLI builds are paused because curl-cffi does not support those architectures. Windows ARM64 GUI and Windows x86 CLI builds are paused after build and runtime failures in pipeline #43.

[!NOTE]
Porn Fetch is mainly developed and tested on Arch Linux with Hyprland and Gnome.
[!NOTE]
Older Android and iOS information is in the project history. I have not
included mobile GUI artifacts in the current desktop build workflow.

🌐 Supported Websites

[!IMPORTANT]
Not all websites support every feature.
Some providers support only direct videos while others also support profiles or collections. Search is intentionally not available.

You can find more information HERE

For Developers

If you want to develop on Porn Fetch and do local changes, contribute code or do whatever, please have a look at the internal code documentation which explains the core structure of the project, as well as the different concepts used here.

See: https://github.com/EchterAlsFake/Porn_Fetch/blob/master/docs/FOR_DEVELOPERS.md

🌍 Translating

[!CAUTION]
Translations are still being brought up to date for 3.9. Please check with me
before starting a large translation update.

Currently available in:


To contribute a translation, follow this guide.

If a language is marked with a * it means, you can contribute something, and it needs an update!

👏 Credits

  • API: PHUB
  • GUI: Qt for Python
  • Media processing: PyAV / FFmpeg (license depends on the bundled FFmpeg build; see third-party notices)

See Credits and third-party notices

📚 License

Current development snapshots marked with the Porn Fetch Source-Available License 1.0 use that license for application-owned material. Earlier GPL-3.0-or-later copies retain their GPL rights; the historical license text is in LICENSES. Third-party components retain their own terms. See the licensing guide.
Copyright (C) 2023–2026 Johannes Habel

Sponsoring / Donations

The payment deployment remains in sandbox mode as of 6 October 2026. The donation links below are separate and optional; they are not needed to use the beta.

However, I kindly ask every one of you to donate a small amount of money. If you have Monero (crypto) or PayPal, you can donate me here:

  • Paypal: https://paypal.me/EchterAlsFake (Prefered)
  • Monero: 42XwGZYbSxpMvhn9eeP4DwMwZV91tQgAm3UQr6Zwb2wzBf5HcuZCHrsVxa4aV2jhP4gLHsWWELxSoNjfnkt4rMfDDwXy9jR
  • Ko-Fi : https://ko-fi.com/EchterAlsFake
Even if it's just 10 cents, for me, it matters, because I do not work yet and it means a lot to me :)
Chat with me