Privacy-respecting meta search for adult video content.
Repository: https://github.com/apimgr/vidveil
| Feature | Description |
|---|---|
| Privacy First | No tracking, no logging, no analytics |
| 54+ Engines | Aggregates results from 54+ adult video sites |
| Bang Search | Use !ph, !xh, !rt to search specific sites |
| Fast APIs | Direct JSON API integration with PornHub, RedTube, Eporner |
| SSE Streaming | Real-time result streaming as engines respond |
| Thumbnail Proxy | All thumbnails proxied to prevent engine tracking |
| Autocomplete | Bang shortcuts autocomplete as you type |
| Tor Support | Built-in Tor hidden service support |
| Admin Panel | Full web-based administration |
| Single Binary | No external dependencies, embedded assets |
| Docker Ready | Alpine-based container with tini |
docker run -d \
--name vidveil \
-p 64580:80 \
-v ./rootfs/config:/config:z \
-v ./rootfs/data:/data:z \
ghcr.io/apimgr/vidveil:latestcurl -O https://raw.githubusercontent.com/apimgr/vidveil/main/docker/docker-compose.yml
docker compose up -dDownload the latest binary for your platform from Releases.
# Linux (amd64)
curl -LO https://github.com/apimgr/vidveil/releases/latest/download/vidveil-linux-amd64
chmod +x vidveil-linux-amd64
./vidveil-linux-amd64Use bang shortcuts to search specific engines:
| Bang | Engine | Example |
|---|---|---|
!ph |
PornHub | !ph amateur |
!xh |
xHamster | !xh milf |
!rt |
RedTube | !rt blonde |
!xv |
XVideos | !xv teen |
!ep |
Eporner | !ep hd |
!yp |
YouPorn | !yp pov |
Multiple bangs: !ph !rt amateur searches both PornHub and RedTube.
Full list: See /api/v1/bangs for all 54+ engine shortcuts.
Configuration file location (created on first run):
| Platform | Path |
|---|---|
| Linux (root) | /etc/apimgr/vidveil/server.yml |
| Linux (user) | ~/.config/apimgr/vidveil/server.yml |
| macOS | ~/Library/Application Support/apimgr/vidveil/server.yml |
| Windows | %AppData%\apimgr\vidveil\server.yml |
| Docker | /config/server.yml |
| Variable | Description | Default |
|---|---|---|
VIDVEIL_MODE |
production or development |
production |
VIDVEIL_PORT |
Listen port | 80 |
VIDVEIL_CONFIG |
Config directory | Platform-specific |
VIDVEIL_DATA |
Data directory | Platform-specific |
vidveil [options]
Options:
--help Show help
--version Show version
--status Show server status
--mode <mode> Set mode (production/development)
--port <port> Set listen port
--address <addr> Set listen address
--config <dir> Set config directory
--data <dir> Set data directory
--service <cmd> Service management (start/stop/restart/install/uninstall)
--maintenance <cmd> Maintenance (backup/restore)
--update [check|yes] Check for or perform updatesGET /api/v1/search?q={query}&page={page}&engines={engines}
Parameters:
q- Search query (supports bangs like!ph amateur)page- Page number (default: 1)engines- Comma-separated engine names (optional)
Response:
{
"success": true,
"data": {
"query": "!ph amateur",
"search_query": "amateur",
"has_bang": true,
"bang_engines": ["pornhub"],
"results": [...],
"engines_used": ["pornhub"],
"search_time_ms": 450
}
}GET /api/v1/search/stream?q={query}
Returns Server-Sent Events with results as each engine responds.
GET /api/v1/bangs
Returns all available bang shortcuts.
GET /api/v1/autocomplete?q={partial}
Returns bang suggestions for partial input (e.g., !po suggests PornHub, PornMD, etc.).
GET /api/v1/engines
GET /api/v1/engines/{name}
GET /healthz
GET /api/v1/healthz
| Endpoint | Description |
|---|---|
/openapi |
Swagger UI |
/openapi.json |
OpenAPI 3.0 spec (JSON only) |
/graphql |
GraphQL endpoint |
/graphiql |
GraphQL playground |
| Engine | Bang | Method |
|---|---|---|
| PornHub | !ph |
Webmasters API |
| RedTube | !rt |
Public API |
| Eporner | !ep |
v2 JSON API |
| XVideos | !xv |
HTML parsing |
| XNXX | !xn |
HTML parsing |
| xHamster | !xh |
JSON extraction |
| Engine | Bang |
|---|---|
| YouPorn | !yp |
| PornMD | !pmd |
| PornHat | !phat |
4Tube, Fux, PornTube, YouJizz, SunPorno, TXXX, Nuvid, TNAFlix, DrTuber, EMPFlix, HellPorno, AlphaPorno, PornFlip, ZenPorn, GotPorn, HDZog, XXXYMovies, LoveHomePorn, PornerBros, NonkTube, NubilesPorn, PornBox, PornTop, Pornotube, VPorn, PornHD, XBabe, PornOne, PornTrex, HQPorner, VJAV, FlyFLV, Tube8, XTube, AnyPorn, SuperPorn, TubeGalore, Motherless
Access at /admin (credentials shown on first run).
| Section | Description |
|---|---|
| Dashboard | Overview and statistics |
| Server | Server settings |
| Web | Branding, SEO, themes |
| Security | Rate limiting, headers |
| Database | SQLite management |
| SMTP configuration | |
| SSL | Let's Encrypt, certificates |
| Scheduler | Scheduled tasks |
| Engines | Enable/disable search engines |
| Logs | Access and error logs |
| Backup | Backup and restore |
A companion CLI client (vidveil-cli) is available for interacting with the server API from the terminal.
# Download latest release
curl -LO https://github.com/apimgr/vidveil/releases/latest/download/vidveil-cli-linux-amd64
chmod +x vidveil-cli-linux-amd64
sudo mv vidveil-cli-linux-amd64 /usr/local/bin/vidveil-cli# Connect to server (creates ~/.config/apimgr/vidveil/cli.yml)
vidveil-cli --server https://x.scour.li --token YOUR_API_TOKEN# Show help
vidveil-cli --help
# Search (launches interactive TUI)
vidveil-cli search "query"
# List engines
vidveil-cli engines
# View bangs
vidveil-cli bangsThe CLI automatically launches an interactive TUI (Terminal User Interface) with keyboard navigation, dark theme, and real-time updates.
- Go 1.23+
- Make
- Docker (optional)
make build # Build binary
make test # Run tests
make docker # Build Docker image
make release # Build all platforms| OS | Architecture |
|---|---|
| Linux | amd64, arm64 |
| macOS | amd64, arm64 |
| Windows | amd64, arm64 |
| FreeBSD | amd64, arm64 |
MIT License - see LICENSE.md
This software is provided for legal use only. Users are responsible for ensuring compliance with applicable laws and regulations in their jurisdiction.