🎧 Download music from Spotify exports
Find a file
Simon 6674612d82
Merge pull request #25 from astralfragment/main
Fix Spotify track selection and playlist loading + QOL Improvements
2026-04-14 11:26:25 +01:00
.github/workflows Organize files by artist/album grabs the right folder now 2026-04-13 17:18:22 +01:00
data removed some crappy cursor code 2025-12-22 11:42:54 +01:00
docs docs: rename repo references to harmoni, add macOS install docs 2026-03-23 23:55:42 +02:00
downloader Merge pull request #5 from Ham3D/main 2026-03-30 00:15:00 +01:00
export The tools update 2025-08-11 13:20:05 +01:00
gui feat: collapsible guide, step card sidebar bg, start selected, status bar shortcuts 2026-04-13 20:26:00 +02:00
history V2: More Modular, More Powerfull 2025-08-08 18:17:16 +01:00
images Harmoni: GUI version 1.0.0 2026-01-01 12:47:48 +01:00
managers Organize files by artist/album grabs the right folder now 2026-04-13 17:18:22 +01:00
menus feat(metadata): Enhance metadata handling and album art support 2025-12-21 17:38:50 +03:30
spotify_api fix: token cache path resolves relative to app dir, not working dir 2026-04-13 20:36:55 +02:00
tests removed some crappy cursor code 2025-12-22 11:42:54 +01:00
tools feat(ytdlp): add yt-dlp update checker and notification system 2026-03-03 20:47:39 +00:00
utils Harmoni: GUI version 1.0.0 2026-01-01 12:47:48 +01:00
.dockerignore feat(docker): add Docker support for containerized deployment 2025-12-12 19:15:01 -05:00
.gitignore Merge pull request #25 from astralfragment/main 2026-04-14 11:26:25 +01:00
build-macos.sh fix: review fixes for macOS build 2026-03-24 00:32:42 +02:00
changelog.md chore(changelog): update changelog for version 1.1.0 with yt-dlp update checker and UI improvements 2026-03-03 21:18:54 +00:00
config.json.example feat(spotify): enhance spotify authentication flow 2025-12-17 17:36:51 -05:00
config.py feat: custom binary paths in settings, clean up CI 2026-03-24 00:58:09 +02:00
constants.py The tools update 2025-08-11 13:20:05 +01:00
docker-compose.yml docs: rename repo references to harmoni, add macOS install docs 2026-03-23 23:55:42 +02:00
Dockerfile feat(docker): add Docker support for containerized deployment 2025-12-12 19:15:01 -05:00
gui_main.py fix: yt-dlp installer uses user-writable dir, no UI blocking 2026-03-24 01:23:32 +02:00
HARMONI.spec Harmoni: GUI version 1.0.0 2026-01-01 12:47:48 +01:00
LICENSE the MIT license: open source application to rule them all 2025-12-13 19:48:15 +01:00
main.py feat(ytdlp): add yt-dlp update checker and notification system 2026-03-03 20:47:39 +00:00
readme.md docs: rename repo references to harmoni, add macOS install docs 2026-03-23 23:55:42 +02:00
requirements.txt Harmoni: GUI version 1.0.0 2026-01-01 12:47:48 +01:00
start.sh feat(spotify): enhance spotify authentication flow 2025-12-17 17:36:51 -05:00

HARMONI Main Window

HARMONI

A Python tool for downloading music from Spotify and YouTube using yt-dlp. Available as a standalone executable, desktop GUI application, or command-line interface.

HARMONI Main Window

Features

  • Desktop GUI - Modern graphical interface with drag-and-drop Exportify support
  • Spotify Integration - Download from your playlists and liked songs via OAuth
  • YouTube Downloads - Download from links or search by artist/song
  • Batch Downloads - Download entire playlists with concurrent processing
  • Exportify Support - Import playlists from CSV exports (easiest method!)
  • Metadata Embedding - Automatic ID3 tagging for MP3 files
  • Library Management - Duplicate detection, cleanup, and organization

Installation Options

Option 1: Standalone Executable (Easiest)

Download from the Releases page:

  • Windows: HARMONI.exe — double-click to run
  • macOS: HARMONI-macos-arm64.dmg (Apple Silicon) — open the DMG and drag HARMONI to Applications

No Python installation required. FFmpeg is bundled.

See Standalone Guide for details.

Option 2: Python Installation

# Clone and install
git clone https://github.com/Ssenseii/harmoni.git
cd harmoni
pip install -r requirements.txt

# Run the GUI
python gui_main.py

# Or run the CLI
python main.py

Option 3: Docker

docker compose build
docker compose run --rm --service-ports harmoni

Option 4: Build macOS from Source

On any Mac with Python 3.12+ and Homebrew:

chmod +x build-macos.sh
./build-macos.sh

This produces a HARMONI-macos-<arch>.dmg with ffmpeg bundled.

Quick Start

The easiest way to download your Spotify music:

  1. Launch HARMONI (exe, app, or python gui_main.py)
  2. Go to exportify.net and log in with Spotify
  3. Export your playlists as CSV files
  4. Drag and drop the CSV into HARMONI

No Spotify API setup required!

Command Line

python main.py
# or
./start.sh

See CLI Guide for all available commands.

Screenshots

Home Downloads
Home Downloads
YouTube Search Settings
YouTube Settings

Requirements

  • Standalone EXE/DMG: None (ffmpeg bundled)
  • Python version: Python 3.9+ and ffmpeg

Documentation

See the docs/ folder for detailed guides:

License

MIT License - see LICENSE for details.

Disclaimer

This tool is for personal use only. Respect copyright laws and YouTube's terms of service.