https://github.com/curtosis-org/phub-cli
Terminal-based PornHub browser inspired by ani-cli. Browse categories, search videos, and stream instantly in mpv without opening a browser.
https://github.com/curtosis-org/phub-cli
bash cli fzf linux mpv phub phub-cli phub-tui pornhub pornhub-cli scraper streaming terminal tui yt-dlp
Last synced: 2 months ago
JSON representation
Terminal-based PornHub browser inspired by ani-cli. Browse categories, search videos, and stream instantly in mpv without opening a browser.
- Host: GitHub
- URL: https://github.com/curtosis-org/phub-cli
- Owner: curtosis-org
- License: gpl-3.0
- Created: 2026-01-18T19:11:50.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-01-25T19:03:29.000Z (2 months ago)
- Last Synced: 2026-01-26T03:10:31.931Z (2 months ago)
- Topics: bash, cli, fzf, linux, mpv, phub, phub-cli, phub-tui, pornhub, pornhub-cli, scraper, streaming, terminal, tui, yt-dlp
- Language: Shell
- Homepage:
- Size: 48.8 KB
- Stars: 51
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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
```bash
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
- Clean terminal UI with interactive menus
- No browser required for playback
- No accounts, no tracking, no clutter
---
## Table of Contents
- [Installation](#installation)
- [Dependencies](#dependencies)
- [Usage](#usage)
- [Tips](#tips)
- [Fixing errors](#fixing-errors)
- [Technical Notes](#technical-notes)
- [Disclaimer](#disclaimer)
## Installation
From source (recommended)
```bash
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:
```bash
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
- jq
- python3
- python3-bs4 (BeautifulSoup)
- python3-requests (requests)
### Arch Linux
```bash
sudo pacman -S mpv fzf yt-dlp python python-beautifulsoup4
```
### Debian / Ubuntu
```bash
sudo apt install mpv fzf yt-dlp python3 python3-bs4
```
### Fedora
```bash
sudo dnf install mpv fzf yt-dlp python3 python3-beautifulsoup4
```
### macOS (Homebrew)
```bash
brew install mpv fzf yt-dlp python
pip3 install beautifulsoup4
```
## Usage
```bash
phub-cli
```
You will be presented with:
- Browse categories
- Search videos
- Quit
Navigation is entirely keyboard-driven using fzf.
## Tips
Optional toggles:
```bash
# 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:
```bash
yt-dlp -U
```
## 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.**