Releases: owncloud/music
Releases Β· owncloud/music
v2.0.0
Added
- Additional tabs "Albums" and "Tracks" to the artist details pane
- Additional tabs "Tracks" and "Artists" to the album details pane
- Favorite toggle to the details pane of the tracks, albums, artists, playlists, and podcasts
- New filter "Favorite" for the smart list
- OpenSubsonic extensions to the Subsonic API:
- Method
getLyricsBySongId - Property
sortNameto all artist, album, and song responses - Property
playedto all song responses
- Method
Changed
- Drop support for PHP versions older than 7.4 (i.e. PHP 7.1 - 7.3)
- Drop support for ownCloud versions older than 10.5 (i.e. OC 10.0 - 10.4)
- Drop support for Nextcloud versions older than 20 (i.e. NC 13 - 19)
- New design including cover art on all list-like views
- Ampache and Subsonic APIs: Check the username in case-insensitive manner
#1147 - Ampache API:
- The action
downloaddoesn't implicitly record the track as played (unlikestream) (Update: This change didn't actually work, fixed in v2.1.0) - The song property
urlrefers to thestreamURL instead ofdownloadURL
- The action
Fixed
- Playlist sorting not working if the list contains any broken track references
- Nextcloud.log being flooded with the debug-level message "/appinfo/app.php is deprecated" on NC20+
#1043
v1.11.0
Added
- Advanced search view
#1141 - Support for Nextcloud 29
#1132 - Ampache API:
- Option to change the session timeout with the
config.phpkeymusic.ampache_session_expiry_time
#1134 - Support for the actions
search,user,user_playlists,user_smartlists,playlist_add,index,scrobble - Support for the advanced search rule
bitrateon songs
- Option to change the session timeout with the
- Subsonic API:
- Support for the method
getOpenSubsonicExtensions
- Support for the method
Changed
- Ampache API:
- Advanced search operators
matches regexanddoes not match regexsupported also on SQLite (this is important to properly support Ample) - Advanced search operators
sounds likeanddoes not sound likesupported also on SQLite, and on PgSQL if modulefuzzystrmatchis installed - Advanced search rules
album_genreandartist_genresupported also on PgSQL - Authentication tag can be delivered also using the bearer token header (required to support Ample v3)
#1140 - All results with property
arthave also the propertyhas_art - Implicitly record the track as played with the actions
downloadandstream
- Advanced search operators
Fixed
- Playlist file not playing within Files in case the first track of the list is in unsupported format
- Some Finnish translations being replaced with English (since v1.9.0)
- Error "Cannot set response code - headers already sent" logged on each played song on PHP 8.3
#1133 - Files player: Menu icon for "Import list to Music" not adjusted correctly for the dark theme
- Standard NC viewer opened instead of embedded Music player when opening file from Dashboard on NC28+
#1126 - Music app page loading randomly failing on Chrome
#1137 - Ampache API:
- API not working on ownCloud 10.14.0 (HTTP error 500 on all Ampache API calls)
#1138 - Advanced search rule
playlist_namenot being case insensitive like the other string rules - Advanced search rules
playlistandplaylist_namenot working with SQLite - Advanced search operator
does not sound likenot working - Advanced search numeric rules (e.g.
year,played_times,album_count) not working properly on SQLite - Advanced search rules
album_countandsong_countnever finding artists whose respective count is 0 - Incorrect root node name on the actions
user_preferenceanduser_preferences
- API not working on ownCloud 10.14.0 (HTTP error 500 on all Ampache API calls)
- Subsonic API:
- Method
getAlbumInfo2response having incorrect root element name
#1125 @perillamint - On NC28+, every XML API call logged an error 'Undefined array key "" at /var/www/html/lib/private/AppFramework/Http.php#128'.
#1142
- Method
v1.10.0
Added
- Support for Nextcloud 28
#1116 - Support for PHP 8.3
- Ampache API:
- Support for argument
randomin the methodplaylist_songs - Method
bookmark - Support for argument
includein all methods returning bookmarks
- Support for argument
- Subsonic API:
- Property
playCountto song responses - OpenSubsonic API extensions:
- Properties
openSubsonic,type, andserverVersionto all responses - Allow getting the whole library with an empty
queryargument insearch3method
- Properties
- Property
- MusicBrainz link from Last.fm to the artist/album/track details pane, when available
- Filters "Recently added" and "Not recently added" for the smart playlist
#1098 - Optional "strict" mode for the history filters of the smart playlist
#1099 - Hint about the keyboard shortcuts in the Settings view and in tooltips
#1086
Changed
- Ampache API:
- Make
advanced_searchargumentsoperatorandtypeoptional - On method
bookmark_create, the argumentclientdefaults to null instead of "AmpacheAPI"
- Make
- Subsonic API: Methods
search2andsearch3support '*' as a wildcard - Consider also the tag names
unsynced_lyricsandunsyncedlyricswhen parsing lyrics
#1111 @RobertZenz - Updated the getID3 library to the development version 1.9.23-202312292105
- Fixes the issue of garbage bytes being extracted from some RIFF tags
#1115
- Fixes the issue of garbage bytes being extracted from some RIFF tags
- Search within the Music app now works with an own input field in the navigation pane instead of the unified search input
Fixed
- Songs with scanned integer property value (like track number) larger than 2147483647 causing error on PostgreSQL
#1106 - Lite player in Files attempting to play also audio files with MIME types unsupported on the current browser
- Subsonic API: Use integer-type IDs in
getMusicFoldersto comply with the API specification
#1108 - Playlist details showing length as "NaN:NaN" in case the playlist contains any invalid track references
v1.9.1
v1.9.0
Known issues
- This version had an app update problem on some versions of Nextcloud with SQLite, and was quickly replaced by v1.9.1.
Added
- Smart playlist feature, allowing list creation by user-supplied criteria
#619
#1061 @rstefko - Dragging tracks/albums/etc on the "+ New Playlist" item creates a new playlist containing those items
- Files playlist tab: Tooltip showing the file path or stream URL
- Subsonic API:
- Rating support: method
setRating, rating properties in all applicable result entities, typehighestto the methodgetAlbumList - Empty implementation for the method
getNowPlaying
#1079 @NattyNarwhal
- Rating support: method
- Ampache API:
#1078- New methods:
rateget_similargenres,genre,genre_artists,genre_albums,genre_songsbookmarks,get_bookmark,bookmark_create,bookmark_edit,bookmark_deletelive_streams,live_stream,live_stream_create,live_stream_edit,live_stream_deletelistbrowseuser_preferenceanduser_preferenceswith mock-up contentadvanced_searchwith partial support, not all search rules supported and some operators work only with MySQL/MariaDB
- Support for the type
album_artistin the methodget_indexes - Support for the parameter
album_artistin the methodartists - Support for the type
playlistin the methodstats - Support for the type
playlistin the methodsdownloadandstream - Support for the type
playlistin the methodflag - Support for the parameter
top50in the methodartist_songs - Support for the filter
highestin the methodstats - Support for the parameter
includein the methodsalbum,albums,artist, andartists - Fields
time,albumcount,songcount,prefix, andbasenameto theartisttype results - Fields
time,diskcount,songcount,prefix, andbasenameto thealbumtype results - Fields
disk,format,stream_format,stream_bitrate,stream_mime, andplaylisttracktosongtype results - Fields
time,size,bitrate,stream_bitrate,rating, andpreciseratingtopodcast_episodetype results - Fields
ratingandpreciseratingtopodcasttype results - Fields
flag,ratingandpreciseratingtoplaylisttype results - Null-valued fields
language,lyrics,mode,rate,replaygain_album_gain,replaygain_album_peak,replaygain_track_gain,replaygain_track_peak,r128_album_gain, andr128_track_gaintosongtype results - In JSON-mode only, field
artiststosongandalbumtype results - All the fields of
handshakeresponse on the response ofpingwithin a valid session
- New methods:
Changed
- Ampache API:
#1078
#909- Follow the APIv5 conventions if version 5.x.x requested by the client on
handshake - Follow the APIv6 conventions if version 6.0.0 or higher requested by the client on
handshake - Follow the APIv6 conventions if the client doesn't specify any version
- this may be overridden using the config.php key
music.ampache_api_default_ver
- this may be overridden using the config.php key
- Follow the APIv4 conventions with backward compatibility for APIv3 if version 3.x.x or 4.x.x requested by the client on
handshake- these are the same conventions which previous versions of Music always used
- The URLs returned in the
arttag of the entities are now cache-friendly, i.e. don't depend on the session - Terminate all related sessions immediately when API key deleted; previously, this happened upon session timeout
- Fields
ratingandpreciseratingnow show the user-given rating instead of constant 0 on all applicable result objects
- Follow the APIv5 conventions if version 5.x.x requested by the client on
- Own UI settings storage for each OC/NC instance running on the same server (same HTTP origin). Previously, all instances of the origin shared the settings.
- As a side-effect, any UI settings (like volume, view modes) from the previous version get discarded upon the SW update
- Also, volume settings in the Share and Files embedded players are now distinct from the volume in the main app
- Small optimization on the size of the
collection.jsonloaded by the web front-end - Order the playlists by name in the navigation pane, navigate automatically to the created or renamed playlist
#1083 - Any invalid playlist entries are now visible on the web UI to enable easy removal
#1087
Fixed
v1.8.4
Added
- Support for Nextcloud 27 (tested on RC3)
Changed
- Allow UTF-8 encoding also on playlists with the extension .m3u (in addition to .m3u8)
- The file is interpreted as ISO-8859-1 only if not valid UTF-8 or if so specified by the #EXTENC tag
#1047
- The file is interpreted as ISO-8859-1 only if not valid UTF-8 or if so specified by the #EXTENC tag
Fixed
- Folder icons not being theme-colored on Nextcloud 25+
- Navigation pane divider lines being invisible with some themes on Nextcloud 25+
- Subsonic: Incorrect interpretation of the optional
timeargument on thescrobblemethod
#1066 - "Show in Files" link in the track details popping up an empty player bar on Nextcloud (at least since NC23)
v1.8.3
Fixed
- On ownCloud, flooding the log with errors "Cannot declare class because the name is already in use" (since v1.8.2)
#1060 @prsnbrg - Nextcloud 25 and later not running the Music background tasks: podcast channel updates, database cleanup
#1044 - M4A-ALAC files sometimes starting to play simultaneously while the previous file is still playing
v1.8.2
Added
Changed
- Respect the "Ignored articles" setting also when sorting a playlist by artist
#1048 - In addition to 'http' and 'https', allow podcast streams from the URL schemes 'feed', 'podcast', 'pcast', 'podcasts', 'itms-pcast', 'itms-pcasts', 'itms-podcast', and 'itms-podcasts'
153901
Fixed
- Subsonic:
getAlbumListwithtype=alphabeticalByArtistnot working on PostgreSQL
#1046
v1.8.1
Changed
- Keyboard shortcuts for seeking and volume adjustment step in smaller increments when ALT key is held down
#1039 - The REST API for Ampache/Subsonic key management made more consistent with the other REST APIs
Fixed
- Ampache/Subsonic key creation not working from the web UI on Nextcloud versions < 25 and on ownCloud 10.0 (regression in v1.8.0)
#1038
v1.8.0
Added
- Basic support to play M4A files with ALAC encoding also on non-Apple browsers
#1030 - Basic support to play AIFF, AU, and CAF files
#767- Based on the Aurora.js (no plugins required)
- Limitations: no seeking, no adjusting of playback speed, possible glitches, may not work with all files
- Corresponding file extensions must be mapped to MIME types
audio/*, see below
- Command
occ music:register-mime-typesto add MIME type mappings for those supported audio file types which
are not mapped by default on OC and NC: .aac, .au, .aif, .aiff, .aifc, .caf
Changed
- Show the collapsed navigation pane when a track is dragged over the navigation pane toggle
#999 - Updated the getID3 library to the release version 1.9.22-202207161647
- More secure generation of the Ampache/Subsonic API keys
- Removed the REST API endpoint
/api/settings/userkey/add, leaving only/api/settings/userkey/generate
- Removed the REST API endpoint
- Wider progress bar on wide high-resolution screens also for the lite player within the Files app
- On individual shared file page (on OC), overlay the play icon on the preview image on hover
- Allow up to 5 redirects (up from 2) when fetching a podcast channel or internet radio station
- Color of the progress bar follows the selected color theme on NC
Fixed
- Small layout issues on Nextcloud 25
- Layout issue in the two-line controls pane on IE
- Not adjusting to dark theme when the theme comes from the browser preference (in NC25)
- User's podcasts, radio stations, and Ampache/Subsonic API keys not erased when an user account deleted
- Music controls not visible on publicly shared folders on NC25
#1028 - Wrong icon in the "New files to scan" and "No scanned files" pop-ups on NC25
- Firefox on Ubuntu selecting the single-column layout after page load regardless of the window width
#1029 - Tablet and mobile layout not working correctly on NC 25.0.2
#1036 - Playback jumping to the next radio station when seeking beyond the end of the already buffered content