github EduAlexxis/ByeTunes v2.6
ByeTunes v2.6

3 hours ago

ByeTunes v2.6 – Favorites, Playlist Pinning & Background Downloads Reworked

Hi guys, here is the 2.6 update for ByeTunes. A good amount of things got added, fixed and improved in this one. You can now properly favorite injected songs, pin playlists from inside ByeTunes, and keep downloads going in the background with a new Picture in Picture window. There were also a bunch of fixes around metadata, library management and database safety.

Favorites

There are three new options inside Library Repair:

  • Create Favorites Playlist creates the Favorites playlist using the right name for your device region.
  • Fix Missing Favorites repairs songs injected with an older version that you already favorited but that never actually appeared in Favorites.
  • Delete Favorites Playlist lets you delete that playlist from Library Repair.

Songs injected from 2.6 onwards now get their store IDs during injection, so you can favorite them right away. If the metadata fetcher finds a match, ByeTunes uses the IDs from that match. Songs without a match get generated IDs instead.

Quick recommendation: if you have older injected songs that you favorited but cannot find in Favorites, run Fix Missing Favorites inside Library Repair.

Playlist Pinning

You can now pin and unpin playlists from the On-Device Library. Long-press a playlist or use the Pin button from inside it.

Keep in mind: pinning and unpinning these playlists needs to be done through ByeTunes. The Pin option inside the Apple Music app does not work for them.

Background Downloads

Background downloads got a big rework. ByeTunes now uses silent audio to keep downloads going in the background, with an optional Picture in Picture window so you can see what is happening after leaving the app.

The window shows the current song's progress, what is next in the queue, and when metadata is being fetched. You can also customize it with themes, your own colors or a background picture. There is a live preview in Settings so you can see how it looks before using it.

This replaces the old background download behavior and Live Activity support. Download progress now shows in the Picture in Picture window.

If the app closes while songs are still downloading, those songs go back to the front of the queue the next time you open ByeTunes.

Pause and Cancel were fixed too. They now properly stop background transfers instead of accidentally starting a fallback download after you already paused or cancelled the song.

Download Queue & Saving Files

Downloaded songs now get their metadata as part of the download process. You will see a "fetching metadata" state before the song is marked as done, instead of that work being left to a separate background metadata manager.

A few other things got added or improved:

  • Clear All for completed items in the queue sheet.
  • Preview buttons in the album sheet and artist profile.
  • Icons instead of text in the download queue indicator.
  • Downloads are now limited to 2 at a time for MP3 and 1 for FLAC, matching what the server supports. (This is temporal until I can pay for a better provider)
  • A server status banner appears when the server goes into maintenance. Downloads are blocked while the server is down.
  • A new Save With Fetched Metadata toggle that writes the fetched tags and cover artwork into the MP3 and FLAC copies you save.

Metadata Fixes

Metadata matching got a lot of attention in this update. There were cases where a remix could get the original song's information, or a song could get renamed to a different track from the same album. Those issues should now be fixed.

  • Downloaded songs now look up the exact Deezer track and album. An Apple Music match is only accepted if it belongs to the same album.
  • Apple Music track matching now checks the title, so songs should no longer get relabeled as another track from that album.
  • Apple Music search pages are requested in English so ByeTunes can find the Songs and Albums sections even when using a non-English storefront.
  • A Deezer result with missing artwork or an unreadable item no longer causes the entire search to come back empty.
  • The broken song.link mapping was replaced with Deezer matching, and download failures now show more accurate messages.

FLAC handling was improved too. Some changes in the downloaded files were causing every song to take the album name as its title when an ALBUMTITLE tag was present. That is fixed now.

Album artist is also read correctly from files using the ALBUM ARTIST or album_artist tags.

Library Management

Added sorting, a genre filter and multi-delete to the Library management tab.

Fixed an issue where the library would only show some of your songs, for example just 50 tracks. ByeTunes was only scanning one folder. It now scans all folders so the rest of your songs show up too.

Injected songs now use the file's creation date for a more accurate date.

Deleting songs also cleans up any albums, artists and artwork entries left empty after the deletion.

Stability, Backups & Database Safety

There were also several fixes to make injection, transfers and backups more reliable:

  • One unreadable local file no longer stops the whole injection batch.
  • The export folder is checked before transferring files. If it cannot be used, ByeTunes falls back to its own Exports folder.
  • Snapshot backups keep the previous snapshot until the new one finishes successfully, and only replace snapshots of the same kind.
  • The heartbeat timeout handles stale connection attempts more reliably.
  • Matched songs now save their real catalog ID in match_redownload_params instead of placeholder text.

Overall stability and database safety were improved too.

Cleanup

The old background metadata manager and its pending import pipeline were removed, since downloaded songs now get their metadata directly during the download process.

The Live Activity extension and download tracking were also removed as part of the move to Picture in Picture, along with the old background download behavior and unused code.

Official Backend & Building Your Own

I also added BACKEND_TERMS.md, which explains how the official hosted backend may be used. Modified builds need to use their own backend.

If you are building ByeTunes yourself, Config.example.plist is now included as a template for the backend address. The README explains how to set it up.

I also reorganized the project structure. Files are now grouped into proper folders so everything is easier to find and work on. This should help anyone working on their own fork of ByeTunes understand where things are and make changes more easily. I am also considering a bigger rewrite of the app down the road, so this cleanup is a step towards that, but nothing is confirmed yet.

Thanks as always to everyone testing ByeTunes, sending logs and reporting what breaks. Hope you guys enjoy this update.

Don't miss a new ByeTunes release

NewReleases is sending notifications on new releases.