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.