An unofficial, cross-platform desktop download manager for Khinsider game soundtracks.
Note
This project was generated with AI assistance.
Important
Disclaimer: KhinFetch is an independent, unofficial client. It is not affiliated with, endorsed by, or maintained by Khinsider. The project does not grant any rights to music, artwork, metadata, or other third-party content. You are responsible for ensuring that your use and downloads are lawful and comply with the applicable website terms.
- ๐ Smart Search & URL Parsing: Search Khinsider albums directly by keyword or parse album/playlist URLs on the fly.
- ๐ Rich Metadata Preview: Inspect release year, catalog number, track list, duration, audio formats, and file sizes before downloading.
- ๐ง In-App Audio Preview: Listen to online MP3 sample previews directly within the app before queuing.
- ๐ต Best Quality Priority: Automatically select the highest quality format available (e.g. Lossless FLAC) with graceful lossy fallback and clear mixed-quality indicators.
- ๐ฆ Batch Links Import: Queue multiple album and playlist URLs concurrently.
- ๐ผ๏ธ Album Artwork Archiving: Save original high-resolution album cover art alongside downloaded audio tracks.
- โก Persistent Queue Management: SQLite-backed download engine with pause, resume, retry, cancel, and seamless interrupted download recovery.
- โ๏ธ Flexible Customization: Fine-tune concurrent downloads, quality preferences, file integrity checks, logging levels, bilingual interface, and system-adaptive themes.
KhinFetch provides prebuilt packages for Windows, macOS, and Linux on the GitHub Releases page:
- Windows: Standard installer (
.exe) and portable standalone archive (.zip, extract and run). - macOS / Linux: System-specific distribution packages.
Tip
The portable version stores settings, the SQLite database, and logs in the current user's standard application data directory.
- Node.js:
26.x - pnpm:
11.20.x - Rust:
1.97or newer - Operating system dependencies listed in the Tauri v2 prerequisites guide
# Install frontend dependencies
pnpm install
# Run locally in development mode
pnpm tauri devPlease run and pass all validation checks before submitting a pull request:
# Frontend linting and typechecking/build
pnpm lint
pnpm build
# Frontend state management regression tests
pnpm test
# Rust formatting, Clippy checks, and unit tests
cargo fmt --manifest-path src-tauri/Cargo.toml --all -- --check
cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets --locked -- -D warnings
cargo test --manifest-path src-tauri/Cargo.toml --lockedpnpm tauri buildUnsigned local bundles will be generated under src-tauri/target/release/bundle/.
khinfetch/
โโโ src/ # React 19 + TypeScript frontend
โ โโโ api/client.ts # Unified communication boundary for Tauri backend calls
โ โโโ api/generated/ # TypeScript types mirrored from Rust DTOs
โ โโโ assets/ # Frontend icons and static assets
โ โโโ i18n/ # English and Simplified Chinese localizations
โโโ src-tauri/ # Rust Tauri 2 backend core
โ โโโ src/ # Downloader, parser, SQLite persistence, and system logic
โ โโโ migrations/ # SQLite database schema migrations
โ โโโ icons/ # Platform bundle icons
โโโ docs/images/ # Documentation screenshots
โโโ .github/workflows/ # CI build/test and release automation
Issues and pull requests are welcome. Keep changes focused, preserve the unofficial-client positioning, and run the validation commands above before submitting a pull request.
- Khinsider provides the website data consumed by the application.
- The implementation was inspired by the open-source KhinsiderDownloader project.
Copyright (C) 2026 KhinFetch contributors.
Unless stated otherwise, the original KhinFetch source code and assets are licensed under the GNU General Public License, version 3, or (at your option) any later version (GPL-3.0-or-later). See LICENSE for details.
Third-party dependencies and content obtained from external services remain subject to their own licenses, copyrights, and terms.


