https://github.com/pasiegel/audiobookshelf-player
This is an **Electron wrapper** for the **Audiobookshelf** web app. It allows users to enter the server URL of their Audiobookshelf instance and wraps the web interface into a native desktop application for Windows.
https://github.com/pasiegel/audiobookshelf-player
audio-player audiobookshelf
Last synced: 3 months ago
JSON representation
This is an **Electron wrapper** for the **Audiobookshelf** web app. It allows users to enter the server URL of their Audiobookshelf instance and wraps the web interface into a native desktop application for Windows.
- Host: GitHub
- URL: https://github.com/pasiegel/audiobookshelf-player
- Owner: pasiegel
- Created: 2025-04-12T03:30:12.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-04-12T04:12:31.000Z (6 months ago)
- Last Synced: 2025-04-22T23:34:14.137Z (6 months ago)
- Topics: audio-player, audiobookshelf
- Language: JavaScript
- Homepage:
- Size: 57.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Audiobookshelf-player
This is an **Electron wrapper** for the **Audiobookshelf** web app. It allows users to enter the server URL of their Audiobookshelf instance and wraps the web interface into a native desktop application for Windows.
---
## Features
- **Customizable Server URL**: Upon launch, the app asks for the Audiobookshelf server URL if it hasn't been set.
- **Persistent Configuration**: The server URL is stored in a `config.json` file in the local directory, so users don’t need to enter it every time.
- **Taskbar Icon**: The app uses a custom `.ico` icon for the taskbar and the window.
- **Cross-Platform**: While currently built for Windows, the app can be easily extended to support other platforms (macOS, Linux).---
## Prerequisites
Before using this project, you need to install:
### 1. **Node.js and npm**
Download and install Node.js from the official website:
👉 https://nodejs.org/
> This will also install **npm** (Node Package Manager), which is required to install dependencies.
Verify installation:
```bash
node -v
npm -v
```---
## Installation
### 1. **Clone the repository**
```bash
git clone https://github.com/pasiegel/audiobookshelf-player.git
cd audiobookshelf-player
```### 2. **Install dependencies**
Run the following command to install Electron and other required packages:
```bash
npm install
```This installs **Electron** and **Electron Packager** as development dependencies.
---
## Development
### 1. **Run the application in development mode**
To start the app with Electron:
```bash
npm start
```This launches the Electron app where you can enter the Audiobookshelf server URL.
### 2. **Package the application**
To build the app into a native Windows executable:
```bash
npm run package
```This will create a `.exe` file in the `dist/` folder.
---
## Configuration
The app stores the server URL in a **`config.json`** file located in a `config/` directory in the project. This ensures that the server URL is persisted across sessions.
### Default Location for Config File:
- **Windows**: `audiobookshelf-wrapper/config/config.json`---
## Files
- `main.js`: Main Electron process script that handles window creation and server URL management.
- `index.html`: HTML file for the initial URL input prompt.
- `store.js`: Handles reading and writing configuration settings (such as server URL) to a local `config.json` file.
- `icon.ico`: The application icon used for both the window and packaged `.exe` file.
- `package.json`: Project dependencies, scripts, and configuration for Electron and Electron Packager.
- `preload.js`: Preload script for isolating and controlling access to Electron's APIs in the renderer process.---
## Contributing
Contributions are welcome! Please fork the repository, make your changes, and submit a pull request.
---
## License
This project is licensed under the MIT License.
---
## Troubleshooting
1. **App doesn’t save the URL**: Ensure that the `config.json` file exists in the `config/` directory. If it’s missing, the app will create it automatically on the first run.
2. **App doesn’t launch**: Make sure that you have all dependencies installed using `npm install`. If any errors occur, try running `npm start` again to debug.
3. **Icon not showing**: Ensure that your icon is in `.ico` format and placed in the project root.