SpotiFLAC Mobile v4.8.0


SpotiFLAC Mobile v4.8.0

SHARE THIS POST
XRedditTelegramWhatsApp

Follow Us!


Unirse al canal de Telegram

SpotiFLAC Mobile v4.8.0
Requirements: 7.0+
Overview: music in FLAC format without quality loss from Deezer, Tidal, Qobuz, and Amazon Music.

Image

Mobile music utility built with Flutter and Go. High-quality audio management for your personal library. No ads, no subscription.

✓ High-quality sound selection
✓ Ability to download entire albums
✓ Ability to create playlists
✓ Many settings
✓ Embedding lyrics in FLAC files

✨Features
Everything you need to build a high-quality music library on your phone.

True Lossless FLAC
Download in up to 24-bit/192kHz quality. No transcoding, no quality loss. Pure studio-grade audio files.

Multiple Providers
Download from Tidal, Qobuz, Deezer, and more via extensions. Automatic fallback if a source is unavailable.

Extensions
Community-built extensions add new music sources and features. Install from the built-in Store with one tap.

Search by Link or Name
Paste a Spotify, Tidal, Qobuz, or Deezer link. Or just search by song name — it handles the rest.

Batch & Playlist Download
Download entire albums and playlists at once. Smart queue management with concurrent downloads.

Rich Metadata
Full metadata embedding — album art, lyrics, genre, label, copyright, and more. All embedded in the FLAC file.

Extensions let the community add new music sources and features without waiting for app updates. When a streaming service API changes or a new source becomes available, extensions can be updated independently.

➠ Installing Extensions
Open the “Repo” (Store) tab in the app
Enter https://github.com/zarzet/SpotiFLAC-Extension/tree/main/extensions into the “Repository URL” and press on “Add Repository” button
Browse and install extensions with one tap
Or download a .spotiflac-ext file by clicking on it and pressing on “Raw” button and install manually via “Settings” tab > “Extensions”
Enable extensions under “Settings” tab > “Extensions” > “Installed Extensions”
Configure extension settings if needed
Set provider priority under “Settings” tab > “Extensions” > “Provider Priority”

Developing Extensions

ℹ️ Note
Want to build your own extension? Extension Development Guide has everything you need.

➡ Untouched apk with Original Hash Signature
➡ Certificate MD5 digest: e316523c63417a22727c732c524df0a8
➡ No changes were applied
➡ CPU architectures: arm64-v8a, armeabi-v7a
➡ Screen DPIs: 160dpi, 240dpi, 320dpi, 480dpi, 640dpi

What’s New:
New Features
● ui: Smooth download progress updates
● download: Preserve quality variants
● convert: Optionally retain original files
● convert: Support same-format lossless re-encoding
● ui: Shimmer skeletons for the home feed artist/album sections
● player: ReplayGain/R128 volume normalization for the built-in player
● net: DoH fallback, uTLS pool flush on cleanup, retry hardening
● ui: Crossfade the app content on orientation and rail-breakpoint changes
● settings: Toggle to disable Hero animations
● tablet: Clamp remaining screens – settings, queue lists, wizard
● player: Swipe the mini player away to stop playback
● ui: Surface the audio-analysis cache in cache management
● tablet: Navigation rail, landscape now-playing, clamped track lists
● tablet: Clamp dialogs and sheets, adaptive selection-card columns
● ui: Real headers on extension loading screens so hero covers fly on open
● metadata: Album-style header with centered square cover
● player: Fade the sheet in place on close, letting only the cover travel
● ui: Crossfade skeleton into content on extension detail screens
● ui: Shared-element hero covers from search and recents to detail screens
● player: Expand transition from mini player with drag-to-dismiss
● ui: Fluid bouncing scroll physics on capable devices
● android: Request highest display refresh rate at current resolution
● download: Resume interrupted downloads via Range/If-Range
● update: Force update when 3+ stable releases behind
● artist: Shimmer skeleton for album and popular-track cover placeholders
● ui: Add shared widgets, utils, and models for deduplicated screens
● metadata: Route MP3, Ogg, and M4A edits to the native writers
● metadata: Add native Ogg/Opus vorbis comment editor
● metadata: Add native M4A ilst tag editor
● metadata: Add native MP3 ID3v2 tag editor
● ios: Run verification and OAuth through ASWebAuthenticationSession
● downloads: Support up to 3 concurrent downloads
● downloads: Detect lost SAF grant and offer folder re-selection
● metadata: Surface explicit content flag with [E] badge
● extensions: Complete signed-session grants from help dialog


Bug Fixes
● navigation: Open download queue from snackbar actions
● extensions: Preserve explicit track metadata
● lyrics: Reject mismatched search results
● native-worker: Harden background queue handling
● analysis: Render full-track spectrograms
● library: Persist records before download completion
● library: Preserve downloaded file records
● notifications: Restore verification alert sound
● android: Sanitize restored installation state
● queue: Clarify and coalesce verification progress
● download: Accelerate verified extension resumes
● download: Persist and reconcile history reliably
● convert: Simplify output names and harden writes
● metadata: Resolve audio format and local artwork
● queue: Bridge completed downloads into library
● ui: Honor disabled hero animations
● ui: Restore plain loading skeleton on extension album screen
● logging: Keep cursors valid after rollover
● extensions: Bound file reads
● extensions: Bound cookie runtime state
● download: Name variants by measured quality
● queue: Open completed batch track metadata
● reenrich: Always clean temporary artifacts
● player: Prevent stale playback and clean SAF temps
● extensions: Harden package and runtime lifecycle
● extensions: Surface swallowed signed-session verification in provider fallback
● metadata: Send Accept-Language on Deezer requests so names follow the app language
● download: Skip AC-4 repair for non-MP4 decrypt output
● ui: Fetch covers via the Go backend instead of raw HttpClient
● go: Build with Go 1.26.5 for aligned cgo frames, safe on arm32
● shell: Rail overflow on short viewports and tab reset on rotation
● player: Don’t auto-resume after interruption while backgrounded
● reenrich: Keep release identity when the matched track is from another album
● extensions: Remove extension data dir on uninstall
● ui: Match loading-header placeholder heights to the loaded rows
● ui: Hero continuity for motion (Apple Music) headers
● ui: Defer loaded-screen swap until the push transition settles
● playlists: Keep imported playlist track order (#482)
● player: Pause motion header video when its screen is hidden
● player: Dissolve the sheet while it slides down on close
● artist: Drop blurBackground stretch mode on the header
● player: Fade Now Playing content with the expand transition
● network: Harden audit findings in transport, uTLS pool, and cover cache
● queue: Restore pre-refactor guarantees found by commit audit
● metadata: Shift stco/co64 chunk offsets when the ilst resizes
● finalizer: Stage conversion outputs and sync SAF streams
● download: Fsync staged downloads before the promote rename
● metadata: Write FLAC, M4A, and AC-4 tags atomically with fsync
● metadata: Stop the endless FLAC-write failures on misnamed files
● queue: Keep create-playlist label at natural size
● queue: Prevent header row overflow on narrow screens
● android: Stop double-destroying the shared audio_service engine
● renovate: Target main instead of nonexistent dev branch
● native-worker: Keep batches and retries intact across seam races
● downloads: Stage direct-mode outputs and serialize same-path writes
● saf: Stage all SAF downloads, serialize same-name writes, safe replace
● native-worker: Recover from dead runs and make queue replacement safe
● native-worker: Never delete a published download over bookkeeping failures
● extensions: Serialize storage/credential/salt file writes across runtimes
● queue: Keep just-completed tracks pinned while the batch is running
● downloads: Flush queue persistence when app is backgrounded
● downloads: Defer verification challenge until app is foregrounded
● extensions: Expire stale pending auth challenges
● metadata: Close FLAC file handles after parsing
● ios: Create security-scoped bookmark inside native folder picker session
● store: Harden extension repo registry handling
● download: Suffix batch filenames with track number when needed
● ui: Use State’s context instead of stale parameter in CSV import (#460) (#460) by @A831ARD0

Performance
● go: Add runtime metrics and benchmarks
● dedupe: Batch isrc lookups under one lock
● library: Scan flac and m4a in one pass
● extensions: Invoke goja providers directly
● memory: Drop disposable caches on pressure
● cache: Defer cover cache maintenance
● queue: Persist and index incremental updates
● playback: Batch local playlist resolution
● shell: Gate backdrop blur by device capability
● startup: Bootstrap persisted app state
● library: Trim startup lookup index
● library: Streamline search and grouped counts
● player: Isolate high-frequency playback updates
● library: Lazy-load collections and dispose queries
● player: Narrow now-playing queue sheet to shuffle-mode selector
● embed: Native-first tag writes and overlapped fetches in finalization
● ui: Skip the shell backdrop blur on low-end devices
● db: Enable incremental auto-vacuum so cleared data shrinks the file
● android: Sweep stale cache files, relax scan poll, debounce worker snapshots
● disk: Byte-cap the cover disk cache with an init sweep
● net: Cache update-check and remote-config fetches with TTL and ETag
● net: Fetch embed covers once per release instead of per track
● analysis: Stream PCM from disk instead of buffering the whole track
● images: Decode completion-bridge cover precache at cell size
● scan: Stream SAF library scan results to a spill file
● memory: Release Go heap and decoded image caches on OS memory pressure
● lyrics: Bound the in-memory lyrics cache
● extensions: Reuse isolated goja download runtimes via per-extension pool
● ogg: Stream tag rewrites instead of buffering every page
● m4a: Stream tag rewrites instead of buffering the whole file
● Hoist per-call regex compiles to package level
● network: Enable gzip on the metadata transport
● tls: Enable session resumption on the stdlib transports
● network: Mobile stability and data-usage fixes from network audit
● native-worker: Stop shipping the full item payload on every poll
● dedupe: Make the ISRC index incremental, cover-free, and batch-stable

Refactoring
● library-scan: Reuse applyAudioMetadataToScan for M4A/MP3/APE
● settings: Share the provider-priority reorder page
● providers: Remove dead lookup/history APIs and dedup provider resolution
● search: Remove unreachable artist/album/playlist result path
● reenrich: Share the FFmpeg re-enrich apply flow
● backend: Drop dead exports/availability path and dedup Go tag writers
● library: Drop dead pre-pagination filter pipeline in queue tab
● Rename extension store bridge ABI to repo across all layers
● dart: Rename store provider and screen folder to repo
● go: Rename extension store files and internals to repo
● queue: Split download_queue_provider into concern part files
● queue: Extract shared payload, history, and polling helpers
● Unify extension call skeleton and download finalization paths
● screens: Migrate remaining screens to shared header and selection components
● screens: Share album-screen scaffolding and track flows
● ui: Consolidate duplicated sheets, rows, and cover widgets
● Extract shared helpers for repeated low-level patterns
● Remove dead code across Dart and Go layers
● playlist: Parse tracks via Track.fromBackendMap
● screens: Migrate playlist and library-folder headers to AlbumDetailHeader
● screens: Unify album header, selection UI, and batch engine
● models: Add Track.fromBackendMap and copyWith, dedupe track parsing
● settings: Replace 18 inline collapsing headers with SettingsSliverAppBar
● android: Consolidate SAF and filename helpers in SafDownloadHandler
● backend: Dedupe response builders and MusicBrainz fetch
● lyrics: Classify provider errors by type, not message text
● Dispatch on MusicServices constants instead of raw service ids
● metadata: Split _TrackMetadataScreenState into part files
● queue: Split _QueueTabState method clusters into part files
● ui: Share legacy provider-id resource helpers
● ui: Merge duplicated album/playlist track rows into TrackListTile
● providers: Split download history out of download_queue_provider
● backend: Split extension_providers.go into themed files
● backend: Split exports.go into themed files
● ui: Extract shared widgets, drop dead screens

Documentation
● contributing: Fix branch refs and build steps, add PR template
● Align contributing guide with actual branch and Riverpod pattern (#461) (#461) by @A831ARD0

Styling
● ui: Unify header meta rows on the dot-separated album style

Testing
● native-worker: Add Android regression gates
● backend: Use a valid descriptor in fd coverage
● extensions: Skip POSIX permission assertion on Windows
● download: Cover playlist_position in payload serialization test
● extensions: Add coverage for signed session HMAC auth flow (#462) (#462) by @A831ARD0

Dependencies
● deps: Update Flutter, Go, and native dependencies
● deps: Upgrade Gradle to 9.6.1, Kotlin to 2.4.0, lifecycle to 2.11.0
● deps: Update Go modules
● deps: Upgrade Flutter packages

Chores
● settings: Graduate native download worker
● settings: Graduate backup and restore from beta
● release: Bump version to 4.8.0
● ci: Drop the amd64 gomobile slice abiFilters already strips
● Track latest stable Flutter in all workflows
● Cache pub deps, filter jobs by path, and speed up release builds
● Bump version to 4.8.0-beta.1; fix ICU plural syntax in ar/fr
● Bump version to 4.8.0-beta.1
● backend: Align merged test file and fd stubs with lint conventions
● Enforce gofmt on the Go backend
● backend: Modernize interface{} to any, silence lint noise
● i18n: Localize folder-access download errors, drop em dashes
● Run flutter analyze/test and go vet/test on pull requests
● Update AltStore source to v4.7.1 by @github-actions[bot]

Revert
● ui: Drop hero cover flights from home/search to detail screens

This app has no advertisements

More Info:
https://spotiflac.zarz.moe
https://github.com/zarzet/SpotiFLAC-Mobile

Download Instructions:
arm64-v8a, armeabi-v7a:
https://ouo.io/ltreUr

Mirrors:
https://ouo.io/taqd9J
https://ouo.io/Dh8Yma

armeabi-v7a:
https://ouo.io/LVL6669

Mirrors:
https://ouo.io/ONcm8f0
https://ouo.io/dBR3u7

arm64-v8a:
https://ouo.io/4Xt305K

Mirrors:
https://ouo.io/ZMDON7
https://ouo.io/qzTK5u

Telegram

SHARE THIS POST
XRedditTelegramWhatsApp
Tags Android, apk, Apps