this app require python 3.11 or higher and the YT music pip package
pip install ytmusicapi
LOLLOMUSICX desktop music player built with Electron and Svelte. It offers an integrated experience for streaming from YouTube Music and managing your local music library.
.mp3
and .wav
files.electron-vite
)playwright
for authentication.music-metadata
for reading metadata and fluent-ffmpeg
for processing.Before you begin, ensure you have the following installed:
npm
(included with Node.js)python
(required for lollomusicx api
to work) (its suggested to download it by the microsoft store or by using the command Python
in the power shell)Clone the repository:
git clone <REPOSITORY_URL>
cd LOLLOMUSICX
Install dependencies:
This command will install all necessary dependencies, including local packages like lollomusic-api
.
npm install
Install dependencies:
This command will install a Python package required for the lollomusicx api
to work.
pip install ytmusicapi
Install Playwright Browsers: This command will install the required browsers for Playwright to work.
npx playwright install
Run in development mode: This will start the application with hot-reloading for a smooth development experience.
npm run dev
To build the application and create installers for your platform, use the following commands:
Windows: npm run build:win
lollomusic is only available for windows for now.
These commands will generate platform-specific installers in the dist_electron
directory.
On the first launch, the application will open a chromium window (managed by Playwright) prompting you to log into your YouTube Music account. This step will allow the app to save the browser session.
once the chromium window is open:
These commands are defined in the package.json
file:
Command | Description |
---|---|
npm run dev |
Starts the app in development mode with hot-reloading. |
npm run build |
Compiles and prepares the app for production. |
npm run build:win |
Creates the installer package for Windows (.exe ). |
npm run build:mac |
Creates the installer package for macOS (.dmg ). |
npm run build:linux |
Creates the packages for Linux (.AppImage , .deb ). |
npm run format |
Formats the code using Prettier. |
npm run lint |
Runs static code analysis with ESLint. |
.
├── dist_electron/ # Production build output
├── src/
│ ├── main/ # Electron main process code (backend)
│ │ ├── index.js # Main entry point, handles windows and IPC
│ │ └── ...
│ ├── preload/ # Preload scripts for the main-renderer bridge
│ └── renderer/ # Renderer process code (Svelte frontend)
├── electron.vite.config.mjs # Electron-Vite configuration
├── package.json # Project dependencies and scripts
└── ...
src/main
: Contains the application's "backend" logic. It manages windows, file system access, external API calls, and Inter-Process Communication (IPC)
(the lollomusicx api in this folder is discontinued and will be removed in the future, please install .tgz
file in the main directory)
src/renderer
: Contains the user interface built with Svelte. It communicates with the main
process via preload
scripts to perform backend operations.
src/preload
: Acts as a secure bridge, selectively exposing main
process APIs to the renderer
process in a controlled manner.
Lollomusicx api
will be soon available in another repository.
This project is licensed under the MIT License. See the LICENSE file for details.
Disclaimer: This project is currently in beta and is maintained by a single developer. As such, you may encounter bugs or incomplete features. Feedback and contributions are highly appreciated!