Deduplicate offline downloads based on Plex Track GUID

Feature description

An option to deduplicate offline downloads based on the Media Provider’s Track GUID (specifically Plex GUID in my case). If multiple tracks share the same plex://track/… GUID, the app should be able to recognize they are essentially the same song and avoid downloading multiple physical files if one version is already cached.

Problem solved

Currently, when I have the same track in both a “Single”, “Album”, or “Compilation” on my Plex server, Symfonium treats them as separate entities for offline downloading because they have different ratingKey and file paths.

The issue with Auto Offline Cache:
I heavily rely on the “Configure auto offline cache” feature for 4 large smart playlists (2,500 tracks each):

  • Albums (Oldest added)
  • Albums (Recently added)
  • Singles (Oldest added)
  • Singles (Recently added)

Because many tracks from “Singles” are later included in “Albums” or “Compilations”, these playlists sometimes heavily overlap. Since the Auto Offline Cache doesn’t check for a shared Plex GUID, it forces the app to download and store the same audio file 2 or 3 times if it appears in different cached playlists. For a library of this size, this leads to gigabytes of wasted storage and unnecessary bandwidth usage, even though Plex already identifies these files as the same track metadata-wise.

Brought benefits

Storage & Bandwidth Efficiency: Prevents downloading and storing identical audio content multiple times. For users with large FLAC libraries, this saves gigabytes of internal storage and reduces unnecessary data usage.

Optimized Auto Offline Cache: Significantly improves the “Configure auto offline cache” logic. The app will become smart enough to recognize that a track from a “Singles” playlist is already cached via an “Albums” playlist (or vice versa) based on its GUID, skipping redundant download tasks.

Metadata Consistency: Aligns Symfonium’s cache management with Plex’s internal logic. Since Plex already syncs play states via GUID, Symfonium will now treat these files as a single logical entity for storage as well.

Improved Performance for Large Libraries: Reduces the number of active download tasks and disk I/O operations by eliminating redundant writes for tracks that are already present in the offline cache.

Other application solutions

Plexamp handles this by focusing more on the “Track” entity across the library, though it doesn’t have such granular offline cache management as Symfonium.

Device type

Phone

Additional description and context

I have compared the XML data for both tracks and found that they share the exact same global GUID despite having different local IDs.

Track 1 (Album): ratingKey=“1231577”, file=“…/Album/2020 - Ruins/08 - The Gift.flac”, guid=“plex://track/5fd6ba14bcb25fa57cfe566a”

Track 2 (Single): ratingKey=“1232174”, file=“…/Single/2020 - The Gift/01 - The Gift.flac”, guid=“plex://track/5fd6ba14bcb25fa57cfe566a”

As you can see, the guid is identical. I can provide the full XML files if needed for further investigation.

Screenshots / Mockup

I searched existing feature requests

on