Skip to content

ACRZeuss/SpotiFLAC-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎵 SpotiFLAC Server (WebUI)

A lightweight, modern, and asynchronous web interface for the SpotiFLAC command-line tool. Built with Python, Flask, and Docker, this project is designed specifically to seamlessly integrate with media servers like Navidrome, Plex, or Jellyfin via Runtipi.

UI Preview Localization Docker Python

Preview

Preview

✨ Features

  • Modern Web Interface: A beautifully crafted, responsive dark theme inspired by modern music streaming platforms.
  • Bilingual Support (i18n): Instantly switch between English and Turkish UI directly from the web interface.
  • Asynchronous Downloads: Non-blocking background downloads. You can queue a massive playlist, and the UI will poll the status without browser timeouts.
  • Production Ready: Powered by Gunicorn (multi-threaded) to handle requests reliably and efficiently.
  • Built-in Library Viewer: View your downloaded audio files directly from the web interface without needing to SSH into your server.
  • Customizable Settings: Choose your preferred source service (Tidal, Qobuz, Deezer, Amazon) and output folder structure (e.g., Artist/Album layout) via a sleek dropdown menu.
  • Media Server Friendly: Perfect for feeding high-fidelity FLAC files directly into your self-hosted music library.
  • Runtipi Optimized: Includes necessary configurations to run effortlessly as a Custom App behind Runtipi's reverse proxy.

🚀 Installation

Option A: Deployment via Runtipi (Recommended)

If you are using Runtipi to manage your home server, follow these steps to integrate the app smoothly:

  1. Clone the repository to your server:

    git clone https://github.com/ACRZeuss/spotiflac-server.git
    cd spotiflac-server
  2. Build the Docker image locally:

    docker build -t spotiflac-server:latest .

    Add as a Custom App in Runtipi:

    1. Open your Runtipi Dashboard -> App Store -> Add Custom App.
    2. Name it spotiflac.
    3. Paste the following YAML configuration:
    x-runtipi:
      schema_version: 2
    
    services:
      spotiflac:
      build: .
      image: spotiflac-server:latest
      container_name: spotiflac-server
      restart: unless-stopped
      x-runtipi:
        internal_port: 5000
        is_main: true
      volumes:
        # Runtipi'nin global medya klasörüne bağlıyoruz
        - ${MEDIA_DIR}/Music:/downloads
        - ${MEDIA_DIR}/Music:/app/downloads 
      environment:
        - PUID=1000
        - PGID=1000
        - TZ=Europe/Istanbul

    Click Install. You can now access SpotiFLAC Server directly from your Runtipi dashboard!

Option B: Standalone Docker Compose

If you are not using Runtipi, you can run it using standard Docker Compose:

  1. Clone the repository:

    git clone https://github.com/ACRZeuss/spotiflac-server.git
    cd spotiflac-server
  2. Edit docker-compose.yml (Optional):

    Change the volume path from /opt/runtipi/media/music to your preferred local music directory.

    Build and start the container:

    docker compose up -d --build

    Access the web interface at http://<your-server-ip>:5000.

⚙️ Usage

  1. Open the web interface.

  2. Select your preferred language (EN/TR) from the top right corner.

  3. Expand the Download Settings panel to select your source (Tidal, Qobuz, etc.) and folder layout.

  4. Paste a Spotify track, album, or playlist URL into the input field.

  5. Click Download.

  6. The UI will display the live progress. Once completed, the files will automatically appear in the Library section below and sync with your media server.

🛠️ Tech Stack

  • Backend: Python, Flask, Gunicorn

  • Frontend: HTML5, CSS3, Vanilla JS (AJAX Polling, DOM Manipulation)

  • Core Downloader: SpotiFLAC (PyPI)

  • Audio Processing: FFmpeg

  • Containerization: Docker

FAQ

Is this software free?

Yes. This software is completely free. You do not need an account, login, or subscription. All you need is an internet connection.

Can using this software get my Spotify account suspended or banned?

No. This software has no connection to your Spotify account. Spotify data is obtained through reverse engineering of the Spotify Web Player, not through user authentication.

Where does the audio come from?

The audio is fetched using third-party APIs.

Why does metadata fetching sometimes fail?

This usually happens because your IP address has been rate-limited. You can wait and try again later, or use a VPN to bypass the rate limit.

Why does Windows Defender or antivirus flag or delete the file?

This is a false positive. It likely happens because the executable is compressed using UPX.

If you are concerned, you can fork the repository and build the software yourself from source.

Want to support the project?

If this software is useful and brings you value, consider supporting the project by buying me a coffee. Your support helps keep development going.

Other projects

Download music in true lossless FLAC from Tidal, Qobuz & Amazon Music available for Windows, macOS & Linux.

Get Spotify tracks in true FLAC from Tidal, Qobuz, Amazon Music & Deezer — no account required.

Get Spotify tracks, albums, playlists and discography in MP3 and FLAC.

Download Spotify Tracks, Albums, Playlists as MP3/OGG/Opus with High Quality.

SpotiFLAC for Android & iOS — maintained by @zarzet

SpotiFLAC for command-line environments — maintained by @Nizarberyan

SpotiFLAC Python library for SpotiFLAC integration — maintained by @ShuShuzinhuu

📝 License

This project is open-source. The core downloading logic belongs to the original SpotiFLAC developers. This repository provides a modern, containerized Web UI wrapper to enhance the user experience and simplify deployments on home servers.

💰 You can help me by Donating

BuyMeACoffee

About

A modern, asynchronous Web UI for the SpotiFLAC CLI tool. Built with Python and Docker, designed for seamless integration with home media servers like Navidrome and Runtipi.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors