No Docker, no CLI — one-line install for Win/Mac, full GUI JAV metadata manager out of the box.
6-source unified search · Actress favorites & alias management · Interactive collection browser · Jellyfin integration · AI API to manage your library with a single prompt
Open-source desktop GUI for JAV metadata — one-line install, 6 scrape sources, actress favorites + alias system, Jellyfin/Emby ready, AI-operable REST API.
English | 繁體中文
The core workflow spans three pages: 🔍 Search video info → 📋 Scan & build library → 🎬 Browse collection
100% local — no data collection, no uploads. Network requests are only used to scrape publicly available metadata.
✨ Highlights: Search 6 sources at once · Actress favorites with auto profile + alias expansion · One-click NFO & cover fill from the web · AI-operable library in natural language · Jellyfin / Emby cover auto-generation · 2400+ automated tests
| Search | Actress Collection |
|---|---|
![]() |
![]() |
macOS:
curl -fsSL https://raw.githubusercontent.com/slive777/OpenAver/main/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/slive777/OpenAver/main/install.ps1 | iexThe script automatically:
- Detects your system architecture and downloads the latest release
- Clears platform security restrictions (macOS quarantine / Windows Mark of the Web)
- Creates a desktop shortcut (Windows)
- Preserves your settings and logs on upgrade
Download from GitHub Releases:
| Platform | File |
|---|---|
| Windows x64 | OpenAver-vX.X.X-Windows-x64.zip |
| macOS arm64 | OpenAver-vX.X.X-macOS-arm64.zip |
⚠️ Manual ZIP install requires extra steps to clear security restrictions — see the Troubleshooting document included in the ZIP. ℹ️ macOS builds target Apple Silicon (M1/M2/M3/M4) only.
On first launch, a built-in setup wizard walks you through folder configuration and basic settings — no docs required.
- Multi-Source Aggregation: One query simultaneously searches JavBus, Jav321, JavDB, DMM, D2Pass, and HEYZO — all sources at once.
- Detail View: Cover, stills, actress, tags — all in one place, no tab-hopping.
- Smart Search: Search by ID, actress name, series, or maker — results are matched against your local library and marked if already in your collection.
- Actress Features: Searching a favorited actress automatically shows her profile card; results can be added to your collection directly.
- Version Detection: Automatically identifies UC/LEAK/4K variants — no manual renaming needed.
- Local Batch Search: Drag in video files or folders — automatically extracts IDs and batch-searches for metadata, covers, and stills.
- Video Mode: Cover wall grid + detail Lightbox + search/filter/sort + stills browser — a full interactive collection viewer.
- Actress Mode: Favorited actress grid + profile Lightbox + sort by cup size / age / height — one-click refresh to pull updated data.
- Visual Design: GSAP animations + Fluent Design frosted-glass effects + Dark Mode, with SSR real-time rendering.
- Scan & Build Library: Scan local video folders, build a SQLite metadata database, automatically reads existing NFO files and covers.
- NFO & Cover Completion: Detects missing NFO fields or files and fills them in from the web with one click.
- Actress Alias Management: Add and edit aliases — searches automatically expand to all known names.
- Subtitle Detection: Automatically detects and moves subtitle files when organizing videos.
Translate Japanese titles into your UI locale (Traditional Chinese, Simplified Chinese, English) in one click — Japanese locale skips translation since titles are already in Japanese.
- Supports Ollama (local GPU, free & unlimited), Gemini Flash (Google cloud, free tier available), and OpenAI API Compatible (OpenRouter, any compatible endpoint).
- Multi-Language UI: Traditional Chinese, Simplified Chinese, Japanese, English — instant switch.
- Path & Naming Rules: Flexible output path configuration with
{suffix}variable support. - Favorites Folders: Save frequently used folders for one-click batch loading.
- Jellyfin Image Mode: Auto-generates
posterandfanartin the format Jellyfin / Emby expects. - Static HTML Export: Generates a standalone HTML index file — viewable offline without a server.
OpenAver ships a capabilities manifest — your AI agent reads it once and knows every endpoint. It doesn't just look things up; it chains multiple steps to handle the tedious work you'd never bother doing by hand.
One sentence, full automated workflow:
- "Add my top 20 actresses by video count to favorites, skip ones already saved." SQL stats → dedup check → batch favorite → download photos
- "橋本ありな and 新ありな are the same person and she's retired — tag them." Create alias link → find all videos under both names → batch-tag "retired"
- "Turn the video IDs in this article into an HTML page with covers." Parse IDs → batch search → download covers → generate gallery HTML
Everyday operations work too:
- "Search SAME-123, PRED-456, IPZZ-789 for me" — multi-source aggregation
- "Fill in the missing NFO in D:\av" — in-place enrichment, no rename, no move
- "Which series did I download the most this year?" — SQL query on your collection
No SDK. No docs to read. One curl, and your AI learns every endpoint:
curl http://localhost:<port>/api/capabilitiesThe port and full URL are shown in the Settings page under "AI API".
Works with any MCP / function-calling compatible AI tool:
| Method | Tools | Notes |
|---|---|---|
| CLI | Claude Code, Codex CLI, Gemini CLI, Aider, etc. | Just curl from the terminal — all CLI agents supported |
| IDE | Cursor, GitHub Copilot in VS Code, Windsurf, Trae, Google Antigravity, etc. | Agent mode / MCP to call local API |
| Desktop App | Codex App, Claude Cowork, OpenClaw | No dev environment needed, works out of the box |
💡 Recommended: OpenAI Codex App (Win/Mac, free tier available) — the only AI tool that renders cover images directly in the conversation. Easy to install, works out of the box.
⚡ Small-model friendly: The capabilities manifest is optimized for lightweight models — Gemini Flash / GPT-5.4 mini / Claude Haiku can all operate every endpoint correctly.
💻 Want your AI to pre-read the repo, or extend endpoints yourself? Every endpoint is defined in
web/routers/capabilities.py— AI agents cloning the repo will read this file first and learn every tool without even starting the server.
| Layer | Technology |
|---|---|
| Backend | FastAPI (Python 3.10+) |
| Frontend | Jinja2 + DaisyUI + Tailwind CSS + Alpine.js 3.x + Fluent Design 2 |
| Animation | GSAP 3.14+ with Motion Adapter (respects prefers-reduced-motion) |
| Desktop Shell | PyWebView (Windows / macOS) |
| Database | SQLite (WAL mode) |
| Testing | Pytest — 2400+ tests |
Prerequisites: Python 3.10+, Chrome/Edge, WebView2 Runtime (Windows 10/VM)
# Clone + set up virtual environment + install dependencies
git clone https://github.com/slive777/OpenAver.git
cd OpenAver
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Development mode (hot reload)
uvicorn web.app:app --reload --host 0.0.0.0 --port 8000
# Desktop mode (Windows)
python windows/launcher.pysource venv/bin/activate
pytestOpenAver/
├── web/ # Web GUI (FastAPI)
│ ├── routers/
│ │ ├── capabilities.py # 🌟 AI Manifest — self-describing definitions of every endpoint (single file)
│ │ └── ... # Other business endpoints (search / scanner / scraper / actress / ...)
│ ├── templates/ # HTML templates (DaisyUI + Fluent Design 2)
│ └── static/ # CSS/JS assets (modular JS, theme CSS)
├── core/ # Core logic
│ ├── scrapers/ # Modular scrapers (JavBus/JavDB/Jav321/FC2/AVSOX/DMM/D2Pass/HEYZO)
│ ├── database.py # SQLite data layer (WAL mode)
│ ├── organizer.py # File organizer + null-value fallback guards
│ ├── path_utils.py # Cross-platform path handling (file:// URI)
│ ├── i18n.py # i18n core (t() / fallback chain)
│ └── translate_service.py # AI translation (Ollama/Gemini/OpenAI Compatible)
├── locales/ # 4-locale JSON (zh_TW/zh_CN/ja/en)
├── tests/ # Test suite (Pytest)
└── windows/ # Windows launcher (PyWebView)
source venv/bin/activate
python build.py # Windows
python build_macos.py # macOS💡 See the Troubleshooting document included in the ZIP, or check the GitHub Wiki.
Join the Telegram group to discuss with other users!
| Channel | Best For |
|---|---|
| GitHub Issues | Bug reports, feature requests, dev discussions |
| Telegram group | Privacy-sensitive issues, direct screenshot/video uploads |
When reporting: include a description, steps to reproduce, OS version, and log file (run the Debug startup script to generate one).
OpenAver is built on these excellent open-source projects:
- FastAPI — Modern, high-performance Python web framework
- PyWebView — Lightweight cross-platform desktop shell
- GSAP — Professional-grade JavaScript animation engine
- DaisyUI — Component library for Tailwind CSS
- Tailwind CSS — Utility-first CSS framework
- Alpine.js — Lightweight reactive JavaScript framework
MIT License
⚠️ Disclaimer
This project is intended for personal, non-commercial use only. By using OpenAver, you agree to:
- Respect the terms of service of any website you scrape
- Use reasonable request rates to avoid overloading external services
- Not use this software for commercial purposes
You assume full responsibility for any consequences arising from your use of this project.





