Cider Release 2.5.2

What's new and changed

  • NEW Cider Remote for iOS (Testflight)
    • Rebuilt with Swift UI and utilizes the latest REST API capabilities
    • Optional WAN tunneling to allow for seamless connections
    • Remote can be connected from Main Menu / Help / Connect a Remote App
    • Android remote coming soon
  • Added notification for Plugin and Theme updates on startup
    • Can be disabled under Settings / Extensions
  • Added Updates section to the in-app Marketplace
  • Updated to Vue 3.5.3
  • (Windows) Double clicking the title bar maximizes the window
  • (macOS) Window can now be dragged from empty sidebar region on when using Calico or Montara
  • Added Submit Your Theme/Plugin to Marketplace
  • Added "Fyre" Immersive Sing Preset
  • Added Enable Static Lyrics under Visual / Lyrics
  • Added "Publish in profile and search" checkbox to editable playlists
  • Added Tweaks / Lyrics / Line Staggering
  • Added Tweaks / Lyrics / Line Staggering (Immersive)
  • Improved lyric scrolling appearance
  • Language can now be automatically selected
  • Rename the "Sing Along" button to "Focus Mode" to better reflect its purpose.
  • Update the title of the sing options modal to "Focus Mode Settings" for clarity.
  • Song URLs can now be played directly with Apple Music URL
  • Immersive will stay in fullscreen on macOS when exiting
  • Removed broken glass effect on Media Item Properties
  • Fixed issue where Socket.IO API was not emitting playback events on macOS or Linux
  • Fixed WebSocket port always being 0
  • Fixes Discord RPC option being grayed out on OOBE for Windows
  • Fixed Third Party Lyrics appearing when disabled
  • Fix missing volume percentage in Miniplayer
  • Fixed MPRIS artwork not displaying on Linux
  • Fixed play later shortcut on Command Palette (Shift + Z)
  • Fixed ImmersiveCoverflowPlayer sfc-name attribute
    • Previously: "ImmersiveCoveflowPlayer"
  • Fixed Apple Music URL dialog not being closable with ESC
  • Fixed issue where macOS and Linux clients weren't using RPC properly
  • Under the hood fixes for content loading

API Changes

  • Remote connection spec and tunneling API (docs pending)
    • Used by the new Cider Remote for iOS
  • WSAPI playbackStatus.nowPlayingStatusDidChange is now called when library status changes
  • Added Remote Device pairing QR code in External Apps section
  • Added external messages API, allows for messages to be sent over the REST API for code on the client to listen to (one-way)
    • POST /api/v1/messages/message
    • Body takes a type which is the name of the listener and a data property is what gets sent
  • Themes can now query the [theme-hint-uses-artwork-color] to help with identifying elements that use artwork color
  • Added body[app-mode] with possible modes being: browser, miniplayer, immersive
  • /api/v1/playback/queue now properly returns the queue
  • Added POST /api/v1/playback/queue/move-to-position
  • Added /v1/lyrics/:id - :id is an ID for a media item. Returns an array of lyrics.
  • Added /v1/lyrics/:id, automatically infers library or catalog based on ID
  • /api/v1/playback/play-url - Takes a url in body and will immediately play the item or track associated with the URL
  • /api/v1/playback/play-item-href - Similar to play-url but takes an API href instead
  • /api/v1/playback/play-later, /play-next, /play-item - Takes id and `type
  • /api/v1/playback/queue/change-to-index - Jumps to and plays the index requested. Takes index (number) in body
  • POST /api/v1/playback/queue/remove-by-index - Takes index in body
  • POST /api/v1/playback/queue/clear-queue
  • GET /api/v1/playback/shuffle-mode - Returns status as data.value
  • GET /api/v1/playback/repeat-mode - Returns status as data.value
  • GET /api/v1/playback/autoplay - Returns status as data.value
  • GET /api/v1/playback/library-status - Returns up to date library status and rating for current track
  • Exposed ListItemProviderLogic to plugins
  • More components exposed via CComponent (to be updated on the boilerplate soon)