Skip to content

Bl4nk44/Audiovault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

239 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Audiovault

License: MIT GitHub Release GitHub Stars Docker Pulls Security monitoring by GitGuardian Snyk SonarQube Safety Checks Semgrep codecov Build Status

πŸ”— Quick Links: πŸ“– Wiki β€’ πŸ› Issues β€’ 🎯 Pull Requests β€’ πŸ’¬ Discussions β€’ 🀝 Contributing


Audiovault is a powerful, self-hosted application designed to import, manage, and download your music libraries from any major streaming platform directly to your local server. Built with performance, aesthetics, and reliability in mind.

Audiovault Dashboard

✨ Features

Extensive Platform Support

Import playlists, albums, and tracks from:

  • Spotify - Playlists, albums, liked songs, recommendations
  • YouTube - Playlists, mixes, videos, channels
  • Deezer - Native search, artist profiles, playlists
  • SoundCloud - Tracks, playlists, user libraries
  • Apple Music - Playlists, library, recommendations
  • Tidal - Playlists, favorites, discovery
  • Amazon Music - Playlists, library, recommendations

Robust Fallback System

Never miss a track. If a download fails (e.g., due to geo-restrictions or broken links), Audiovault automatically:

  1. Tries alternative search queries (Official Audio, Lyrics Video)
  2. Searches cross-platform (e.g., falls back to SoundCloud if YouTube fails)
  3. Uses proxies (Invidious) to bypass region locks

Watchlist & Automation

  • Auto-Sync: Background scheduler checks for new tracks every 60 minutes
  • Safe Purge: Automatically removes local tracks that were deleted from remote playlists (with specific user approval & dry-run safety)
  • Smart De-duplication: Prevents duplicate downloads by checking both ID3 tags and internal database history
  • Universal Search: Unified search bar for all supported providers

Audio Quality Options

  • MP3: 128kbps, 192kbps, 320kbps
  • FLAC: Lossless audio for audiophiles
  • FLAC: Lossless audio for audiophiles
  • Automatic format selection based on user preferences

🎡 Last.fm Integration

  • Scrobbling: Automatically sync your listening history to Last.fm
  • Recommendations: Personalized track suggestions based on your taste
  • Integration: Easy setup with OAuth connection
  • Read the Setup Guide

    Note: When creating your API key, use http://localhost:2137/recommendations as the Callback URL.

Personal Streaming Server

Turn Audiovault into your personal Spotify.

  • Subsonic API Support: Native implementation of the Subsonic API (v1.16.1)

    Sonixd Amperfy

  • Mobile Apps: Stream your library to your phone using Symfonium, Amperfy, DSub, or any Subsonic-compatible player
  • Remote Access: Works seamlessly with Tailscale for secure remote streaming without port forwarding
  • Legacy Auth: REQUIRED for most clients. Enable "Legacy Authentication" or "Use plaintext password" in your app settings (Amperfy, Symfonium).

Redesigned Library

  • Hierarchical View: Browse by Service β†’ Playlist β†’ Tracks
  • Folders: Organizational structure that keeps your library clean
  • Management: Rename files, edit metadata, and manage storage directly from the UI
  • Rescan: Detects manually added files or fixes missing entries

Modern UI/UX

  • Glassmorphism: Stunning, responsive interface powered by React & TailwindCSS
  • Neon Aesthetics: New "Liquid Neon" styling with glowing borders and glass effects
  • Audio Visualizer: Real-time frequency equalizer synced to music playback
  • Themes: Deep Void (Default), Midnight, Ocean, Forest, Sunset, Neon
  • Feedback: Real-time progress updates via WebSocket notifications
  • i18n: Multi-language support (English, Polish, German, French, Spanish)

πŸ› οΈ Tech Stack

Component Technology
Backend Python, FastAPI, yt-dlp, SQLAlchemy (Async), APScheduler
Frontend React, TypeScript, TailwindCSS v4, Framer Motion
Database SQLite (default) / PostgreSQL (supported), Redis (Caching)
Infrastructure Docker & Docker Compose

πŸš€ Getting Started

The recommended way to run Audiovault is via Docker.

Installation

  1. Clone the repository:

    git clone https://github.com/Bl4nk44/Audiovault.git
    cd Audiovault
  2. Configure Environment: Rename .env.example to .env and fill in the necessary secrets.

    cp .env.example .env
  3. Run with Docker:

    docker compose up -d --build
    • Frontend: http://localhost:2137
    • Backend API: http://localhost:8000/docs

    Note: On first launch, a random admin password will be generated and printed to the container logs (docker compose logs backend). To set a custom password, add ADMIN_PASSWORD=yourpassword to your .env file before starting. Default username: admin

Reverse Proxy Configuration

Audiovault supports running behind reverse proxies (Nginx, Traefik, etc.) out of the box.

  1. Environment Variables: Set ALLOWED_HOSTS and BACKEND_CORS_ORIGINS in your .env file to match your domain:

    ALLOWED_HOSTS=audiovault.example.com,localhost
    BACKEND_CORS_ORIGINS=https://audiovault.example.com

    Docker Configuration: If running behind a proxy or in a custom Docker network, ensure the Frontend container knows how to reach the Backend:

    # In docker-compose.yml or env:
    BACKEND_URL=http://audiovault-backend:8000
  2. Docker Setup: The Docker image is already configured to trust X-Forwarded-* headers from any proxy via uvicorn.middleware.proxy_headers. Ensure your proxy passes these headers correctly.

πŸ“š Documentation

For detailed guides and documentation, please visit our Wiki:

πŸ› Support & Issues

🀝 Contributing

Contributions are welcome! Please read our Contributing Guide to learn about:

  • How to report bugs and suggest features
  • Development setup and workflow
  • Code style guidelines
  • Testing requirements
  • Pull request process

Quick contribution process:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Commit your changes: git commit -m 'feat: Add my feature'
  4. Push to the branch: git push origin feature/my-feature
  5. Open a Pull Request

πŸ”’ Security

If you discover a security vulnerability, please email bl4nk44@pm.me instead of using the issue tracker.

For more information, see our Security Policy.

πŸ“ Code of Conduct

This project adheres to a Code of Conduct. By participating, you are expected to uphold this code.

πŸ“œ License

Distributed under the MIT License. See LICENSE for more information.

🌟 Acknowledgments

  • yt-dlp - Powerful video/audio downloader
  • FastAPI - Modern Python web framework
  • React - JavaScript library for building UIs
  • TailwindCSS - Utility-first CSS framework
  • SQLAlchemy - Python SQL toolkit