GitHub Hot Board

GitHub Hot Board · 저장소 아카이브

debba/storytel-player

Storytel Unofficial Player for Desktop (소개는 저장소 자체 문서에서 왔습니다.)

데이터 기준 October 26debba

최고 순위

#54

과소평가 · 활발한데 무명

100

누적 스타

13

포크 수

2

최근 30일 기록 일수

프로젝트 상태라이선스: MIT최근 push: October 18열린 이슈(PR 포함): 4

2026-10-25부터 수집. 미확인 = 아직 미수집

README에 뱃지를 붙여보세요 · debba/storytel-player[![README에 뱃지를 붙여보세요](https://git.vaiox.xyz/api/badge/debba/storytel-player.svg)](https://git.vaiox.xyz/ko/repo/debba/storytel-player)
<a href="https://git.vaiox.xyz/ko/repo/debba/storytel-player"><img src="https://git.vaiox.xyz/api/badge/debba/storytel-player.svg" alt="README에 뱃지를 붙여보세요" height="20"></a>

프로젝트 문서

Storytel Player for Desktop

Build & Release Known Vulnerabilities Discord i18n

Unoffical Storytel Player for Desktop — a cross-platform desktop application for playing Storytel audiobooks, built with TypeScript, React, Fastify, and Electron.

Discord - Join our discord server and chat with the maintainers.

Release Download:

Windows macOS Intel macOS Apple Silicon Linux

What's New

See the CHANGELOG for the full list of changes across all releases.


✅ Modern Desktop Interface: Dark theme with Storytel Orange accents, rounded cards and filter pills, laid out for a 1280×800 desktop window

✅ Catalog Search: Search the whole Storytel catalog by title, author or narrator (Ctrl/Cmd+K). Filters, results and a live preview side by side; add to your library or start listening in one click. Results are scoped to your Storytel market and limited to audiobooks

✅ Background Playback: Audio keeps playing while you navigate; a persistent mini-player keeps play/pause, skip, speed, chapters and sleep timer within reach

✅ Native Desktop App: Cross-platform application with system tray integration and single instance lock

✅ Audiobook Library: Browse your Storytel bookshelf with cover art, progress tracking and status filters

✅ Audio Player: Chapters, bookmarks, playback speed, sleep timer, multiple audio tracks and automatic resume

✅ Session Management: Secure authentication with persistent storage via electron-store, automatic session refresh and transparent retry

✅ Internationalization: English, Italian, German, Spanish, French, Swedish and Finnish (i18next) with automatic language detection

✅ Cross-Platform: Available for Windows, macOS (x64/ARM64), and Linux (x64/ARM64/ARMv7)

✅ Action Logging: Internal logging of HTTP requests, responses, and user actions, exportable for debugging. Log rotation is applied automatically (max 10 MB per file, up to 5 archived files)

✅ Development Mode: Hot reload for both client and server during development

✅ Offline Listening: Download audiobooks for offline playback

Note

This is an independent project, not affiliated with Storytel

Architecture

The application is built with TypeScript and follows a modular architecture:

  • Frontend: React 18 with TypeScript, Tailwind CSS, and Vite (port 3000 in dev mode)
  • Backend: Fastify server with TypeScript and RESTful API (port 8080)
  • Desktop: Electron 43 with TypeScript
    • Window Manager: Main window handling with development/production modes
    • Tray Manager: System tray integration
    • Server Manager: Embedded Fastify server management
    • IPC Manager: Inter-process communication between Electron and React
  • Authentication: Session-based authentication with secure storage
  • Audio Streaming: Direct integration with Storytel's streaming API
  • Logging: In-memory and file-based (app.log in the config directory) logging of system events and HTTP traffic

Prerequisites

  • Node.js 22+ (see .nvmrc for the recommended version)
  • npm 7+

Installation

macOS

Homebrew (Recommended)

To add our tap, run:

brew tap debba/storytel-player

Then install:

brew install --cask storytel-player

Homebrew

Direct Download

When you install storytel-player on macOS, you need to allow accessibility access (Privacy & Security) to the storytel-player app.

If you are upgrading and you already have storytel-player on the allowed list you will need to manually remove them before accessibility access can be granted to the new version.

macOS users who download directly from releases may need to run:

xattr -c "/Applications/Storytel Player.app"

after copying the app to the Applications directory.

Arch Linux (AUR)

yay -S storytel-player-bin

Updates

Automatic Updates

Storytel Player checks for updates automatically on startup. When a new version is available, a notification will appear, allowing you to download and install the update seamlessly.

Manual Updates

You can also manually check for updates or download the latest version directly from the Releases page.


## Development

Start the development environment with hot reload:

```bash
npm run install-all
npm run dev

This will:

  • Start the Fastify server on port 3001 (with tsx watch for auto-restart)
  • Start the Vite development server on port 3000
  • Both servers will reload automatically when files change

Individual Components

You can also run components separately:

# Start only the server (development mode)
npm run server:dev

# Start only the client
npm run client

# Start both (without hot reload)
npm start

Electron Development

To run the Electron app in development mode:

npm run electron:dev

Building

Build for Production

Build all components for production:

npm run build

This command builds the React client with Vite (client/build/).

Build Electron App

Create distributable Electron packages:

# Build and create installer/distributable for current platform
npm run electron:dist

# Platform-specific builds
npm run electron:dist:win           # Windows (x64)
npm run electron:dist:mac:x64       # macOS (Intel)
npm run electron:dist:mac:arm64     # macOS (Apple Silicon)
npm run electron:dist:linux         # Linux (all targets)
npm run electron:dist:linux:x64     # Linux x64 (tar.gz, deb, rpm, AppImage)
npm run electron:dist:linux:arm64   # Linux ARM64
npm run electron:dist:linux:arm     # Linux ARMv7

The built applications will be available in the dist/ directory.

Build targets:

  • Windows: NSIS installer (.exe)
  • macOS: DMG package (.dmg)
  • Linux: AppImage, deb, rpm, Pacman packages

Scripts

Command Description
npm start Start both client and server (production mode)
npm run dev Start development servers with hot reload
npm run build Build client with Vite
npm run build-win Build client for Windows
npm run server:build Build server with esbuild
npm run install-all Install dependencies for all components
npm run clean Clean all build directories
npm run electron:build Compile Electron TypeScript files
npm run electron Run Electron app (production)
npm run electron:dev Run Electron app (development mode)
npm run electron:pack Package Electron app without installer
npm run electron:dist Build and create installer for current platform
npm run electron:dist:win Build Windows installer (x64)
npm run electron:dist:linux Build all Linux packages
npm run electron:dist:linux:x64 Build Linux x64 packages
npm run electron:dist:linux:arm64 Build Linux ARM64 packages
npm run electron:dist:linux:arm Build Linux ARMv7 packages
npm run electron:dist:mac:x64 Build macOS Intel package
npm run electron:dist:mac:arm64 Build macOS Apple Silicon package

Configuration

Environment Variables

Create a .env file in the server/ directory:

# Add your environment variables here
# See server/.env.example for reference

Electron Builder

Electron Builder configuration is in package.json under the build key:

  • App ID: com.storytel.player
  • Product Name: Storytel Player
  • Output Directory: dist/

Development Notes

  • The Electron app features a compact UI (480x800 window size) optimized for desktop use
  • Single instance lock prevents multiple app instances from running simultaneously
  • In development mode, the app connects to local dev servers (React on port 3000, Fastify on port 3001)
  • In production mode, the app serves static files from client/build/ and runs the bundled server
  • The embedded Fastify server is managed by the Electron main process
  • TypeScript is used throughout the project (Electron, React, and Fastify)
  • Certificate errors are ignored in development mode for local HTTPS testing

Technologies Used

  • Frontend: React 18, TypeScript, Tailwind CSS, Vite, i18next, Axios
  • Backend: Fastify 5, TypeScript, @fastify/cors, dotenv
  • Desktop: Electron 38+, electron-store
  • Build Tools: Vite, esbuild, electron-builder, TypeScript compiler
  • Development: Concurrently, tsx (for server watch mode)

🌐 Website

Visit our official documentation

License

MIT License

Author

Andrea Debernardi (andrea@debbaweb.it)

현재 순위

  • 54

    과소평가 · 활발한데 무명

    100 스타 · 13 fork · 총 스타 수(오름차순)

    과소평가 →

최근 30일 추이

누적 스타 추이

순위 추이

같은 보드의 이웃 랭커 · 과소평가

← 랭킹으로