Skip to content

L-at-nnes/khinsider-webui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KHInsider WebUI

A modern, feature-rich web interface for batch downloading game soundtracks from KHInsider

Python 3.8+ License: MIT

Lire en français

Key Features

Smart Download Management

  • Intelligent Queue System: Downloads are processed in batches to prevent server overload
  • Parallel Indexing: Lightning-fast file size calculation (20 concurrent requests)
  • Configurable Concurrency: Control simultaneous album and file downloads
  • Auto-Clear Completed: Optional automatic removal of finished downloads

Real-Time Monitoring

  • Global Statistics Dashboard: Total speed, downloaded size, and elapsed time
  • Per-Download Stats: Individual progress, speed, and file tracking
  • Live Status Updates: Queued, Indexing, Downloading, Completed states with animations
  • 24-Hour Time Format: Professional timestamp display

User Experience

  • Auto-Resizing Input: Text area grows dynamically with content
  • One-Click Clear: Remove all completed downloads instantly
  • Dark Theme: Modern, eye-friendly interface
  • Bulk Operations: Paste entire lists, handle series and individual albums

Technical

  • Metadata Download: Automatically saves album art and available metadata
  • Format Preferences: Choose preferred audio formats (FLAC, MP3, OGG)
  • Resume Support: Skips already downloaded files
  • WebSocket Updates: Real-time progress via Socket.IO

Quick Start

Prerequisites

  • Python 3.8 or higher
  • pip (Python package installer)

Installation

  1. Clone the repository
git clone https://github.com/l-at-nnes/khinsider-webui.git
cd khinsider-webui
  1. Install dependencies
pip install -r requirements.txt
  1. Run the server
python server.py
  1. Open your browser
http://localhost:5000

Usage Guide

Downloading Albums

Single Albums

mother-3
final-fantasy-vii
https://downloads.khinsider.com/game-soundtracks/album/chrono-trigger

Entire Series

https://downloads.khinsider.com/zelda
https://downloads.khinsider.com/final-fantasy

Bulk Downloads

  • Paste multiple links (one per line)
  • The queue system handles them automatically
  • Progress updates in real-time

Configuration

Access settings via the ⚙️ button:

Setting Default Description
Download Folder downloads/ Where albums are saved
Preferred Formats mp3 Audio format priority (FLAC, OGG, MP3)
Concurrent Albums 3 Albums downloading simultaneously
Concurrent Files 2 Files per album at once
Auto-Clear Completed false Automatically remove finished downloads

Tips for Large Lists

  1. Paste everything at once - the queue handles it
  2. Adjust concurrency based on your connection:
    • Fast (>100 Mbps): 4-5 albums, 3 files
    • Medium (10-100 Mbps): 3 albums, 2 files
    • Slow (<10 Mbps): 1-2 albums, 1 file
  3. Monitor the stats at the top for overall progress
  4. Enable auto-clear to keep the list tidy

Project Structure

khinsider-webui/
├── server.py              # Flask backend with queue management
├── khinsider.py           # Core download logic (modified)
├── requirements.txt       # Python dependencies
├── static/
│   ├── index.html         # Main UI
│   ├── app.js             # Frontend logic & WebSocket handling
│   └── styles.css         # Modern dark theme
├── storage/               # Runtime data (created automatically)
│   ├── config.json        # User settings
│   ├── history.json       # Download history
│   └── logs.json          # Application logs
└── downloads/             # Downloaded soundtracks (created automatically)

Advanced Configuration

Edit storage/config.json directly for advanced options:

{
  "download_folder": "D:\\Music\\Soundtracks",
  "format_order": ["flac", "mp3"],
  "create_subdirs": true,
  "max_retries": 3,
  "concurrent_downloads": 4,
  "max_concurrent_files": 3,
  "auto_clear_completed": true
}

Restart the server after manual config changes.

Troubleshooting

Slow Indexing

  • Reduced from ~30s to ~3-5s with parallel requests
  • If still slow, check your network connection

Many 403 Errors

  • Reduce concurrent_downloads to 1-2
  • KHInsider may be rate-limiting your IP
  • Wait a few minutes between large batches

Application Won't Start

  • Check that port 5000 is available
  • Verify all dependencies are installed: pip install -r requirements.txt
  • Delete storage/*.json files to reset configuration

Files Missing

  • Check the Logs tab for specific errors
  • Try a different format in settings
  • Some soundtracks may have incomplete uploads on KHInsider

Contributing

Contributions are welcome! Here's how:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

  • Based on khinsider.py by obskyr
  • Built with Flask, Socket.IO, and vanilla JavaScript

Disclaimer

This tool is for educational purposes. Please respect KHInsider's terms of service and bandwidth. Don't abuse the service with excessive concurrent downloads.


Enjoy your music collection!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published