Skip to content

Releases: owncloud/music

v2.4.1

12 Oct 18:45

Choose a tag to compare

Changed

  • In artist image names, spaces may be optionally replaced with underscores (_)
    #1246

Fixed

  • The dismiss button added in v2.4.0 not working on the "dirty files to rescan" banner
    #1251
  • After moving a folder within the music library, files remaining as "dirty" even after rescan (since v2.3.0)
    #1251

v2.4.0

05 Oct 19:55

Choose a tag to compare

Added

  • Mouse wheel can be used to adjust volume while hovering over the volume control (slow by default, faster with SHIFT)
  • Volume percent is displayed in place of the volume icon while adjusting
  • Button to dismiss the "files to scan" banner without taking any action (it will be shown again on page reload)
    #1251
  • Belarusian translation
    #1254 @pavel-miniutka

Changed

  • Playlist tooltip on the navigation pane now shows also the playlist name
    #1236
  • Prevent HTML injection from track metadata to the web UI

Fixed

  • Favorite toggle in the details pane not working (since v2.3.0)
    #1250
  • Overly long playlist names shown only as ellipses (…) in the navigation pane
    #1236
  • "Unshare from self" not removing songs from the user's library (since v2.3.0)
  • Sharing files on NC32 broken while Music enabled (due to unannounced API change)
    #1253

v2.3.0

31 Aug 18:12

Choose a tag to compare

Added

Changed

  • Human-friendly formatting for bitrate and sample rate in the track details pane
  • Improved performance for "dirty" file checking on huge music collections

Fixed

  • Subsonic API: In methods getAlbumInfo and getAlbumInfo2 with no info found, an empty array was returned instead of an empty object
    #1233
  • File hooks potentially breaking the cloud update process when Music app is updated at the same time and the cloud runs partially updated app instance
    #1231
  • Album cover from Last.fm failing to be loaded in the album details pane (since v2.1.0)
    #1238
  • Music controls pane overlapping the scrollbar with Firefox on Windows 11
  • Not being able to drag the scrollbar on ownCloud with Firefox on Windows 11

v2.2.0

15 Jun 12:57

Choose a tag to compare

Added

  • Support for importing WPL playlist files and play them within Files
    #1153
    • MIME mapping for the file is needed which can be added with occ music:register-mime-types
  • Support parsing lyrics from .lrc files in addition to the audio file metadata tags
    #1221
    • The lyrics file must be found in the same folder with the audio file and have the same file name but with the extension .lrc.
  • Importing and exporting podcasts channels from/to an OPML file
    #904
    • Using the web UI or with the occ commands music:podcast-import and music:podcast-export

Changed

  • In the Files app, use the Music app icon on the file actions menu item "Play"
  • Allow manual entry of the file name when exporting a playlist or the radio stations
  • Data stored to DB tables is truncated to max number of bytes instead of characters; this should avoid problems with non-ASCII characters on some DB configurations
  • Command occ music:scan shows the time consumed to analyze files and update DB. With option --debug, this is shown per file.
  • Improved scan performance, especially on MariaDB
  • Subsonic API:
    • Set CORS headers and enable pre-flight to allow web app clients to connect from any domain
    • Use error code 0 (generic error) instead of 70 (requested data not found) when an unsupported API endpoint is requested

Fixed

  • "New files to scan" and "Scanning" bottom panes being slightly misplaced on NC 25+
  • Alphabet navigation not scrolling to quite correct location on first click in long list views like "All tracks" (since v2.0.0)
  • Command occ music:scan --rescan failing if the DB contains any track with an invalid artist_id or album_id
    #1228

v2.1.4

10 Apr 18:39

Choose a tag to compare

Fixed

  • Subsonic API not working on PHP versions 7.4 and 8.0 (since v2.1.3)
    #1218
  • Album title misplaced on NC30+ when using "normal layout" on narrow screen (like mobile phone)
  • Podcast episode titles overlapping alphabet navigation on narrow screen

v2.1.3

30 Mar 20:33

Choose a tag to compare

Changed

  • Advanced search: Enable searching albums by disk count
  • Ampache API:
    • Use HTML line breaks <br /> in the lyrics to match genuine Ampache behavior
    • Add cache headers to the cover art responses
    • Advanced search supports new rule disk_count for type album
  • Subsonic API:
  • Shiva API:
    • Added endpoints /api/random/artist, /api/random/album, /api/random/track
      #51
    • Added endpoint /api/tracks/{id}/lyrics
      #48
    • Added endpoint /api/whatsnew
    • The playlists API is now mostly compatible with the Shiva specification
    • Systematically use plurals in endpoint names to match the specification: api/artists/{id} instead of api/artist/{id} etc.
  • Proprietary REST API:
    • Systematically use plurals in endpoint names for consistency

Fixed

  • Unhandled error logged on corrupted/incompatible album cover images (now a warning is logged instead)
    #1204
  • Unable to play some podcasts in the default relayed mode
    #1209
  • Dashboard widget: Internet radio station without given name failing to load album art and showing the load indicator indefinitely
  • Errors like 'Undefined array key "status_code"' logged when playing certain internet radio stations
  • Ampache API: Endpoint song failing with code 500 when the song has no lyrics set (since v2.1.2)
    #1208
  • Subsonic API:
    • Property artistImageUrl being invalid on artist when authenticated using apiKey
    • Method getPlaylist failing with code 500 if the playlist has any invalid song references
      #1128

v2.1.2

16 Feb 20:11

Choose a tag to compare

Added

  • Support for Nextcloud 31
    #1198
  • Support for PHP 8.4

Changed

  • Denser layout for the navigation pane and actions menu on NC 30+, matching the platform style
  • Ampache API: Parse and include lyrics in the response of the action song (but not on any other actions returning songs)

Fixed

  • Dashboard widget:
    • Playback controls disappearing when the playing track changes with Aurora.js backend (used when the audio format has no native browser support)
    • Clicking the previously played song didn't play it again after stopping the playback with the keyboard 'stop' media key
  • Internet radio:
    • Stream relaying not working on some redirecting stream URLs, depending on the headers
      #1194
    • Stream playback failing when the stream URL has only the domain part without any path and no trailing '/' (like http://abc.somedomain.xyz)
    • Stream playback failing when the given URL redirects to a playlist file containing the actual audio URL
    • HTTP redirections not followed when parsing Icy-MetaData of the channel
  • Layout glitches:
    • Navigation items "Search" and "Settings" positioned and highlighted incorrectly on NC30+ with Chromium based browsers
    • Collapsed navigation pane and corner roundings shown wrong on narrow screens on NC 30.0.5
  • Ampache API: CORS problem on the endpoint /ampache/image.php
    #1199 @rstefko
  • Subsonic API: In JSON responses, playlist id was returned as integer instead of string type
    #1202

v2.1.1

03 Jan 21:36

Choose a tag to compare

Fixed

  • Background cleanup job not working with PostgreSQL (since v2.1.0)
    #1191

v2.1.0

02 Jan 20:58

Choose a tag to compare

Added

  • Dashboard widget for Nextcloud
    #1172
  • Ampache API:
  • Subsonic API:
    • OpenSubsonic extension apiKeyAuthentication, including support for arg apiKey and the new method tokenInfo

Changed

  • Renamed config.php key music.allowed_radio_src as music.allowed_stream_src. Its default value is now an empty array [].
  • Internet radio and podcast streams are now relayed via the user's cloud instance by default. To opt out, set the config.php keys music.relay_radio_stream and music.relay_podcast_stream as false and add required sources to music.allowed_stream_src.
    #1035
  • Documentation of the admin configuration options moved from the Settings view to the Wiki page
  • Troubleshooting for Internet radio moved to the Wiki page
  • Allow translating all the strings in the embedded Files player and the new Dashboard widget. Provide Finnish translations for these.
  • Optimized loading of folder tree also for cases where the library root is the home folder and there is a huge externally mounted audio folder
  • Prompt user to rescan modified tracks on app load if that has not happened automatically (e.g. for shared files modified by another user)
    #706
  • Ampache API:
    • Action get_indexes supports also type=song_artist
    • Actions playlists and playlist support argument include
    • Added fields art and has_art to the podcast_episode and live_stream result types
    • Added fields username, max_song, max_album, max_artist, max_video, max_podcast, max_podcast_episode to the responses of handshake and ping
    • Added fields md5, has_access, has_collaborate, and last_update to the playlist results
    • For radio stations without user-supplied name, use the stream URL as a name
    • Set CORS headers and enable pre-flight to allow Ample or other web app clients to connect from any domain
      #1181
    • Action get_bookmark returns an empty response instead of error if the object ID is valid but there are no bookmarks on the object
    • Action get_bookmark supports argument all (affects response format only, we still don't support more than one bookmark per song/episode)
  • Subsonic API:
    • Allow method getOpenSubsonicExtensions without any user authentication
    • When browsing by folder, getMusicDirectory sorts songs by file name instead of song title
      #1182
    • Added field path to all song responses

Fixed

  • Song progress shown incorrectly in the media session integration of Chrome when playing (exotic file types) with the fallback Aurora.js player
  • Track disappearing from playlists when moved to another folder within the library folder
    #1173
  • Scan sometimes breaking on MariaDB with "Serialization failure: 1213 Deadlock" when the cleanup task gets run on the background
    #918
  • In Files app, sidebar not showing playlist file contents if the list has any external URLs with no caption
  • Uploaded image not used immediately as album cover when using SQLite (background job fixed this, though)
  • Ampache API:
    • Action playlist_songs returning internal error 500 if the playlist contains any broken track references
    • Action download still implicitly recording song as played even though that was supposed to change in v2.0.0
    • Playlist content editing not working with the action playlist_edit
    • Actions playlist_add and playlist_add_song not working when using SQLite

v2.0.1

08 Sep 16:16

Choose a tag to compare

Added

  • French translation
    #1157 @flozz
  • Support for Nextcloud 30

Changed

  • Subsonic API: For radio stations without user-supplied name, use the stream URL as a name

Fixed

  • Favorite toggle button not working on artists with no image available
  • Cover art image not used automatically upon the image file upload in some cases when PostgreSQL used
    #1164