github FrancescoGrazioso/Meld v0.6.0
0.6.0

latest releases: v0.9.2, v0.8.9, v0.8.8...
6 months ago

Metrolist v0.6.0 — Spotify Deep Integration

This release brings full two-way Spotify integration: edit playlists, reorder tracks, and sync your likes — all from within the app.

New Features

Bidirectional Like Sync with Spotify

  • New "Sync Likes with Spotify" toggle in Spotify integration settings
  • When enabled, every like/unlike action in the app (player, context menu, multi-select) is automatically synced to your Spotify Liked Songs
  • On first activation, all your Spotify liked songs are imported and matched to their YouTube equivalents
  • The local "Liked" playlist is replaced by your Spotify library — one source of truth

Edit Spotify Playlists from the App

  • Add tracks to any of your Spotify playlists directly from song menus
  • Works with both Spotify tracks (direct add) and YouTube tracks (automatic reverse lookup finds the Spotify match)
  • Remove tracks from Spotify playlists with swipe-to-remove
  • New playlist picker dialog for quick playlist selection

Sort & Refresh for Spotify Playlists

  • Sort by: original order, name, artist, or duration
  • Pull-to-refresh to reload playlists in real time
  • Available in both Spotify playlists and liked songs screens

Drag-to-Reorder in Spotify Playlists

  • Reorder tracks in your Spotify playlists via drag-and-drop
  • Changes are synced to Spotify in real time via GraphQL
  • Lock mechanism prevents accidental reordering
  • Optimistic UI updates with server-side confirmation

Under the Hood

Spotify GraphQL Hash Audit

  • Verified all 15 hardcoded GQL hashes against the current Spotify web player bundle
  • Updated 5 rotated hashes: libraryV3, fetchPlaylist, queryArtistOverview, addToLibrary, removeFromLibrary
  • Identified 2 at-risk hashes (searchDesktop, editPlaylistAttributes) not present in the current web player — functional for now but may require future attention

Architecture

  • All like sync logic (YouTube, Spotify, Last.fm) is now centralized in SyncUtils and runs independently of YouTube login state
  • SongEntity.toggleLike() handles local state only — remote sync is fully delegated to SyncUtils

Don't miss a new Meld release

NewReleases is sending notifications on new releases.