github spotiflacapp/SpotiFLAC-Mobile v3.0.0
SpotiFLAC v3.0.0

latest releases: v4.8.5, v4.8.0, v4.7.1...
7 months ago

What's New

Extension System (Major Feature)

SpotiFLAC 3.0 introduces a powerful extension system that allows third-party integrations for metadata, downloads, and more.

Extension Store

  • Browse and install extensions directly from the app
  • New "Store" tab in bottom navigation
  • Browse by category: Metadata, Download, Utility, Lyrics, Integration
  • Search extensions by name, description, or tags
  • One-tap install, update, and uninstall
  • Offline cache for browsing without internet

Spotify Web Extension

  • Available in Extension Store - install and enable in Settings > Extensions
  • Metadata provider using Spotify's internal web player API
  • Download tracks from Daily Mix, Discover Weekly, and other personalized playlists
  • Useful when official Spotify API is rate-limited or unavailable

Extension Capabilities

  • Custom Search Providers
  • Custom URL Handlers
  • Custom Thumbnail Ratios: Square (1:1), Wide (16:9), Portrait (2:3)
  • Post-Processing Hooks: Extensions can process downloaded files
  • Quality Options: Extensions can define custom quality settings

Extension APIs

  • Full HTTP support: GET, POST, PUT, DELETE, PATCH
  • Persistent cookie jar per extension
  • Browser-like polyfills: fetch(), atob()/btoa(), TextEncoder/TextDecoder, URL/URLSearchParams
  • Storage API for persistent data
  • File API for file operations
  • HMAC-SHA1 utility for cryptographic operations

Security

  • Sandboxed JavaScript runtime (goja)
  • Permission-based access control
  • Network domain whitelisting
  • Improved credential encryption with per-installation random salt

Added

  • Album Folder Structure Setting: Option to remove artist folder from album path

    • Artist / Album (default): Albums/Artist Name/Album Name/
    • Album Only: Albums/Album Name/
  • Separate Singles Folder: Organize downloads into Albums/ and Singles/ folders

    • Based on album_type from Spotify/Deezer metadata
    • Toggle in Settings > Download > Separate Singles Folder
  • Parallel API Calls: Download URL fetching now uses parallel requests

    • Tidal: All 8 APIs requested simultaneously, first success wins
    • Qobuz: Both APIs requested simultaneously, first success wins
    • Significantly reduces download URL fetch time

UI/UX Improvements

  • Swipeable History Filters: History tab now supports swipe gestures between All, Albums, and Singles filters

    • Swipe left/right to switch between filter tabs

    • Filter chips sync with swipe position

    • Smooth edge-to-edge transition: swipe past Singles to go to Store, swipe past All to go to Home

    • Natural gesture feel - drag connects to parent navigation

    • Improved File Open Intent: Play button in History now correctly opens music players only

    • Added proper MIME type (audio/flac, audio/mpeg, etc.) when opening downloaded files

    • Prevents system from showing unrelated apps in the "Open with" dialog

Fixed

  • Fixed Tab Edge Overscroll: Home and Settings tabs now stop at edges instead of bouncing into empty space

  • Fixed Extension Duplicate Load Error: Extension loading now silently skips already-loaded extensions instead of throwing error

  • Fixed Settings Item Highlight on Swipe: Settings items no longer highlight when swiping at page edge

  • Fixed Keyboard Appearing on Tab Switch: Keyboard now auto-dismisses when swiping between tabs

  • Removed Search Source Badges: Removed "Free" and "API Key" labels from Deezer/Spotify selector in Options

  • Back Gesture Freeze on Android 13+: Fixed app freeze when using back gesture in settings

    • Added PopScope with canPop: true to all settings pages
    • Changed navigation to use PageRouteBuilder with proper slide transition
  • Bottom Overflow in Folder Organization Dialog: Fixed overflow in portrait and landscape mode

    • Made dialog scrollable with max height constraint
  • Japanese Artist Name Order: Fixed artist mismatch for Japanese names

    • "Sawano Hiroyuki" vs "Hiroyuki Sawano" now correctly matches
  • Multi-Artist Matching: Fixed artist mismatch for collaboration tracks

    • "RADWIMPS feat. Toko Miura" now matches when service only shows "Toko Miura"
  • Max Resolution Cover Download: Fixed cover not upgrading to max resolution on mobile

    • Mobile now correctly upgrades 300x300 → 640x640 → max resolution (~2000x2000)
  • EXISTS: Prefix in File Path: Fixed "File not found" error in metadata screen

    • Duplicate detection prefix now stripped before saving to history
  • Extension Search Result Parsing: Fixed "cannot unmarshal array" error

    • Go backend now handles both array and object formats from extensions
  • Store Tab Unmount Crash: Fixed "Using ref when widget is unmounted" error

  • Duplicate History Entries: Fixed duplicate entries when re-downloading same track

    • Detects existing entries by Spotify ID, Deezer ID, or ISRC
  • Permission Error Message: Fixed download showing "Song not found" when actually permission error

    • Now shows proper message: "Cannot write to folder, check storage permission"
  • Android 13+ Storage Permission: Fixed storage permission not working on Android 13+

    • Now requests both MANAGE_EXTERNAL_STORAGE and READ_MEDIA_AUDIO

Changed

  • Extension Manifest: New file permission required for file operations
    "permissions": {
      "network": ["api.example.com"],
      "storage": true,
      "file": true
    }

Technical

  • Go backend: Simplified parallel download result handling in Tidal/Qobuz
  • Go backend: Removed unused functions and fixed bit shifting warnings
  • Release workflow: Fixed duplicate --- separator in release notes

Downloads

Android

  • arm64: SpotiFLAC-v3.0.0-arm64.apk (recommended for modern devices)
  • arm32: SpotiFLAC-v3.0.0-arm32.apk (older devices)

iOS

  • iOS: SpotiFLAC-v3.0.0-ios-unsigned.ipa (sideload required)

Installation

Android: Enable "Install from unknown sources" and install the APK
iOS: Use AltStore, Sideloadly, or similar tools to sideload the IPA

arm64 arm32 iOS

Don't miss a new SpotiFLAC-Mobile release

NewReleases is sending notifications on new releases.