Required

June 24, 2026 · View on GitHub



phub-cli

A terminal-based video browser inspired by ani-cli.
Browse, search, and stream directly from pornhub.com — no browser required.

Made with lust.


Showcase

phub-cli

Features

  • Browse categories using fzf
  • Search videos by keyword
  • Paginated results for large categories and searches
  • Instant streaming via mpv
  • Direct stream extraction using yt-dlp
  • Download videos in multiple qualities (1080p, 720p, 480p, 360p)
  • Open videos directly in your default browser
  • ani-cli–style navigation flow
  • Graceful handling of broken or unavailable videos
  • Built-in auto-updater to silently check for and install new releases
  • Clean terminal UI with interactive menus
  • No browser required for playback
  • No accounts, no tracking, no clutter

Table of Contents

Installation

From source (recommended)

git clone https://github.com/curtosis-org/phub-cli.git
cd phub-cli
chmod +x install.sh
sudo ./install.sh

After installation, run from anywhere:

phub-cli

Dependencies

phub-cli relies on external tools and system Python packages. You must install these before running the installer.

Required

  • bash
  • mpv
  • fzf
  • yt-dlp
  • jq : required for JSON parsing in stream and metadata handling
  • curl
  • python3
  • python3-bs4 (BeautifulSoup)
  • python3-requests (requests)
  • python3-curl-cffi : required for yt-dlp browser impersonation (fixes 403 errors)

Arch Linux

sudo pacman -S mpv fzf yt-dlp python python-beautifulsoup4
pip install curl_cffi --break-system-packages

Debian / Ubuntu

sudo apt install mpv fzf yt-dlp python3 python3-bs4
pip install curl_cffi --break-system-packages

Fedora

sudo dnf install mpv fzf yt-dlp python3 python3-beautifulsoup4
pip install curl_cffi --break-system-packages

macOS (Homebrew)

brew install mpv fzf yt-dlp python
pip3 install beautifulsoup4 curl_cffi

Usage

phub-cli

You will be presented with:

  • Browse categories

  • Search videos

  • Quit

Navigation is entirely keyboard-driven using fzf.

Tips

Optional toggles:

# Enable blinking title on the home screen
PHUBCLI_BLINK=1 phub-cli

# Disable the custom fzf theme
PHUBCLI_FZF_THEME=0 phub-cli

Fixing errors

If a video fails to play:

  • It may be geo-blocked
  • It may be removed
  • It may require cookies/login

phub-cli will:

  • detect fast failures
  • return you to the selection menu

allow retry or navigation without crashing

Ensure your dependencies are up to date:

yt-dlp -U
pip install -U curl_cffi --break-system-packages

Technical Notes

  • Uses yt-dlp to resolve stream URLs before playback
  • mpv is used only as a player, not as a scraper
  • Input is explicitly read from /dev/tty to avoid fzf / mpv stdin conflicts
  • No PhantomJS dependency
  • No virtualenv required
  • No downloads unless you modify the scripts yourself

Supported Platforms

Tier 1 (tested)

  • Linux (Arch, Debian, Fedora)
  • macOS

Tier 2 (may work)

  • WSL
  • Termux (manual setup)

Windows, iOS, and consoles are not officially supported.

Disclaimer

This project does not host, store, or distribute any media. It only provides a terminal interface to publicly accessible content.

Use responsibly and in accordance with your local laws.

Inspired by ani-cli. Built for terminals. Powered by curiosity and lust.

Star History

Star History Chart