Skip to content

KRSHH/Sonosano

Repository files navigation

Preserve, Archive, share, analyse and enjoy high quality music

Download

Windows Download macOS Download Linux Download

Build From Source

But I hate Electron

Running without Electron (Web UI)

  1. Run the backend:

    python backend/src/main.py or run the backend exec
  2. Open your browser and go to sonosano.krshh.com, I have tested on four browsers - Edge, Chrome support it and Safari, Brave don't

  3. Enjoy, and please don't spam about framework

Prerequisites

  • Node.js (v18+ recommended) and npm
  • Python (v3.9+ recommended) and pip

Installation & Running

  1. Clone the repository:

    git clone https://github.com/KRSHH/Sonosano.git
    cd Sonosano
  2. Install frontend dependencies:

    npm install
  3. Set up the Python backend:

    # Create and activate a virtual environment (recommended)
    python -m venv backend/venv
    
    # On macOS/Linux:
    source backend/venv/bin/activate
    
    # On Windows:
    backend\venv\Scripts\activate
    
    # Install backend dependencies
    pip install -r backend/requirements.txt
  4. Run the backend:

    python backend/src/main.py
  5. Run the frontend:

    npm run dev

Features

Library
Search
Lyrics
Library
Playlist

FAQ

Does this app stream from peers?

No, It does not stream from peers, it streams from the user himself after the file is saved.


Will there only be one P2P source?

No, making it a large P2P source aggregator is the grand plan.


Which files does this app reshare back to the P2P network?

Every single one of the file that you download or put in your library gets reshared back.


How is it different from any other P2P client?

It's not, infact, it uses well known and maintained Nicotine+ in backend.


Can it replace my current music streaming service/provider?

No, this is not a replacement, they are simply a lot more convenient, thats why only enthusiasts actually stick around.


How accurate is the fake flac analyser?

The algo works well with low effort fake flac (which are the most popular type of fakes) and fails with old files but, it just tags the audio and doesn't actually remove them so that you can see for yourself too.


How big is the library?

Depends. larger than any other service, but you might find things there that you can't here.


Do I have to setup anything else to use the app?

No, besides network requirments, its standalone.


What does Sonosano mean?

Pure/healthy Sound, name inspired from 20th century grape bricks.

The Sonosano Team

Development

KRSHH KRSHH - Unemployed af (email in bio) made the app

Community

Kudzu Kudzu (Rohan Dayal) - The Real G DAY ONE, Setup discord
FxGaming FxGaming - Killer fish from sandiego spotted bugs and support

Contributing

Read this before contributing

  • Backend-First Approach: All the core logic, tasks go in python backend, electron is just for UI and nothing else.

  • Safety: Do not mention or hardcode references to specific commercial music services in the code, UI text, or documentation except the ones I did (I'll remove it later anyways). The application should remain a generic music discovery and management tool.

  • UI & UX Consistency: This is a very familiar UI, so you already know where to take the designs from.

  • Code Quality: Follow the existing coding style and conventions. Use TypeScript for the frontend and Python type hints for the backend to maintain code quality and clarity. Add comments for any complex logic.

Let's Dive Deep.


I. — The Nature of the Tool

It is important to note—this application is not a content service providing you with files, but a tool—a simple client for accessing peer-to-peer networks.

It is not a curated library filled by us—but a gateway to a vast, user-driven ecosystem filled by others.

I do not host, provide, or endorse any of the content you may find—this is not a repository holding data, but merely a conduit—connecting you to it.


II. — The Burden of the User

As a result—the responsibility for your actions does not lie with the developers, but rests solely and entirely upon YOU—and you alone.

This application is not a shield from copyright law—but a powerful instrument that demands your own strict legal compliance within your jurisdiction.

I am not the arbiters of your downloads—but you are the final and only judge of your own conduct. Every search, every download, every share—is not our decision, but yours.


III. — The Inevitable Conclusion

In the event of any consequence—legal or otherwise—liability is not a shared concept that I partake in, but a personal burden you accept in full by using this software.

In conclusion—this is not an invitation to act without thought, but an explicit demand that you act with full awareness of your own responsibilities.


— Proceed Accordingly. —