spotiflacapp/SpotiFLAC-MobilePublic

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

AI summary: An open-source mobile music utility for managing and playing lossless FLAC audio with extension support.

Stars
6.6K
+46 today
Forks
309
Watchers
65
Open issues
101
Open PRs
7
Contributors
~13
Commits
2.6K
Branches
5

DartMITCreated Dec 31, 2025Last push 1d agoLatest release v5.0.5+159 stars this week+443 this month

Quick answers

What is SpotiFLAC-Mobile?
An open-source mobile music utility for managing and playing lossless FLAC audio with extension support.
What does SpotiFLAC-Mobile do?
SpotiFLAC Mobile is an ad-free, subscription-free mobile application built with Flutter and Go for high-quality, local audio management. It provides a clean, modern interface for users to build and manage a personal library of lossless FLAC music, completely bypassing commercial streaming services. Available on both Android and iOS, it leverages a high-performance Go backend for fast scanning and playback without draining the battery or requiring internet access. The app features a decentralized extension repository system, allowing users to install community-developed plugins to add new music sources and features dynamically. This serves as a privacy-respecting alternative for audiophiles who demand complete control over their high-fidelity collections.
Who is SpotiFLAC-Mobile for?
Music lovers, audiophiles, and privacy advocates who want a high-quality, local-only music player for their mobile devices. It is especially suited for users who prefer managing their own media files over renting them from streaming services.
How do I get started with SpotiFLAC-Mobile?
Open the Store tab in the app and enter an Extension Repository URL to browse available extensions.
How popular is SpotiFLAC-Mobile on GitHub?
spotiflacapp/SpotiFLAC-Mobile has 6,590 stars and 309 forks on GitHub, and gained 159 stars in the last 7 days.
What license does SpotiFLAC-Mobile use?
spotiflacapp/SpotiFLAC-Mobile is released under the MIT license.

Star history

since Jul 29, 2026
02K4K6KJul 2026Aug 2026Sep 2026Oct 2026
6.6K stars as of Oct 3, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Update history

1 recorded
  • Oct 4, 2026Previously tracked as zarzet/SpotiFLAC-Mobile; its 1 daily snapshot and 1 trending appearance were merged into this profile. Stars: 5,549 on 2026-07-29 under the old name, 6,590 on 2026-10-03 (+1,041).

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 26 commits2026-01-02: 26 commits2026-01-03: 8 commits2026-01-04: 6 commits2026-01-05: 6 commits2026-01-06: 3 commits2026-01-07: 10 commits2026-01-08: 5 commits2026-01-09: 8 commits2026-01-10: 9 commits2026-01-11: 5 commits2026-01-12: 20 commits2026-01-13: 16 commits2026-01-14: 6 commits2026-01-15: 2 commits2026-01-16: 35 commits2026-01-17: 25 commits2026-01-18: 23 commits2026-01-19: 23 commits2026-01-20: 38 commits2026-01-21: 38 commits2026-01-22: 65 commits2026-01-23: 3 commits2026-01-24: 12 commits2026-01-25: 2 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 1 commit2026-01-29: 0 commits2026-01-30: 1 commit2026-01-31: 72 commits2026-02-01: 24 commits2026-02-02: 17 commits2026-02-03: 13 commits2026-02-04: 28 commits2026-02-05: 3 commits2026-02-06: 4 commits2026-02-07: 50 commits2026-02-08: 25 commits2026-02-09: 12 commits2026-02-10: 28 commits2026-02-11: 36 commits2026-02-12: 14 commits2026-02-13: 6 commits2026-02-14: 20 commits2026-02-15: 1 commit2026-02-16: 1 commit2026-02-17: 6 commits2026-02-18: 18 commits2026-02-19: 9 commits2026-02-20: 2 commits2026-02-21: 1 commit2026-02-22: 14 commits2026-02-23: 2 commits2026-02-24: 0 commits2026-02-25: 1 commit2026-02-26: 0 commits2026-02-27: 14 commits2026-02-28: 1 commit2026-03-01: 0 commits2026-03-02: 2 commits2026-03-03: 0 commits2026-03-04: 14 commits2026-03-05: 2 commits2026-03-06: 18 commits2026-03-07: 1 commit2026-03-08: 5 commits2026-03-09: 13 commits2026-03-10: 16 commits2026-03-11: 24 commits2026-03-12: 3 commits2026-03-13: 1 commit2026-03-14: 17 commits2026-03-15: 25 commits2026-03-16: 39 commits2026-03-17: 8 commits2026-03-18: 8 commits2026-03-19: 0 commits2026-03-20: 2 commits2026-03-21: 0 commits2026-03-22: 8 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 25 commits2026-03-26: 11 commits2026-03-27: 13 commits2026-03-28: 0 commits2026-03-29: 13 commits2026-03-30: 6 commits2026-03-31: 4 commits2026-04-01: 2 commits2026-04-02: 6 commits2026-04-03: 8 commits2026-04-04: 13 commits2026-04-05: 0 commits2026-04-06: 8 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 3 commits2026-04-10: 0 commits2026-04-11: 3 commits2026-04-12: 3 commits2026-04-13: 10 commits2026-04-14: 15 commits2026-04-15: 0 commits2026-04-16: 2 commits2026-04-17: 1 commit2026-04-18: 34 commits2026-04-19: 5 commits2026-04-20: 4 commits2026-04-21: 0 commits2026-04-22: 1 commit2026-04-23: 5 commits2026-04-24: 4 commits2026-04-25: 0 commits2026-04-26: 1 commit2026-04-27: 2 commits2026-04-28: 3 commits2026-04-29: 1 commit2026-04-30: 0 commits2026-05-01: 4 commits2026-05-02: 9 commits2026-05-03: 35 commits2026-05-04: 5 commits2026-05-05: 8 commits2026-05-06: 29 commits2026-05-07: 10 commits2026-05-08: 8 commits2026-05-09: 3 commits2026-05-10: 7 commits2026-05-11: 6 commits2026-05-12: 4 commits2026-05-13: 0 commits2026-05-14: 9 commits2026-05-15: 21 commits2026-05-16: 4 commits2026-05-17: 4 commits2026-05-18: 1 commit2026-05-19: 1 commit2026-05-20: 2 commits2026-05-21: 3 commits2026-05-22: 2 commits2026-05-23: 2 commits2026-05-24: 1 commit2026-05-25: 0 commits2026-05-26: 4 commits2026-05-27: 5 commits2026-05-28: 6 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 4 commits2026-06-01: 4 commits2026-06-02: 18 commits2026-06-03: 0 commits2026-06-04: 6 commits2026-06-05: 0 commits2026-06-06: 1 commit2026-06-07: 1 commit2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 1 commit2026-06-12: 3 commits2026-06-13: 13 commits2026-06-14: 5 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 1 commit2026-06-20: 1 commit2026-06-21: 17 commits2026-06-22: 5 commits2026-06-23: 4 commits2026-06-24: 4 commits2026-06-25: 4 commits2026-06-26: 23 commits2026-06-27: 6 commits2026-06-28: 16 commits2026-06-29: 20 commits2026-06-30: 23 commits2026-07-01: 45 commits2026-07-02: 26 commits2026-07-03: 4 commits2026-07-04: 0 commits2026-07-05: 8 commits2026-07-06: 0 commits2026-07-07: 3 commits2026-07-08: 0 commits2026-07-09: 23 commits2026-07-10: 33 commits2026-07-11: 17 commits2026-07-12: 10 commits2026-07-13: 42 commits2026-07-14: 37 commits2026-07-15: 9 commits2026-07-16: 16 commits2026-07-17: 0 commits2026-07-18: 1 commit2026-07-19: 0 commits2026-07-20: 4 commits2026-07-21: 1 commit2026-07-22: 5 commits2026-07-23: 10 commits2026-07-24: 8 commits2026-07-25: 28 commits2026-07-26: 53 commits2026-07-27: 34 commits2026-07-28: 21 commits2026-07-29: 31 commits2026-07-30: 12 commits2026-07-31: 0 commits2026-08-01: 17 commits2026-08-02: 23 commits2026-08-03: 7 commits2026-08-04: 1 commit2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 1 commit2026-08-09: 3 commits2026-08-10: 2 commits2026-08-11: 20 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 4 commits2026-08-18: 13 commits2026-08-19: 6 commits2026-08-20: 5 commits2026-08-21: 4 commits2026-08-22: 7 commits2026-08-23: 5 commits2026-08-24: 6 commits2026-08-25: 21 commits2026-08-26: 11 commits2026-08-27: 10 commits2026-08-28: 10 commits2026-08-29: 13 commits2026-08-30: 22 commits2026-08-31: 3 commits2026-09-01: 4 commits2026-09-02: 0 commits2026-09-03: 0 commits2026-09-04: 10 commits2026-09-05: 0 commits2026-09-06: 48 commits2026-09-07: 13 commits2026-09-08: 2 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 1 commit2026-09-15: 8 commits2026-09-16: 0 commits2026-09-17: 27 commits2026-09-18: 1 commit2026-09-19: 3 commits2026-09-20: 15 commits2026-09-21: 8 commits2026-09-22: 3 commits2026-09-23: 10 commits2026-09-24: 2 commits2026-09-25: 40 commits2026-09-26: 19 commits2026-09-27: 0 commits2026-09-28: 0 commits2026-09-29: 0 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
2,538 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Very active

    2,538 commits in 52 weeks

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What SpotiFLAC-Mobile does

SpotiFLAC Mobile is an ad-free, subscription-free mobile application built with Flutter and Go for high-quality, local audio management. It provides a clean, modern interface for users to build and manage a personal library of lossless FLAC music, completely bypassing commercial streaming services. Available on both Android and iOS, it leverages a high-performance Go backend for fast scanning and playback without draining the battery or requiring internet access. The app features a decentralized extension repository system, allowing users to install community-developed plugins to add new music sources and features dynamically. This serves as a privacy-respecting alternative for audiophiles who demand complete control over their high-fidelity collections.

Music lovers, audiophiles, and privacy advocates who want a high-quality, local-only music player for their mobile devices. It is especially suited for users who prefer managing their own media files over renting them from streaming services.

  • Lossless Audio Focus: Dedicated entirely to high-fidelity FLAC audio format management and uncompressed, pristine playback.
  • Cross-Platform UI: Built with Flutter to ensure a beautiful, consistent, and responsive experience across Android and iOS.
  • High-Performance Backend: Utilizes Go for incredibly fast background processing, metadata scanning, and local file handling.
  • Decentralized Extension System: Supports community-developed extensions to dynamically add new download sources without updating the core app.
  • Ad-Free Offline Experience: Completely open-source with no advertisements, telemetry, or tracking, requiring absolutely no internet connection for playback.
  • Advanced Metadata Support: Reads and cleanly displays embedded album art, lyrics, and detailed audio tags.

Where teams use it

Audiophile Music Collection

Manage large collections of high-resolution FLAC files on mobile without any quality degradation or compression.

Managing Large Local Libraries

Users with gigabytes of local music rely on the app's fast scanning to organize their tracks efficiently.

Offline Commuting

Commuters use the app to listen to their favorite albums in subway systems where internet connectivity is unavailable.

Privacy-Focused Playback

Listen to music without tracking, profiling, or algorithmic telemetry common in commercial streaming apps.

Extensible Source Integration

Users add custom extension URLs to integrate alternative, specialized music download sources directly into the app.

Getting started: Open the Store tab in the app and enter an Extension Repository URL to browse available extensions.

README

main branch

GitHub Release Crowdin

Telegram Channel Telegram Community

Screenshots


Extensions

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

  1. Open the Store tab in the app
  2. On first launch, enter an Extension Repository URL when prompted
  3. Browse and install extensions with one tap
  4. Or download a .spotiflac-ext file and install manually via Settings > Extensions
  5. Configure extension settings if needed
  6. Set provider priority under Settings > Extensions > Provider Priority

Developing Extensions

Note

Want to build your own extension? The documentation site contains the API reference.


Development

SpotiFLAC Mobile combines a Flutter/Dart UI, a Rust backend from rust_backend/, and thin Android/iOS platform bridges. Android Gradle builds the Rust native artifacts automatically. Tool versions are pinned in rust_backend/rust-toolchain.toml and rust_backend/Cargo.lock.

Start with the Contributing Guide for the development setup, project boundaries, validation commands, and pull request checklist.


Related Projects

Download music in true lossless FLAC from extension-provided sources on Windows, macOS & Linux.

Python library for SpotiFLAC integration, maintained by @BartolomeoRusso9.


FAQ

Why does the Store tab ask me to enter a URL?

Starting from version 3.8.0, SpotiFLAC Mobile uses a decentralized extension repository system. Extensions are hosted independently rather than on a built-in server, so anyone can create and host a compatible repository. Enter a repository URL in the Store tab to browse and install extensions.

Why is my download failing with "Song not found"?

The track may not be available from your enabled providers. Try enabling more providers under Settings > Extensions > Provider Priority, or install additional download extensions from the Store.

Why are some tracks downloading in lower quality?

Quality depends on what's available from the source and the installed download extension. Check each extension's quality options and service notes in the app.

Can I download playlists?

Yes! Just paste the playlist URL in the search bar. The app will fetch all tracks and queue them for download.

Why do I need to grant storage permission?

The app needs a writable destination for downloaded files. On Android, choose a folder with the system folder picker (SAF), or use the app-specific folder. If Android revokes a saved folder grant, select the folder again in Settings.

Is this app safe?

SpotiFLAC Mobile is open source, so its code and build workflows can be inspected directly in this repository.

Why is downloading not working in my country?

Some countries have restricted access to certain streaming service APIs. If downloads are failing, try using a VPN to connect through a different region.

Can I add SpotiFLAC Mobile to AltStore or SideStore?

Yes! Add the official source to receive updates directly within the app. Copy this link:

https://raw.githubusercontent.com/spotiflacapp/SpotiFLAC-Mobile/refs/heads/main/apps.json

In AltStore/SideStore, go to Browse > Sources, tap +, and paste the link.

Note

If SpotiFLAC Mobile is useful to you, consider supporting development:

Ko-fi


Contributors

Thanks to everyone who has contributed to SpotiFLAC Mobile!

We also appreciate everyone who helped with translations on Crowdin, reported bugs, suggested features, and spread the word.

Interested in contributing? Check out the Contributing Guide to get started!


API Credits

MusicDL LRCLib Paxsenix Cobalt Song.link
UniTune MusicBrainz Squigly

Disclaimer

This repository and its contents are provided strictly for educational and research purposes. The software is provided "as-is" without warranty of any kind, express or implied, as stated in the MIT License.

  • No copyrighted content is hosted, stored, mirrored, or distributed by this repository.
  • Users must ensure that their use of this software is properly authorized and complies with all applicable laws, regulations, and third-party terms of service.
  • This software is provided free of charge by the maintainer. If you paid a third party for access to this software in its original form from this repository, you may have been misled or scammed. Any redistribution or commercial use by third parties must comply with the terms of the repository license. No affiliation, endorsement, or support by the maintainer is implied unless explicitly stated in writing.
  • SpotiFLAC Mobile is an independent project. It is not affiliated with, endorsed by, or connected to any other project or version on other platforms that may share a similar name. The maintainer of this repository has no control over or responsibility for third-party projects.
  • The author(s) disclaim all liability for any direct, indirect, incidental, or consequential damages arising from the use or misuse of this software. Users assume all risk associated with its use.
  • If you are a copyright holder or authorized representative and believe this repository infringes upon your rights, please contact the maintainer with sufficient detail (including relevant URLs and proof of ownership). The matter will be promptly investigated and appropriate action will be taken, which may include removal of the referenced material.

Tip

Star the repo to get notified about all new releases directly from GitHub.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

84 total
  1. SpotiFLAC-Mobile v5.0.5v5.0.5Sep 26, 202623.3K downloads

    ### New Features - **player**: Animate circular feedback on transport buttons - **albums**: Show formatted editorial descriptions - **player**: Add Mornye media notification controls - **lyrics**: Animate live previews while scrubbing playback - **lyrics**: Add countdown dots for instrumental breaks - **lyrics**: Add subtle lift to sustained word highlights - **metadata**: Remove ReplayGain from individual and selected tracks - **lyrics**: Show songwriter and provider credits after lyrics - **concerts**: Show artwork-themed event details in app - **player**: Add native audio output controls - **artists**: Show provider-neutral upcoming concerts - **lyrics**: Animate pronunciation and translation visibility - **widgets**: Add native Android and iOS home screen players - **navigation**: Refine translucent bottom bar and search folding - **player**: Animate artwork transitions and immersive lyrics - **player**: Expand compact track action menus - **library**: Show saved animated artwork on local albums - **library**: Refine album and artist artwork headers - **player**: Scroll overflowing mini player titles and artists ### Bug Fixes - **lyrics**: Slow instrumental dot pulse - **me

  2. SpotiFLAC-Mobile v5.0.0v5.0.0Sep 23, 202641.5K downloads

    ### New Features - **onboarding**: Add theme-aware 5.0 upgrade introduction - **library**: Add Mornye browsing and contextual compact navigation - **home**: Add large featured cards for extension feeds - **mornye**: Separate Search into a circular navigation button - **profile**: Add local profiles with backup and restore - **player**: Add beat-matched AutoMix and refine Mornye navigation - **artists**: Add branded headers and incremental release loading - **mornye**: Cache motion covers and refine player and search - **ui**: Add Mornye glass theme and adaptive music player - Add opt-in Discord Rich Presence on Android - **metadata**: Display saved ReplayGain values and refresh after analysis - **backend**: Migrate production backend to Rust - **backup**: Allow selecting categories and settings-only backups ### Bug Fixes - **ci**: Audit stripped iOS archives and configure FFmpeg tests - Retry verification browser launch and failed searches - Sync lyric romanization and clear stale selection menus - **mornye**: Show track summary and update welcome branding - **metadata**: Remove nested barcode card background - **mornye**: Preserve icon meaning and use consistent settings accen

  3. SpotiFLAC-Mobile v4.9.6v4.9.6Sep 7, 2026129.8K downloads

    ### New Features - **about**: Show compiled short Git commit - **metadata**: Add safe batch editing and matching - **library**: Add bulk duplicate cleanup ### Bug Fixes - **metadata**: Preserve track tags across collection screens - **replaygain**: Report decoder failures and reject incomplete scans - **memory**: Release retired runtimes and idle download heap - **download**: Resolve missing album folders before publishing - **metadata**: Read quality from Opus in MP4 containers - **download**: Remove legacy HIGH quality conversion - **download**: Preserve native containers before legacy quality conversion - **download**: Publish converted SAF files with the final extension - **download**: Size quality picker to its content - **download**: Allow dragging the quality picker to dismiss - **library**: Retain Opus badges when bitrate is missing - **download**: Estimate sizes from track quality metadata - **download**: Compare size estimates at each quality tier - **replaygain**: Write and verify native Opus gain tags - **metadata**: Match recording IDs across inconsistent catalogs - **metadata**: Normalize artist credits and preserve recording versions - **al

  4. SpotiFLAC-Mobile v4.9.5v4.9.5Sep 1, 202671.9K downloads

    ### New Features - **lyrics**: Use direct Kugou, QQ Music, and Genius sources - **backup**: Stream versioned ZIP archives - **updater**: Resume and verify APK downloads - **player**: Add sleep timer - **resolver**: Add cross-platform fallback chain - **l10n**: Merge Crowdin translation updates (#531) ([#531](https://github.com/spotiflacapp/SpotiFLAC-Mobile/pull/531)) - **metadata**: Limit embedded cover resolution - Add file format library quality label - **library**: Add lyrics filtering and metadata actions - **extensions**: Add resilient transfer runtime ### Bug Fixes - **ios**: Handle non-optional callback binding - **build**: Hide unexported lyrics search results from gomobile - **backup**: Use compact sflb file extension - **downloads**: Hide unknown byte totals in notifications - **resolver**: Retire unavailable resolver endpoints - **player**: Handle headset media controls - **ci**: Standardize Android ARM release build - **library**: Sync track playback controls - **download**: Throttle progress diagnostics - **ci**: Harden release workflow inputs and actions - **security**: Redact secrets from exported logs - **security**: Bound cover download memory usage - **securit

  5. SpotiFLAC-Mobile v4.9.0v4.9.0Aug 24, 202673.9K downloads

    ### New Features - **library**: Add bit depth quality label mode - **metadata**: Show explicit badges in track titles - **library**: Support multiple storage folders - **metadata**: Add download attribution to comments - **metadata**: Edit release tags and render UPC barcodes - **tagging**: Write release identity tags - **extensions**: Preserve provider metadata - **filename**: Add provider traceability tags - **metadata**: Show embedded cover resolution (#510) - **playlists**: Add play actions (#506) by [@Padma-Dev-E](https://github.com/Padma-Dev-E) - **library**: Add combined quality label #511 - **metadata**: Review batch tag enrichment #511 - **logs**: Copy selected entries #511 - **search**: Save max-quality cover on long press #511 - **metadata**: Show cover dimensions and size #511 - **download**: Add automatic lossy conversion ### Bug Fixes - **ios**: Handle library scan count output - **player**: Smooth timed lyrics highlighting - **library**: Show complete quality labels - **analysis**: Reject false low spectral cutoffs - **ui**: Align explicit badges with track titles - **metadata**: Avoid duplicate explicit indicator - **metadata**: Preserve explicit advisory across

Code frequency

additions and deletions
+159.9K-159.9KWeek of 2025-12-28: +60,314 linesWeek of 2025-12-28: -37,382 linesWeek of 2026-01-04: +11,232 linesWeek of 2026-01-04: -2,172 linesWeek of 2026-01-11: +157,118 linesWeek of 2026-01-11: -43,119 linesWeek of 2026-01-18: +64,248 linesWeek of 2026-01-18: -44,237 linesWeek of 2026-01-25: +17,095 linesWeek of 2026-01-25: -23,336 linesWeek of 2026-02-01: +56,695 linesWeek of 2026-02-01: -31,126 linesWeek of 2026-02-08: +77,383 linesWeek of 2026-02-08: -29,570 linesWeek of 2026-02-15: +17,227 linesWeek of 2026-02-15: -4,376 linesWeek of 2026-02-22: +28,241 linesWeek of 2026-02-22: -4,362 linesWeek of 2026-03-01: +9,489 linesWeek of 2026-03-01: -70,761 linesWeek of 2026-03-08: +19,886 linesWeek of 2026-03-08: -13,709 linesWeek of 2026-03-15: +15,162 linesWeek of 2026-03-15: -4,098 linesWeek of 2026-03-22: +14,385 linesWeek of 2026-03-22: -15,848 linesWeek of 2026-03-29: +17,045 linesWeek of 2026-03-29: -7,375 linesWeek of 2026-04-05: +4,611 linesWeek of 2026-04-05: -1,375 linesWeek of 2026-04-12: +81,408 linesWeek of 2026-04-12: -14,214 linesWeek of 2026-04-19: +1,162 linesWeek of 2026-04-19: -644 linesWeek of 2026-04-26: +20,941 linesWeek of 2026-04-26: -9,007 linesWeek of 2026-05-03: +35,482 linesWeek of 2026-05-03: -8,210 linesWeek of 2026-05-10: +19,664 linesWeek of 2026-05-10: -1,788 linesWeek of 2026-05-17: +907 linesWeek of 2026-05-17: -524 linesWeek of 2026-05-24: +698 linesWeek of 2026-05-24: -698 linesWeek of 2026-05-31: +10,442 linesWeek of 2026-05-31: -1,700 linesWeek of 2026-06-07: +7,737 linesWeek of 2026-06-07: -3,055 linesWeek of 2026-06-14: +464 linesWeek of 2026-06-14: -72 linesWeek of 2026-06-21: +16,203 linesWeek of 2026-06-21: -15,799 linesWeek of 2026-06-28: +25,712 linesWeek of 2026-06-28: -3,607 linesWeek of 2026-07-05: +29,293 linesWeek of 2026-07-05: -28,101 linesWeek of 2026-07-12: +23,938 linesWeek of 2026-07-12: -33,498 linesWeek of 2026-07-19: +9,650 linesWeek of 2026-07-19: -7,229 linesWeek of 2026-07-26: +48,419 linesWeek of 2026-07-26: -102,932 linesWeek of 2026-08-02: +35,012 linesWeek of 2026-08-02: -478 linesWeek of 2026-08-09: +6,209 linesWeek of 2026-08-09: -1,020 linesWeek of 2026-08-16: +15,204 linesWeek of 2026-08-16: -2,196 linesWeek of 2026-08-23: +21,520 linesWeek of 2026-08-23: -3,703 linesWeek of 2026-08-30: +6,691 linesWeek of 2026-08-30: -75,506 linesWeek of 2026-09-06: +11,150 linesWeek of 2026-09-06: -4,963 linesWeek of 2026-09-13: +87,950 linesWeek of 2026-09-13: -68,640 linesWeek of 2026-09-20: +159,922 linesWeek of 2026-09-20: -42,821 linesWeek of 2026-09-27: +0 linesWeek of 2026-09-27: -0 linesDec 28, 2025Sep 27, 2026
+1.2M lines added, -763.3K removed over the last year.

Commits per week

last 52 weeks
2020Week of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 60 commitsWeek of 2026-01-04: 47 commitsWeek of 2026-01-11: 109 commitsWeek of 2026-01-18: 202 commitsWeek of 2026-01-25: 76 commitsWeek of 2026-02-01: 139 commitsWeek of 2026-02-08: 141 commitsWeek of 2026-02-15: 38 commitsWeek of 2026-02-22: 32 commitsWeek of 2026-03-01: 37 commitsWeek of 2026-03-08: 79 commitsWeek of 2026-03-15: 82 commitsWeek of 2026-03-22: 57 commitsWeek of 2026-03-29: 52 commitsWeek of 2026-04-05: 14 commitsWeek of 2026-04-12: 65 commitsWeek of 2026-04-19: 19 commitsWeek of 2026-04-26: 20 commitsWeek of 2026-05-03: 98 commitsWeek of 2026-05-10: 51 commitsWeek of 2026-05-17: 15 commitsWeek of 2026-05-24: 16 commitsWeek of 2026-05-31: 33 commitsWeek of 2026-06-07: 18 commitsWeek of 2026-06-14: 7 commitsWeek of 2026-06-21: 63 commitsWeek of 2026-06-28: 134 commitsWeek of 2026-07-05: 84 commitsWeek of 2026-07-12: 115 commitsWeek of 2026-07-19: 56 commitsWeek of 2026-07-26: 168 commitsWeek of 2026-08-02: 32 commitsWeek of 2026-08-09: 25 commitsWeek of 2026-08-16: 39 commitsWeek of 2026-08-23: 76 commitsWeek of 2026-08-30: 39 commitsWeek of 2026-09-06: 63 commitsWeek of 2026-09-13: 40 commitsWeek of 2026-09-20: 97 commitsWeek of 2026-09-27: 0 commitsOct 4, 2025Sep 27, 2026
2.5K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 34 commitsSun 1:00 — 37 commitsSun 2:00 — 24 commitsSun 3:00 — 12 commitsSun 4:00 — 7 commitsSun 5:00 — 6 commitsSun 6:00 — 8 commitsSun 7:00 — 0 commitsSun 8:00 — 14 commitsSun 9:00 — 3 commitsSun 10:00 — 0 commitsSun 11:00 — 12 commitsSun 12:00 — 19 commitsSun 13:00 — 8 commitsSun 14:00 — 25 commitsSun 15:00 — 9 commitsSun 16:00 — 12 commitsSun 17:00 — 31 commitsSun 18:00 — 36 commitsSun 19:00 — 35 commitsSun 20:00 — 20 commitsSun 21:00 — 31 commitsSun 22:00 — 29 commitsSun 23:00 — 25 commitsMon 0:00 — 28 commitsMon 1:00 — 27 commitsMon 2:00 — 27 commitsMon 3:00 — 15 commitsMon 4:00 — 8 commitsMon 5:00 — 3 commitsMon 6:00 — 11 commitsMon 7:00 — 6 commitsMon 8:00 — 19 commitsMon 9:00 — 7 commitsMon 10:00 — 3 commitsMon 11:00 — 4 commitsMon 12:00 — 6 commitsMon 13:00 — 5 commitsMon 14:00 — 13 commitsMon 15:00 — 4 commitsMon 16:00 — 9 commitsMon 17:00 — 7 commitsMon 18:00 — 21 commitsMon 19:00 — 16 commitsMon 20:00 — 37 commitsMon 21:00 — 14 commitsMon 22:00 — 25 commitsMon 23:00 — 15 commitsTue 0:00 — 10 commitsTue 1:00 — 38 commitsTue 2:00 — 37 commitsTue 3:00 — 14 commitsTue 4:00 — 11 commitsTue 5:00 — 6 commitsTue 6:00 — 10 commitsTue 7:00 — 10 commitsTue 8:00 — 13 commitsTue 9:00 — 10 commitsTue 10:00 — 9 commitsTue 11:00 — 4 commitsTue 12:00 — 9 commitsTue 13:00 — 3 commitsTue 14:00 — 9 commitsTue 15:00 — 24 commitsTue 16:00 — 11 commitsTue 17:00 — 18 commitsTue 18:00 — 16 commitsTue 19:00 — 26 commitsTue 20:00 — 15 commitsTue 21:00 — 12 commitsTue 22:00 — 5 commitsTue 23:00 — 26 commitsWed 0:00 — 14 commitsWed 1:00 — 17 commitsWed 2:00 — 45 commitsWed 3:00 — 5 commitsWed 4:00 — 19 commitsWed 5:00 — 3 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 5 commitsWed 9:00 — 6 commitsWed 10:00 — 7 commitsWed 11:00 — 10 commitsWed 12:00 — 23 commitsWed 13:00 — 7 commitsWed 14:00 — 7 commitsWed 15:00 — 12 commitsWed 16:00 — 26 commitsWed 17:00 — 41 commitsWed 18:00 — 13 commitsWed 19:00 — 12 commitsWed 20:00 — 5 commitsWed 21:00 — 21 commitsWed 22:00 — 26 commitsWed 23:00 — 46 commitsThu 0:00 — 16 commitsThu 1:00 — 18 commitsThu 2:00 — 72 commitsThu 3:00 — 6 commitsThu 4:00 — 7 commitsThu 5:00 — 1 commitsThu 6:00 — 1 commitsThu 7:00 — 34 commitsThu 8:00 — 7 commitsThu 9:00 — 6 commitsThu 10:00 — 13 commitsThu 11:00 — 4 commitsThu 12:00 — 3 commitsThu 13:00 — 12 commitsThu 14:00 — 5 commitsThu 15:00 — 7 commitsThu 16:00 — 13 commitsThu 17:00 — 7 commitsThu 18:00 — 23 commitsThu 19:00 — 30 commitsThu 20:00 — 16 commitsThu 21:00 — 15 commitsThu 22:00 — 5 commitsThu 23:00 — 5 commitsFri 0:00 — 15 commitsFri 1:00 — 19 commitsFri 2:00 — 8 commitsFri 3:00 — 12 commitsFri 4:00 — 21 commitsFri 5:00 — 4 commitsFri 6:00 — 38 commitsFri 7:00 — 21 commitsFri 8:00 — 0 commitsFri 9:00 — 7 commitsFri 10:00 — 8 commitsFri 11:00 — 12 commitsFri 12:00 — 13 commitsFri 13:00 — 7 commitsFri 14:00 — 13 commitsFri 15:00 — 7 commitsFri 16:00 — 12 commitsFri 17:00 — 10 commitsFri 18:00 — 17 commitsFri 19:00 — 12 commitsFri 20:00 — 12 commitsFri 21:00 — 18 commitsFri 22:00 — 13 commitsFri 23:00 — 19 commitsSat 0:00 — 10 commitsSat 1:00 — 10 commitsSat 2:00 — 10 commitsSat 3:00 — 8 commitsSat 4:00 — 12 commitsSat 5:00 — 17 commitsSat 6:00 — 3 commitsSat 7:00 — 6 commitsSat 8:00 — 5 commitsSat 9:00 — 11 commitsSat 10:00 — 24 commitsSat 11:00 — 28 commitsSat 12:00 — 39 commitsSat 13:00 — 25 commitsSat 14:00 — 25 commitsSat 15:00 — 20 commitsSat 16:00 — 20 commitsSat 17:00 — 22 commitsSat 18:00 — 21 commitsSat 19:00 — 24 commitsSat 20:00 — 15 commitsSat 21:00 — 11 commitsSat 22:00 — 18 commitsSat 23:00 — 27 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jan 18, 2026daily#16+240