New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

jav-manager

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jav-manager

TypeScript rewrite of JavManager

latest
npmnpm
Version
0.1.5
Version published
Maintainers
1
Created
Source

JavManager

A lightweight GUI + CLI tool for automated JAV content management with fast repeat searches, torrent search, and optional qBittorrent integration.

繁體中文 | 日本語 | 한국어

Usage

# GUI
npx jav-manager --gui

# CLI (interactive)
npx jav-manager

# CLI (non-interactive)
npx jav-manager STARS-001

# Help / version
npx jav-manager help
npx jav-manager version

Notes:

  • Everything (local search) and qBittorrent (download) are optional integrations. JavManager works without them (it can still search JavDB and output magnet links).
  • Replace npx jav-manager with jav-manager if you installed it globally (npm install -g jav-manager).
  • If you need support for other tools with HTTP APIs (e.g., other search engines or download clients), please create an issue.

Features

  • GUI (local web UI) and console mode (Node.js)
  • Multilingual UI (English, Chinese, Japanese, Korean)
  • Search JAV metadata and torrents/magnets from JavDB
  • Check local files via Everything search engine
  • Download via qBittorrent WebUI API
  • Local JSON cache for repeat searches
  • Smart torrent selection with weight-based ranking (markers + weights)

Workflow

flowchart TD
    A[Input JAV ID] --> B{Data available?}
    B -->|Yes| C[Use existing metadata]
    B -->|No| D[Fetch from JavDB]
    C --> E[Rank torrents]
    D --> E
    E --> F{Local file exists?}
    F -->|Yes| G[Show options]
    F -->|No| H[Add to downloader]
    G --> H
    H --> I[Done]

    classDef primary fill:#2563eb,stroke:#1d4ed8,color:#ffffff;
    classDef decision fill:#f59e0b,stroke:#d97706,color:#111827;
    classDef neutral fill:#ffffff,stroke:#e5e7eb,color:#1f2937;

    class A,H,I primary;
    class B,F decision;
    class C,D,E,G neutral;

External Dependencies

ServiceRequiredPurposeLink
JavDBYesMetadata & magnet linksjavdb.com
EverythingNo (optional)Local file searchvoidtools.com (HTTP plugin)
qBittorrentNo (optional)Torrent downloadqBittorrent

Cloudflare 403 Issue

If JavDB returns HTTP 403, it's likely due to a Cloudflare challenge. JavManager uses curl-impersonate by default to mimic a real browser TLS/HTTP2 fingerprint (no browser automation). If you still see 403, try a different mirror URL or check if your IP is blocked (see doc/CloudflareBypass.md).

JavDB Domain API

The Cloudflare Worker provides an API endpoint to get the latest JavDB domain from the official site:

Endpoint: GET /api/javdb-domain

Example Request:

curl https://your-worker-url/api/javdb-domain

Example Response:

{
  "success": true,
  "domains": ["javdb565.com"]
}

Error Response:

{
  "success": false,
  "error": "Failed to fetch domain from javdb.com",
  "message": "Could not extract latest domain from javdb.com"
}

This API fetches the latest JavDB domain from https://javdb.com/ in real-time. The API includes a 10-second timeout and proper error handling.

If Telemetry:Enabled is true, JavManager can post:

  • A startup event to POST /api/telemetry
  • JAV metadata to POST /api/javinfo (used by the worker UI; repeated reports increment the per-ID search counter)

The worker also serves a small UI:

  • / overview
  • /jav "Jav Trends" (recent JavInfo records + search counts)

Configuration

Settings are configured via appsettings.json (and optional appsettings.Development.json).

Config file location:

  • If JAVMANAGER_CONFIG_DIR is set and exists, config is read from there.
  • Otherwise, JavManager looks for appsettings.json in the executable directory first, then the current working directory.
  • GUI "Settings" and CLI cfg set ... write appsettings.json to the selected config directory (see lookup rules above).

Configuration reference:

SectionKeyRequiredDefaultDescription
EverythingBaseUrlNo (optional)(empty)Everything HTTP server base URL (include scheme and host). If unavailable, local dedup is skipped.
EverythingUserNameNo (optional)(empty)Basic auth user name.
EverythingPasswordNo (optional)(empty)Basic auth password.
QBittorrentBaseUrlNo (optional)(empty)qBittorrent WebUI base URL (include port if needed). If unavailable/auth fails, JavManager prints magnet links without adding to download queue.
QBittorrentUserNameNo (optional)(empty)WebUI user name.
QBittorrentPasswordNo (optional)(empty)WebUI password.
JavDbBaseUrlYeshttps://javdb.comPrimary JavDB base URL.
JavDbMirrorUrlsNo (optional)[]Additional mirror URLs (array).
JavDbRequestTimeoutNo (optional)30000Request timeout in milliseconds.
JavDbUserAgentNo (optional)(empty)Custom User-Agent string (used only in HttpClient fallback mode).
JavDbCurlImpersonate:EnabledNo (optional)trueEnable curl-impersonate for JavDB requests (recommended).
JavDbCurlImpersonate:TargetNo (optional)chrome116Impersonation target name for curl_easy_impersonate() (e.g. chrome116).
JavDbCurlImpersonate:LibraryPathNo (optional)(empty)Optional explicit path to libcurl.dll (otherwise auto-detected).
JavDbCurlImpersonate:CaBundlePathNo (optional)(empty)Optional path to cacert.pem (otherwise auto-detected).
JavDbCurlImpersonate:DefaultHeadersNo (optional)trueUse curl-impersonate built-in default HTTP headers.
DownloadDefaultSavePathNo (optional)(empty)Default download path when adding torrents to qBittorrent.
DownloadDefaultCategoryNo (optional)javDefault category in qBittorrent.
DownloadDefaultTagsNo (optional)jav-managerDefault tags for created downloads.
LocalCacheEnabledNo (optional)trueEnable or disable local cache storage.
LocalCacheDatabasePathNo (optional)(empty)JSON cache file path (leave empty for default jav_cache.json next to executable).
LocalCacheCacheExpirationDaysNo (optional)0Cache TTL in days (0 disables expiration).
ConsoleLanguageNo (optional)enUI language (en or zh).
ConsoleHideOtherTorrentsNo (optional)trueHide non-matching torrents in list.
TelemetryEnabledNo (optional)trueEnable or disable anonymous telemetry.
TelemetryEndpointNo (optional)https://jav-manager.techfetch.devBase endpoint (the app posts to /api/telemetry and /api/javinfo).
UpdateEnabledNo (optional)trueEnable or disable update checks.
UpdateAutoCheckOnStartupNo (optional)trueAuto-check for updates on startup (GUI).
UpdateGitHubRepoNo (optional)jqknono/jav-managerGitHub repo used for update checks.

Notes:

  • JavInfoSync:* is a legacy section name; newer builds use Telemetry:* (the app still reads the legacy keys for backward compatibility).
  • Advanced: configuration also supports environment variables with the JAVMANAGER_ prefix (nested keys use __), but file-based config is the primary supported method.

Development

# Install deps
npm install

# Build
npm run build

# Run (GUI / CLI)
npm run gui
npm run cli

# Run (compiled default entry)
npm run start

# Tests
npm test

FAQs

Package last updated on 10 Feb 2026

Related posts