Giter VIP home page Giter VIP logo

audiobookshelf-windows's Introduction

audiobookshelf-windows

Installs and manages the audiobookshelf server on Windows.

It installs the latest released version of the server itself (pre-packaged as a Windows executable), and a tray app for managing it. The tray app runs in the background, and can be accessed by clicking the Audiobookshelf tray icon () in the system tray (bottom right corner of the screen).

The tray app lets you:

  • Open the server in your default browser
  • Start/Stop the server
  • Set the server to start on login
  • View the server logs
  • Change the server port and data folder
  • Check for updates, download and install them

Audiobookshelf-windows releases are automatically kept up to date with the latest audiobookshelf server releases.

System Requirements

  • Windows 10 64-bit or later

You do not need to install .NET Framework, as it is included in any Windows 10 installation.

You do not need to install Node.js, as the server executable is pre-packaged with it.

Installation

Download the latest installer release from the release page and run it.

Caveats

  • The server currently uses tone to embed metadata and covers in audio files. tone is slated to be replaced soon, so it is not included in the Windows installer release
  • It's not currently possible to migrate the server data from a previous Windows Docker installation to this one (see this issue)

Development

All development was done on a Windows 10 64-bit desktop.

The tray app was developed in C# using .NET Framework 4.6.1 and Winforms. It was based on the audiobookshelf-win codebase by advplyr.

The installer was developed using Inno Setup.

1. Building the Audiobookshelf server executable

  • Install Node.js 16 (Must be version 16)
    • Optional: install nvm-windows to manage multiple Node.js versions
  • Install Visual Studio Code
  • Clone the audiobookshelf Github repository
  • Open the audiobookshelf folder in Visual Studio Code
  • Open the terminal (Ctrl+Shift+`)
  • Run npm ci to install the dependencies
  • Run npm i pkg -g to install the pkg (Node.js to executable) package
  • Run npm run build-win to build the audiobookshelf server executable (it will be placed in the dist\win folder)

2. Building the Audiobookshelf tray app

The tray can be built using either Visual Studio 2022 or Visual Studio Code.

  • If you need to make design changes to the UI, it's recommended to use Visual Studio 2022, as it has a visual designer for Winforms.
  • It's convenient to use Visual Studio 2022 since it has a built-in debug console, in which you can see Debeug.WriteLine() messages.
  • If you only need to make code changes, you can use Visual Studio Code.

On Visual Studio 2022

On Visual Studio Code

  • Install Visual Studio Code
  • Install the C# Dev Kit
  • Install the latest .NET SDK
  • Clone this repository
  • Open the terminal (Ctrl+Shift+`)
  • Run dotnet build -c Release or dotnet build or to build the solution (you will find the executable in the bin\x64\Release\net461 or bin\x64\Debug\net461 folder, depending on the build configuration)

Running the tray app

You can run or debug the tray app directly from Visual Studio 2022 or Visual Studio Code.

  • Copy the audiobookshelf server executable to the bin\x64\Release\net461 or bin\x64\Debug\net461 folder, depending on the build configuration
  • The app tries to read the AppVersion and DataDir values from the registry key HKEY_CURRENT_USER\SOFTWARE\Audiobookshelf, and if they are not found, it will use the default values
  • Run or debug the app (F5). By default, the app will:
    • try to get the server data folder from the registry key HKEY_CURRENT_USER\SOFTWARE\Audiobookshelf\DataDir
      • if not found, the default value %LocalAppData%\Audiobookshelf will be used
    • try to get the app version from the registry key HKEY_CURRENT_USER\SOFTWARE\Audiobookshelf\AppVersion
    • run the server on port 13378 by default

3. Building the installer

  • Install Visual Studio Code
  • Install Inno Setup
  • Install the Inno Setup extension for Visual Studio Code
  • Clone this repository
  • Open Setup\installer.iss in Visual Studio Code
  • Change #define MyAppBinDir to the folder where the Audiobookshelf tray app executable and dlls are located
  • Change #define ServerBinDir to the folder where the Audiobookshelf server executable is located
  • Run the Build Installer task (Ctrl+Shift+B) to build the installer (you will find it in the Setup\Output folder)

audiobookshelf-windows's People

Contributors

mikiher avatar

Stargazers

 avatar  avatar m1nus avatar  avatar Kyler Burnett avatar Nitin Khanna avatar  avatar getBoolean avatar  avatar  avatar  avatar  avatar  avatar FrankX avatar Woodrow avatar Gianni Hong avatar Chris Moldenauer avatar  avatar Cardice avatar  avatar  avatar KC Munnings avatar  avatar  avatar  avatar Chase Moltedo avatar  avatar Nicholas W avatar  avatar  avatar  avatar Ben Bassett avatar Bryan William De Netto avatar Valentin avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

kkpan11

audiobookshelf-windows's Issues

[Feature requests] Support Windows Junction

Hi, my NAS system is Windows and I'm not using Raid, I'm using Junction to aggregate multiple hard drive directories into one directory. (C:/mnt)

Now I installed audiobookshelf-windows and I found that
audiobookshelf-windows doesn't recognize Junction, I hope it will support it, I think it's a very basic feature, Plex, Emby, Jellyfin support it.
屏幕截图 2024-03-03 075049

(Such as picture, I'm talking about Hard Link, Symbolic Link, Junciton)
屏幕截图(407)z

Auto update not working

Going from 2.7.1 to 2.7.2 through the auto update system worked perfectly.

Going from 2.7.2 to 2.7.2.1 it just keeps saying there's a new update available. In "about audiobookshelf server" it says I'm on 2.7.2. Even after going through the update process multiple times.

Outside of this, I've been using your windows builds for almost a month now, been super solid, thank you so much for your work! Brought me back to abs lol.

Audiobookshelf crashes randomly?

Every few days I find that audiobookshelf has crashed and when I hover over the tray icon it dissapears. I then have to manually relaunch it and it starts up the server again.

This seems to happen at random times. This last time it was when I clicked refresh on a library, it then popped up "socket disconnected" and I checked what was up and it had crashed. I've been experiencing this every few days it would seem.

Could someone assist me to troubleshoot and get to the bottom of this? Thanks!

Changing Port From Tray

When changing port From Tray and click save, it saves the directory in the box below instead of the port number. I have to change it on the config file.

What version of dot net?

I'm trying to get Audiobookshelf-windows running on Windows Server 2019 which does not always use the same dlls as Windows 10/11, so I need to install the server version of dot net manually. What version should I install to get AudioBookshelfTray.exe to run?

Migrating server data from an existing Docker installation

I have the docker version and created a backup. When I restored it on your windows version it doesn't restore the book cover images. I don't have many audiobooks but I would still have to go one by one and match the books to restore the book covers.

Adding Metadata Embed and MB4 Conversion Tools

I know the readme says that tone will eventually be replaced, but I'm wondering if there is any kind of time table on that? I'd prefer to run the Windows version of ABS but the Docker version is the only one that has all those extra tools which I'd like to use to manage my files as i get my library started. I can also use tools like inAudible which is very fast for converting mp3 to mb4 (faster than tone in ABS it seems) but the rest of the ux/ui isn't as nice as ABS.

While i'm here, i might ask about audiobook splitting too, perhaps these kinds of tools would really kick ABS up a notch, as great as it already is.

[bug] File won't import, scan doesn't seem to find it

I have 2 audiobooks that I placed together in the authors' folder, but only one of them is showing up in my library. I thought maybe the m4a file format was an issue, so I converted it to a mp3 but it is still having the same problem. The other file imported just fine and as expected, I just can't seem to get the one to show up.

I tried restarting the server as well as the whole computer but it still isn't showing up. When I run the library scan it doesn't find anything new.

[Bug] Server command line arguments are unquoted

pkg/prelude/bootstrap.js:1926
return wrapper.apply(this.exports, args);
^
UNKNOWN_VALUE: Unknown value: Server\docker\local-abs\config
at commandLineArgs (C:\snapshot\audiobookshelf\server\libs\commandLineArgs\index.js)
at Object. (C:\snapshot\audiobookshelf\prod.js)
at Module._compile (pkg/prelude/bootstrap.js:1926:22)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.runMain (pkg/prelude/bootstrap.js:1979:12)
at node:internal/main/run_main_module:17:47 {
value: 'Server\docker\local-abs\config'
}

Ignore that it says docker. This is just a folder I keep these types of things in so I can go to them easily.

Error [AudioFileScanner] No such file or directory

The bug I have found is long folder/file paths, I moved my audio books from my synology NAS to my windows machine for ABS, once I setup ABS and added the library I noticed some books were missing, upon looking through the logs I encounted Error [AudioFileScanner] No such file or directory. After looking at the file and folders that had the error they looked pretty long. As there were 70+ books to shorten I tried to enable longfilepaths in the registry to see if that fixed the problem but it didn't so I renamed the folder and files shorter and that solved the problem.
It's not that big of an issue though.
Please find the attatched as an example of the problem faced (as I had already renamed all the problem books already to reproduce this error I just renamed the folder and file to be the longest windows would let me make it).

ABS Error
Longpaths
Folderview

Change "localhost" to my IP

In the RSS feed documentation, the feed has the IP address but with the windows version it is set to "localhost" so I can't stream from another podcast app on my local network. Anyway to set this?

Adding a library

Screenshot 2024-01-01 120332
Hello thanks for making the windows version! I just installed it and it installs fine. How can I add a library. The browse for folder doesn't seem to work. I just get Note: folders already mapped will not be shown.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.