From f4fe74f9725602c88f300e62d0a8fb553010b03c Mon Sep 17 00:00:00 2001 From: zarzet Date: Fri, 16 Jan 2026 07:07:46 +0700 Subject: [PATCH 1/7] docs: add Crowdin translation badge to README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f702b75a..afb52d31 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ [![GitHub All Releases](https://img.shields.io/github/downloads/zarzet/SpotiFLAC-Mobile/total?style=for-the-badge)](https://github.com/zarzet/SpotiFLAC-Mobile/releases) [![VirusTotal](https://img.shields.io/badge/VirusTotal-Safe-brightgreen?style=for-the-badge&logo=virustotal)](https://www.virustotal.com/gui/file/e1c527eacb6f5ce527af214a75aab8da060c2afc629825fff24af858439e7e6b) +[![Crowdin](https://img.shields.io/badge/HELP%20TRANSLATE%20ON-CROWDIN-%2321252b?style=for-the-badge&logo=crowdin)](https://crowdin.com/project/spotiflac-mobile)
From 75bfe9b3bfd4502c72b5970cf1784a4e2cb23184 Mon Sep 17 00:00:00 2001 From: zarzet Date: Sat, 17 Jan 2026 06:09:50 +0700 Subject: [PATCH 2/7] docs: update VirusTotal link for v3.1.0 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index afb52d31..d015546d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![GitHub All Releases](https://img.shields.io/github/downloads/zarzet/SpotiFLAC-Mobile/total?style=for-the-badge)](https://github.com/zarzet/SpotiFLAC-Mobile/releases) -[![VirusTotal](https://img.shields.io/badge/VirusTotal-Safe-brightgreen?style=for-the-badge&logo=virustotal)](https://www.virustotal.com/gui/file/e1c527eacb6f5ce527af214a75aab8da060c2afc629825fff24af858439e7e6b) +[![VirusTotal](https://img.shields.io/badge/VirusTotal-Safe-brightgreen?style=for-the-badge&logo=virustotal)](https://www.virustotal.com/gui/file/12d47935c4362c90c6035ea9677bfc0c33c1cd2fa07c2cde91a4d5b73c3c1299) [![Crowdin](https://img.shields.io/badge/HELP%20TRANSLATE%20ON-CROWDIN-%2321252b?style=for-the-badge&logo=crowdin)](https://crowdin.com/project/spotiflac-mobile)
From 88dfb88bcc552d86d8fbb8f52edaee39e5643d39 Mon Sep 17 00:00:00 2001 From: zarzet Date: Sat, 17 Jan 2026 07:11:07 +0700 Subject: [PATCH 3/7] docs: add FAQ about mobile app size (FFmpeg bundled) --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index d015546d..29bd4b2d 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,9 @@ A: The app needs permission to save downloaded files to your device. On Android **Q: How do I download Daily Mix or Discover Weekly?** A: Install the **Spotify Web** extension from the Store. This extension can access personalized playlists that aren't available through the public API. +**Q: Why is the mobile app so large (~50MB) compared to the PC version (~3MB)?** +A: The mobile app includes FFmpeg libraries for audio processing and format conversion, which adds significant size. The PC version relies on system-installed FFmpeg, keeping the download smaller. We bundle FFmpeg to ensure compatibility across all Android devices without requiring users to install additional software. + **Q: Is this app safe?** A: Yes, the app is open source and you can verify the code yourself. Each release is scanned with VirusTotal (see badge at top of README). From 3edfe8e8bb7d93bbb3f2ca37aca220ca4f7397aa Mon Sep 17 00:00:00 2001 From: zarzet Date: Tue, 20 Jan 2026 09:56:38 +0700 Subject: [PATCH 4/7] docs: update README and release workflow --- .github/workflows/release.yml | 95 +++++++++++++++++++++++++++++++++++ README.md | 14 +++++- 2 files changed, 107 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d79b15f1..9938d2c4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -412,3 +412,98 @@ jobs: prerelease: ${{ needs.get-version.outputs.is_prerelease == 'true' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + notify-telegram: + runs-on: ubuntu-latest + needs: [get-version, create-release] + if: ${{ needs.get-version.outputs.is_prerelease != 'true' }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Download Android APK + uses: actions/download-artifact@v4 + with: + name: android-apk + path: ./release + + - name: Extract changelog for version + id: changelog + run: | + VERSION=${{ needs.get-version.outputs.version }} + VERSION_NUM=${VERSION#v} + + # Extract changelog, limit to ~1500 chars for Telegram (4096 limit minus message overhead) + FULL_CHANGELOG=$(sed -n "/^## \[$VERSION_NUM\]/,/^## \[/{ /^## \[$VERSION_NUM\]/d; /^## \[/d; p; }" CHANGELOG.md | sed '/^---$/d') + + if [ -z "$FULL_CHANGELOG" ]; then + CHANGELOG="See release notes on GitHub for details." + else + # Take first 1500 characters, then cut at last complete line + CHANGELOG=$(echo "$FULL_CHANGELOG" | head -c 1500 | sed '$d') + + # Check if truncated + FULL_LEN=${#FULL_CHANGELOG} + if [ $FULL_LEN -gt 1500 ]; then + CHANGELOG="${CHANGELOG}"$'\n\n... (see full changelog on GitHub)' + fi + fi + + echo "$CHANGELOG" > /tmp/changelog.txt + + - name: Send to Telegram Channel + env: + TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} + TELEGRAM_CHANNEL_ID: ${{ secrets.TELEGRAM_CHANNEL_ID }} + run: | + VERSION=${{ needs.get-version.outputs.version }} + CHANGELOG=$(cat /tmp/changelog.txt) + + # Find APK files + ARM64_APK=$(find ./release -name "*arm64*.apk" | head -1) + ARM32_APK=$(find ./release -name "*arm32*.apk" | head -1) + + # Prepare message with changelog + printf '%s\n' \ + "*SpotiFLAC ${VERSION} Released!*" \ + "" \ + "*What's New:*" \ + "${CHANGELOG}" \ + "" \ + "*Download:*" \ + "- [arm64 APK](https://github.com/${{ github.repository }}/releases/download/${VERSION}/SpotiFLAC-${VERSION}-arm64.apk) (recommended)" \ + "- [arm32 APK](https://github.com/${{ github.repository }}/releases/download/${VERSION}/SpotiFLAC-${VERSION}-arm32.apk)" \ + "- [iOS IPA](https://github.com/${{ github.repository }}/releases/download/${VERSION}/SpotiFLAC-${VERSION}-ios-unsigned.ipa)" \ + "" \ + "[View Release Notes](https://github.com/${{ github.repository }}/releases/tag/${VERSION})" \ + > /tmp/telegram_message.txt + + MESSAGE=$(cat /tmp/telegram_message.txt) + + # Send message first + curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \ + -d chat_id="${TELEGRAM_CHANNEL_ID}" \ + -d text="${MESSAGE}" \ + -d parse_mode="Markdown" \ + -d disable_web_page_preview="true" + + # Upload arm64 APK to channel + if [ -f "$ARM64_APK" ]; then + echo "Uploading arm64 APK to Telegram..." + curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendDocument" \ + -F chat_id="${TELEGRAM_CHANNEL_ID}" \ + -F document=@"${ARM64_APK}" \ + -F caption="SpotiFLAC ${VERSION} - arm64 (recommended)" + fi + + # Upload arm32 APK to channel + if [ -f "$ARM32_APK" ]; then + echo "Uploading arm32 APK to Telegram..." + curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendDocument" \ + -F chat_id="${TELEGRAM_CHANNEL_ID}" \ + -F document=@"${ARM32_APK}" \ + -F caption="SpotiFLAC ${VERSION} - arm32" + fi + + echo "Telegram notification sent!" diff --git a/README.md b/README.md index 7e986846..3167ac09 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,16 @@ Download music in true lossless FLAC from Tidal, Qobuz & Amazon Music — no acc ![Android](https://img.shields.io/badge/Android-7.0%2B-3DDC84?style=for-the-badge&logo=android&logoColor=white) ![iOS](https://img.shields.io/badge/iOS-14.0%2B-000000?style=for-the-badge&logo=apple&logoColor=white) +

+ + Telegram Channel + + + + Telegram Community + +

+
### [Download](https://github.com/zarzet/SpotiFLAC-Mobile/releases) @@ -52,6 +62,8 @@ Want to create your own extension? Check out the [Extension Development Guide](h ### [SpotiFLAC (Desktop)](https://github.com/afkarxyz/SpotiFLAC) Download music in true lossless FLAC from Tidal, Qobuz & Amazon Music for Windows, macOS & Linux +> **Note:** Currently unavailable because the GitHub account is suspended. Alternatively, use [SpotiFLAC-Next](https://github.com/spotiverse/SpotiFLAC-Next) until the original is restored. + ## FAQ **Q: Why is my download failing with "Song not found"?** @@ -72,8 +84,6 @@ A: The mobile app includes FFmpeg libraries for audio processing and format conv **Q: Is this app safe?** A: Yes, the app is open source and you can verify the code yourself. Each release is scanned with VirusTotal (see badge at top of README). -[![Ko-fi](https://img.shields.io/badge/Ko--fi-Support%20Me-FF5E5B?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/zarzet) - ## Disclaimer This project is for **educational and private use only**. The developer does not condone or encourage copyright infringement. From 2d22d85c49b6fc9ea9ddecc2aa0bdbce1deea944 Mon Sep 17 00:00:00 2001 From: zarzet Date: Tue, 20 Jan 2026 10:08:35 +0700 Subject: [PATCH 5/7] feat: improve Telegram notification - upload IPA, remove redundant links, increase changelog limit --- .github/workflows/release.yml | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9938d2c4..92fdd545 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -428,24 +428,30 @@ jobs: name: android-apk path: ./release + - name: Download iOS IPA + uses: actions/download-artifact@v4 + with: + name: ios-ipa + path: ./release + - name: Extract changelog for version id: changelog run: | VERSION=${{ needs.get-version.outputs.version }} VERSION_NUM=${VERSION#v} - # Extract changelog, limit to ~1500 chars for Telegram (4096 limit minus message overhead) + # Extract changelog, limit to ~2500 chars for Telegram (4096 limit minus message overhead) FULL_CHANGELOG=$(sed -n "/^## \[$VERSION_NUM\]/,/^## \[/{ /^## \[$VERSION_NUM\]/d; /^## \[/d; p; }" CHANGELOG.md | sed '/^---$/d') if [ -z "$FULL_CHANGELOG" ]; then CHANGELOG="See release notes on GitHub for details." else - # Take first 1500 characters, then cut at last complete line - CHANGELOG=$(echo "$FULL_CHANGELOG" | head -c 1500 | sed '$d') + # Take first 2500 characters, then cut at last complete line + CHANGELOG=$(echo "$FULL_CHANGELOG" | head -c 2500 | sed '$d') # Check if truncated FULL_LEN=${#FULL_CHANGELOG} - if [ $FULL_LEN -gt 1500 ]; then + if [ $FULL_LEN -gt 2500 ]; then CHANGELOG="${CHANGELOG}"$'\n\n... (see full changelog on GitHub)' fi fi @@ -464,18 +470,13 @@ jobs: ARM64_APK=$(find ./release -name "*arm64*.apk" | head -1) ARM32_APK=$(find ./release -name "*arm32*.apk" | head -1) - # Prepare message with changelog + # Prepare message with changelog (files uploaded separately) printf '%s\n' \ - "*SpotiFLAC ${VERSION} Released!*" \ + "*SpotiFLAC Mobile ${VERSION} Released!*" \ "" \ "*What's New:*" \ "${CHANGELOG}" \ "" \ - "*Download:*" \ - "- [arm64 APK](https://github.com/${{ github.repository }}/releases/download/${VERSION}/SpotiFLAC-${VERSION}-arm64.apk) (recommended)" \ - "- [arm32 APK](https://github.com/${{ github.repository }}/releases/download/${VERSION}/SpotiFLAC-${VERSION}-arm32.apk)" \ - "- [iOS IPA](https://github.com/${{ github.repository }}/releases/download/${VERSION}/SpotiFLAC-${VERSION}-ios-unsigned.ipa)" \ - "" \ "[View Release Notes](https://github.com/${{ github.repository }}/releases/tag/${VERSION})" \ > /tmp/telegram_message.txt @@ -506,4 +507,14 @@ jobs: -F caption="SpotiFLAC ${VERSION} - arm32" fi + # Upload iOS IPA to channel + IOS_IPA=$(find ./release -name "*ios*.ipa" | head -1) + if [ -f "$IOS_IPA" ]; then + echo "Uploading iOS IPA to Telegram..." + curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendDocument" \ + -F chat_id="${TELEGRAM_CHANNEL_ID}" \ + -F document=@"${IOS_IPA}" \ + -F caption="SpotiFLAC ${VERSION} - iOS (unsigned, sideload required)" + fi + echo "Telegram notification sent!" From ac5f74a48f42c253b3626c430a571ae4413bcbb4 Mon Sep 17 00:00:00 2001 From: zarzet Date: Tue, 20 Jan 2026 10:12:01 +0700 Subject: [PATCH 6/7] feat: convert GitHub Markdown to Telegram format in release notification --- .github/workflows/release.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 92fdd545..b8d64d08 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -446,8 +446,20 @@ jobs: if [ -z "$FULL_CHANGELOG" ]; then CHANGELOG="See release notes on GitHub for details." else + # Convert GitHub Markdown to Telegram Markdown: + # - **text** → *text* (GitHub bold to Telegram bold) + # - ### Header → *Header* (headers to bold) + # - Add extra line break before major list items for readability + CHANGELOG=$(echo "$FULL_CHANGELOG" | \ + sed 's/\*\*\([^*]*\)\*\*/*\1*/g' | \ + sed 's/^### \(.*\)$/*\1*/g' | \ + sed 's/^## \(.*\)$/*\1*/g' | \ + sed 's/^- \*\*\([^:]*\):\*\*/\n• *\1:*/g' | \ + sed 's/^- /• /g' | \ + sed 's/^ - / ◦ /g') + # Take first 2500 characters, then cut at last complete line - CHANGELOG=$(echo "$FULL_CHANGELOG" | head -c 2500 | sed '$d') + CHANGELOG=$(echo "$CHANGELOG" | head -c 2500 | sed '$d') # Check if truncated FULL_LEN=${#FULL_CHANGELOG} From 3f42128cb9d5eac0ece86acb9168d23821bbd2d7 Mon Sep 17 00:00:00 2001 From: zarzet Date: Thu, 22 Jan 2026 04:50:46 +0700 Subject: [PATCH 7/7] fix: update Telegram community link and VirusTotal hash for v3.2.1 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0e2811d1..f09c0aac 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![GitHub All Releases](https://img.shields.io/github/downloads/zarzet/SpotiFLAC-Mobile/total?style=for-the-badge)](https://github.com/zarzet/SpotiFLAC-Mobile/releases) -[![VirusTotal](https://img.shields.io/badge/VirusTotal-Safe-brightgreen?style=for-the-badge&logo=virustotal)](https://www.virustotal.com/gui/file/3257155286587a3596ad5d4380d4576a684aa3d37a5b19a615914a845fbe57f3) +[![VirusTotal](https://img.shields.io/badge/VirusTotal-Safe-brightgreen?style=for-the-badge&logo=virustotal)](https://www.virustotal.com/gui/file/516142f029a4f3642a899832a6f600acf07040170a98c106cd03222cf584d9a3) [![Crowdin](https://img.shields.io/badge/HELP%20TRANSLATE%20ON-CROWDIN-%2321252b?style=for-the-badge&logo=crowdin)](https://crowdin.com/project/spotiflac-mobile)
@@ -61,7 +61,7 @@ Download music in true lossless FLAC from Tidal, Qobuz & Amazon Music for Window Telegram Channel - + Telegram Community