Skip to content

barthofu/soundome

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Soundome

Soundome is a Rust monorepo for building and maintaining a personal music library from streaming URLs and local files. The current implementation focuses on fetching metadata, enriching tracks with MusicBrainz, downloading audio from a provider, tagging files, organizing them on disk, and persisting the result in SQLite.

The project is still work in progress. Some surfaces are production-shaped, while others are scaffolds or partial implementations. The documentation in this repository is therefore organized around what is already wired in code versus what is still planned.

Current scope

  • Import tracks and playlists from supported source URLs.
  • Enrich metadata before the file is finalized.
  • Download audio to a staging area, then tag and move it into the library.
  • Deduplicate by source URL first, then by content and quality.
  • Persist tracks, albums, artists, playlists, and references in SQLite.
  • Review partial metadata matches from the web admin interface.
  • Route outbound HTTP traffic through the shared proxy layer when the integration supports it.

Architecture at a glance

soundome/
├── apps/
│   ├── cli/          # CLI entry point (minimal / WIP)
│   ├── server/       # Rocket API, Swagger, static file serving
│   └── web/          # Svelte admin application built into data/web/
├── packages/
│   ├── ai/           # OpenRouter client and prompt helpers
│   ├── config/       # config.toml + env overlay
│   ├── database/     # Diesel repositories and migrations
│   ├── domain/       # Application services and orchestration
│   ├── downloader/   # Audio providers
│   ├── fetcher/      # Source metadata adapters
│   ├── organizer/    # Filesystem placement
│   ├── shared/       # Models, errors, HTTP helpers, logging
│   └── tagger/       # MusicBrainz enrichment and file tagging
└── docs/             # Product, architecture, workflow, and operational docs

Documentation map

Start with docs/README.md.

Development

The full development and configuration guides live in:

Useful workspace commands:

pnpm cargo:test
pnpm cargo:clippy
pnpm cargo:fmt
pnpm web:check

About

Soundome is a self-hosted tool that centralizes, downloads, tags, and automatically organizes your music library from multiple sources (Spotify, SoundCloud, YouTube…). It handles metadata, prevents duplicates, keeps track of original sources, and provides a web interface for manual corrections.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors