A local-first music system for curated libraries, precise playback, and deep listening insight.
- Go 96.1%
- PowerShell 3.1%
- Shell 0.8%
- Reduce main.go from 311 lines to 26 lines - Extract app logic to internal/app/app.go - Extract UI to internal/ui/ui.go - Add build tag separation (native_media / stub) - Move FFmpeg DLLs and exe to external/libs/ - Add Windows and Linux build scripts - Add packets_stub.go for non-native builds - Update gitignore for exe/dll/db - Update TODO, DONE, CHANGELOG with full status - Clean project root: only source and docs |
||
|---|---|---|
| _local | ||
| assets/logos | ||
| cmd/eternal | ||
| docs | ||
| internal | ||
| scripts | ||
| .gitignore | ||
| AGENTS.md | ||
| DONE.md | ||
| go.mod | ||
| go.sum | ||
| README.md | ||
| TODO.md | ||
Eternal - Modern Local-First Music Player
A desktop music player inspired by iTunes 2010, built with FFmpeg for local-first audio playback.
Features
- Local-First: No cloud dependency, all music on your device
- iTunes 2010 Style: Classic sidebar layout with Library/Playlists
- FFmpeg Playback: High-quality audio decoding via FFmpeg libraries
- Optional Network: Discogs/Genius for metadata (with local caching)
- Insight Engine: Track listening habits locally
Requirements
FFmpeg (Required for Playback)
Download from: https://github.com/BtbN/FFmpeg-Builds/releases
- Windows: Extract to
C:\ffmpeg\and addC:\ffmpeg\binto PATH - Linux:
sudo apt install ffmpeg
See docs/GETTING_STARTED.md for full setup instructions.
Building
Full Build (with FFmpeg)
go build -tags native_media -o eternal.exe ./cmd/eternal
UI Testing Build (no audio)
go build -o eternal.exe ./cmd/eternal
Usage
- Run
eternal.exe - File → Add Folder to Library (scans
~/Musicby default or select folder) - Click a track to play
- Use playback controls or Play menu
Project Structure
eternal/
├── cmd/eternal/ # Entry point
├── internal/
│ ├── library/ # Music scanning
│ ├── metadata/ # FFprobe parsing
│ ├── network/ # Discogs/Genius APIs
│ ├── playback/ # FFmpeg engine
│ ├── storage/ # SQLite
│ └── utils/ # Helpers
├── docs/ # Design docs
└── assets/ # Logo
License
MIT