php7.4
1152dceb88ee8b6681bcf13693796676 ./ampache-5.4.0_all.zip
1152dceb88ee8b6681bcf13693796676 ./ampache-5.4.0_all_php7.4.zip
006dafb9b68d78ddf9c6c7f929d7f84e ./ampache-5.4.0_all_squashed.zip
006dafb9b68d78ddf9c6c7f929d7f84e ./ampache-5.4.0_all_squashed_php7.4.zip
php8.0
e31f0f8856c25e23dc43287921b75473 ./ampache-5.4.0_all_php8.0.zip
5d3cb7fa71244f389a82f7951b031fae ./ampache-5.4.0_all_squashed_php8.0.zip
php8.1
ff94d12497e07073c3394ec3b764f892 ./ampache-5.4.0_all_php8.1.zip
4cfa7860ae89ea10db23e1c9370101ae ./ampache-5.4.0_all_squashed_php8.1.zip
Ampache 5.4.0-release
It might have only been 10 days ago but this release has some things in it that really can't be left in develop.
The release process is becoming a lot smoother as I work on improving the ampache-administrator repo.
First up; SPEED! after creating so many new columns we've added new indexes to speed things up.
If you have a large database you'll notice a really big decrease in response times across a lot of areas.
When I mean speed I mean some queries are 152 times faster than they were a week ago!
Second, so much more fixing. You're really going to enjoy how smooth things have gotten since that initial 5.0.0!
The CLI application cleanup:sortSongs has been fixed and greatly improved with a lot of new options and abilities
You can access --help on every cli with php bin/cli --help
and help for each command same way php bin/cli cleanup:sortSongs --help
Added
- Translation Updates May 2022
- Search
- Add
file
to album and artist search
- Add
- CLI
- New argument for run:updateCatalog
-f|--find
Find missing files and print a list of filenames - New argument for cleanup:sortSongs
-f|--files
Rename files and keep them in the current folder - New argument for cleanup:sortSongs
-l|--limit
Limit how many moves to allow before stopping - New argument for cleanup:sortSongs
[catalogName]
Name of Catalog (optional)
- New argument for run:updateCatalog
- Database 540002:
- Index
title
withenabled
onsong
table to speed up searching - Index
album
table columns;catalog
,album_artist
,original_year
,release_type
,release_status
,mbid
,mbid_group
- Index
object_type
withdate
inobject_count
table
- Index
Changed
- Moved to php-cs-fixer 3
- Update from tags now shows an 'Error' status if there was an issues reading the file
Fixed
- SQL for random artist with mapping
- SQL for servers < 5.0.0 might try to insert into a missing table
- Respect grouping for song_count searches
- Autoplay in xbmc localplay and conform to localplay api
- Ungrouped albums were forced into groups
- Artists array should overwrite artist_mbid arrays that are smaller
- Some empty globals relating to user
- More work on the forked Jplayer playlist code when using
play last
- DAAP play urls
- Single disk download links on group pages
- CLI
- cleanup:sortSongs was broken (It actually works again)
- cleanup:sortSongs removes incomplete copied files after failure
API 5.4.0
Added
- advanced_search
- Add
file
to album and artist search
- Add
php7.4
4f378b4e50d6a58c9bde2e7b611c4431 ./ampache-5.3.3_all.zip
4f378b4e50d6a58c9bde2e7b611c4431 ./ampache-5.3.3_all_php7.4.zip
efc96aa9dafb2789194f413526efaf69 ./ampache-5.3.3_all_squashed.zip
efc96aa9dafb2789194f413526efaf69 ./ampache-5.3.3_all_squashed_php7.4.zip
php8.0
cd395df55e26618ac761fc96daecf7b0 ./ampache-5.3.3_all_php8.0.zip
f89042d0877c76a609845ed51726ae1c ./ampache-5.3.3_all_squashed_php8.0.zip
php8.1
646bff037735ad06a250d3bb75a3d1fd ./ampache-5.3.3_all_php8.1.zip
e88a68357ef576bbab262d7c90c011ce ./ampache-5.3.3_all_squashed_php8.1.zip
Ampache 5.3.3-release
The 5.3 branch has been getting a lot of contributor support and we're releasing another bug-fix release.
If you have trouble with upgrading make sure the check out the wiki
Added
- Remove duplicates and order largest to smallest for art search
- Allow update_from_tags for a single Song from it's page
- Search
- Add
song_title
to album search - Add
album_title
andsong_title
to artist search - Add
orphaned_album
to song search
- Add
Changed
- Default art_search_limit raised to 15
- web_player shuffle improvements
- Current selected track will become the first track and everything else shuffled below it
- Playlist isn't automatically played so if a song was playing, it will continue to play
Fixed
- Speed up stream_playlist generation by chunking into blocks
- Make sure there is an object_id to fill in update_530006
- Remove song mapping on delete
- Make sure podcast descriptions don't overfill the column
- Clean dead total wasn't returned on completion
- Searching for albums with '# Played' with grouping enabled with album_map
- Adding a new xbmc localplay
- Catalog type filter in get_top_sql
- SubSonic
- Fixed the query searches (Again) based on the wildcards different clients may send
- Song discNumber was sending the MAX disk instead of the actual disk
- getPlayQueue doesn't change back to miliseconds from seconds
API 5.3.3
Added
- advanced_search
- Add
song_title
to album search - Add
album_title
andsong_title
to artist search - Add
orphaned_album
to song search
- Add
Fixed
- Api4::record_play had the
user
as mandatory again - After catalog actions; verify songs with an orphaned album which you won't be able to find in the ui
PHP7.4
c00010ad72321ca13e26edec6e40213a ampache-5.3.2_all.zip
c00010ad72321ca13e26edec6e40213a ampache-5.3.2_all_php7.4.zip
65b1708f6a415a6c08c5de0a63e89178 ampache-5.3.2_all_squashed.zip
65b1708f6a415a6c08c5de0a63e89178 ampache-5.3.2_all_squashed_php7.4.zip
PHP8.0
0c785e03f9541ede84ade50b76bd777e ampache-5.3.2_all_php8.0.zip
72fbfd3fbddcadd5066245bc70f192b7 ampache-5.3.2_all_squashed_php8.0.zip
PHP8.1
4be6e0181bdb4845f959c3bf05efa145 ampache-5.3.2_all_php8.1.zip
ecb038baf9591ef3c8346dad3855c1fd ampache-5.3.2_all_squashed_php8.1.zip
Ampache 5.3.2-release
Some QoL fixes here with some initial SubSonic, Search and that database column again!
We've had a lot of upgrades coming from 5.3.x so have you read up on how to upgrade?
Added
- Look for orphaned maps to delete.
- Get server timezone for get_datetime (date_default_timezone_get())
- Allow deleting played activity from the ui and count using a function (Require: 100)
Changed
- Updated the translation gathering process a little
- Organized the play/skip counting into it's own function
- Update artist from tags needs to update albums first
- SubSonic
- Only search for song title instead of everything
- Add starred to directory elements
Fixed
- Format on an empty album would complain in the log
- Update from tags might not remove the old song artist
- Migrating to a new album would leave old album maps
- Artist search query with mapping was very slow
- Database column check not included in 5.3.1 correctly
- SubSonic
- Get recently played
- Fixed up search queries using "" (wrapping in quotes means exact search)
API 5.3.2
NO CHANGE
PHP7.4
116726012de378fbbbe69ce7eb7cef29 ampache-5.3.1_all.zip
116726012de378fbbbe69ce7eb7cef29 ampache-5.3.1_all_php7.4.zip
be1c069dd3b54e397ed0a0f0e7299e3c ampache-5.3.1_all_squashed.zip
be1c069dd3b54e397ed0a0f0e7299e3c ampache-5.3.1_all_squashed_php7.4.zip
PHP8.0
85f74e1320a8f112c07c2b7c1afac785 ampache-5.3.1_all_php8.0.zip
3b7587481c2b3ab4f4d7507820c696f7 ampache-5.3.1_all_squashed_php8.0.zip
PHP8.1 Unsupported
19c3c327d30a6248c94930d5ee8dcba5 ampache-5.3.1_all_php8.1.zip
686d086762c03c67977486762f54641d ampache-5.3.1_all_squashed_php8.1.zip
Ampache 5.3.1-release
There were a few reports of some databases missing an important column. This release makes sure it's there.
Added
- Docker compose files to help create a local dev environment (read docker/README.md for more info)
- Added php8.1 to composer (still considered unstable)
Changed
- Began rework of Subsonic modules
Fixed
- Database missing
rsstoken
column in theuser
table - gather-messages.sh was finding lots more strings than it needed
- Query sql with ambiguous ID
- New song import might not map all the artists
- Catalog query missing a comma
API 5.3.1
NO CHANGE
PHP7.4
(MD5SUM 826c5a15a82dd6568de0abb6de8530cc) ./ampache-5.3.0_all.zip
(MD5SUM 826c5a15a82dd6568de0abb6de8530cc) ./ampache-5.3.0_all_php7.4.zip
(MD5SUM a8ca0ac8be55e08a2fba9ab323de67cb) ./ampache-5.3.0_all_squashed.zip
(MD5SUM a8ca0ac8be55e08a2fba9ab323de67cb) ./ampache-5.3.0_all_squashed_php7.4.zip
PHP8.0
(MD5SUM 29b5111ea1daf08812626725f113553d) ./ampache-5.3.0_all_php8.0.zip
(MD5SUM 316c23e89345fd7054ea47905734b9dd) ./ampache-5.3.0_all_squashed_php8.0.zip
PHP8.1 Unsupported
(MD5SUM ac00ef11226fc5395de9f7e59d59669f) ./ampache-5.3.0_all_php8.1.zip
(MD5SUM 1e6b5b0ac15d3a6a173de8c44aab608f) ./ampache-5.3.0_all_squashed_php8.1.zip
(note removed some extra files from the original release which has changed the md5sum)
Ampache 5.3.0-release
Please take note that while I've built this release for php8.1 it is not yet officially supported as it has not been thoroughly tested.
Consider it unstable until it can be tested fully.
This cycle we have added support for multiple Album and Song artists.
This allows multiple artists to be part of a single song/album object and is created from file tags.
Check out the wiki for more information about this feature.
The old and long ignored module jPlayer has been forked into the base Ampache code.
There have been a few fixes and changes to the module to make the webplayer a lot better to use.
Added
- Additional xhtml templates added
- Parse lots more WMA (ASF) file tags
- Add play next and play last to radio station rows
- Additional option for artist pages 'Show Artist Songs'
- Add some missing tag options for mpc files
- Allow manually syncing Artist name, year formed and place formed from musicbrainz (if it has an mbid)
- Notify and allow updating Plugins when updates are available
- You can now unhide a tag from the 'Hidden' page for Genres
- This will delete previous merges but it will not retag your songs (update from tags to fix that)
- Config version 61
- Add disable_xframe_sameorigin (allow disabling "X-Frame-Options: SAMEORIGIN")
- Disable catalog_verify_by_time by default
- Database 530016:
- Create
artist_map
table and fill it with data - Create
album_map
table and fill it with data - Use
song_count
&artist_count
usingalbum_map
- Drop id column from
catalog_map
table and alter object_type charset and collation - Alter
album_map
table charset and engine to MyISAM if engine set - Alter
artist_map
table charset and engine to MyISAM if engine set - Make sure
object_count
table has all the correct primary artist/album rows - Convert basic text columns into utf8 to reduce index sizes
- Remove
user_activity
columns that are useless - Delete duplicate rows on
object_count
- Compact mbid columns back to 36 characters
- Compact some
user
columns - enum
object_count
.count_type
- Index data on object_count
- Use a unique index on
object_count
- Compact
cache_object_count
,cache_object_count_run
columns - Add
show_album_artist
andshow_artist
preferences to show/hide Sidebar Browse menu links
- Create
- search:
- Add
songrating
to album search (My Rating (Song)) - Add
songrating
(My Rating (Song)) andalbumrating
(My Rating (Album)) to artist search - Allow empty/null searches for all mbid searches
- Allow empty/null searches for label searches
- Add
song_count
to album and artist search - Add
album_count
to artist search - Add
myplayedartist
(Played by Me (Artist)) to album search - Add
song_artist
to album search - Add alias
album_artist
to album search forartist
searches - Add
recent_added
to album search
- Add
Changed
- Clean up artists with a duplicate MBID (Use the lowest artist id)
- Delete cached recommendations instead of trying to update (Really slow)
- Artist::check uses MBID on lookups as well as name
- update_from_tags: Only update counts, tags and garbage collect after changes found
- Use albums instead of songs for catalog verify actions
- Expand search sidebar menu and collapse information without cookies
- Moved all the extended functions into the forked jplayer module
- Instead of skipping duplicate songs on import, disable them
- jPlayer (Webplayer):
- Shuffle now follows the currently playing track (If playing)
- Shuffle also does not track the old playlist so you can't undo a shuffle
- Subsonic:
- Check for art instead of always sending an art attribute
Removed
- search:
- removed mbid group sql from
possible_duplicate
andpossible_duplicate_album
- removed mbid group sql from
Fixed
- VaInfo time for size/playtime_seconds
- Tag arrays for Mbid and Artists lookup
- Deleted item tables would not record some deletions
- Updating the artist name would always migrate data when not required
- Artist::check would always create and artist object with readonly set
- Genres would not update the parent (Song->Album->Artist) whan using update from tags
- Random sql that uses search rules
- Use configured Ampache temp directory in Seafile catalog
- Prepare media before update from tags (Seafile needs to download the file first)
- Seafile catalog checks for a local file before downloading it again
- Delete custom_metadata when removed from the object
- Artist Garbage Collection was way too slow
- Album and Artist count value sql
- Don't remove Genre tags when they have been merged (hidden) into a different tag
- Don't delete merged (hidden) Genres from the tag table
- Album song_artist_count not calculated correctly
- Grouping with mbid_group was missing making some albums not possible to view
- Display and hide of artist columns in some pages based on count
- Clean and verify would count totals based on all items instead of item type
- Missing strings from xhtml templates
- Album grouping for getAlbumSuite with null values
- Set ratings for all album disks (if grouping enabled) for ratings and flags
- Issues when you don't have an album artist tag
- Correctly set null values on library_item edits
- Search for song art might have sent a Song object
- Fix missing preference on musicbrainz plugin
- Disable/enable catalog
- jPlayer (Webplayer):
- Fixed moving items in the playlist
- Fixed adding after the current playing track
- Fixed logic behind the index and order between the HTML and the JS lists
- Search:
- played search for album and artist was including your user in the results
- other_user artist search sql
- Subsonic:
- Artist was missing starred status
API 5.3.0
Added
- advanced_search:
- Add
songrating
to album search (My Rating (Song)) - Add
songrating
(My Rating (Song)) andalbumrating
(My Rating (Album)) to artist search - Allow empty/null searches for all mbid searches
- Allow empty/null searches for label searches
- Add
song_count
to album and artist search - Add
album_count
to artist search - Add
myplayedartist
(Played by Me (Artist)) to album search - Add
song_artist
to album search - Add alias
album_artist
to album search forartist
searches - Add
recent_added
to album search
- Add
(MD5SUM 42f236ac276ad04a7f318b56f97ebe37) ./ampache-5.2.1_all.zip
(MD5SUM 5706b191594b2aeb3c79cf455e41dae4) ./ampache-5.2.1_all_php7.4.zip
(MD5SUM 0d5e7f7bd5521790dc6d0939aa288599) ./ampache-5.2.1_all_php8.0.zip
(MD5SUM 12fc960bdcb88246c9322b77a29142d9) ./ampache-5.2.1_all_squashed.zip
(MD5SUM f84379118fefb37bb28466f440424390) ./ampache-5.2.1_all_squashed_php7.4.zip
(MD5SUM ce006dc612375aab47240dc3e71ea940) ./ampache-5.2.1_all_squashed_php8.0.zip
Ampache 5.2.1-release
What a big one for a bugfix release!
A lot of work has gone into further automating API documentation and release testing. Lots of API3 and API4 issues have been fixed and so many little annoyances have been fixed after the big 5.0 transition.
note the naming for zips. php7.4 supported zips are the equivalent of the unnamed all zips.
- ampache-5.2.1_all.zip == ampache-5.2.1_all_php7.4.zip
- ampache-5.2.1_all_squashed.zip == ampache-5.2.1_all_squashed_php7.4.zip
Added
- Translation Updates Jan 2022
- Count tables on create and delete actions
- Set allow-plugins in composer.json
- Improve description of rss feed to make each play more unique
- Wait 30 minutes between catalog updates before running update_counts
- On database connection failure, go to test.php
- Search:
- Added no_tag as a possible search item (song, album, artist)
- Document the alias names of search rules (docs/API-advanced-search.md)
- Add playlist and playlist_name search to artist types
Changed
- AmpachePersonalFavorites: double the playlist title height
- Move get_f_link from playlist/search into playlist_object
- Make some functions that do the same thing use the same variable names
- Don't optimize tables when doing full_service catalog updates
- Use parameters in search queries instead of printing them into the query
- Logout action requires a session id now to log out
- Update mapping more often after catalog actions
- Album check function added mbid_group to lookup
- Support database upgrades from version 350008 (Ampache 3.5.4)
- Remove additional 'Details' string from song/video and radio pages
- Tag value is being extra filtered in the edit screen
- Hide the login link when using simple_user_mode and no auth is set note this does not stop you logging in with /login.php
- When not using auth, keep recording stats for system user plays
- Hide username column from Recently Played when not authed as a user
Fixed
- Lowercase package names in composer
- CLI add user
- Demo Systemd timer files WantedBy
- Some missing garbage collection for some tables
- Phantom html table row in show_catalogs page
- Grouping albums with special characters
- Searching albums with special characters
- Lots more PHP8 runtime errors
- SQL for artists in catalog_map
- Typo in url for update_all_file_tags
- SQL error in database update 500013 (Not fatal)
- Don't garbage_collect tags after merging
- Create art URLs correctly when using rewrite rules and no auth
- Respect sidebar_light preference when no cookie is present
- Don't try to create users that already exist
- Add/Edit catalogs in the UI missing filter_user
- Search:
- possible_duplicate was grouping too much together
- Subsonic:
- Jukeboxcontrol didn't send an index to the client
API 5.2.1
Added
- API5
- The docs for errors have been extended for the type when returned
Changed
- API5
- Return the xml total_count of playlists based on hide_search preference
Fixed
- API5
- Some errors were returning the value and not the parameter on error
- API4
- update_from_tags: type case error
- rate: Object type to class mapping
- flag: Object type to class mapping
- update_art: Object type to class mapping and type case check
- update_from_tags: Object type to class mapping
- genre and tag function compatibility
- API3
- stats: incorrect getRandom call
- rate: Object type to class mapping
- playlist: bad escaping on the playlist id
(MD5SUM 1aa80adb5cdbe357c2c409dcfbce2ec2) ../ampache-5.2.0_all.zip
(MD5SUM 59cd948ce3f6630700544f28970daf84) ../ampache-5.2.0_all_php8.0.zip
(MD5SUM 7901961f20e636c8465ab5d7a3558021) ../ampache-5.2.0_all_squashed.zip
(MD5SUM db238cb5c6580d877735e902a52aeb8c) ../ampache-5.2.0_all_squashed_php8.0.zip
Bug in smart lists fixed up so new zips. (One day i'll have this part automated.)
(MD5SUM 54f63bf8f9c5c3d422a214f32a205930) ../ampache-5.2.0_all.zip
(MD5SUM 2f1551c564a13cc13a010cc489437e47) ../ampache-5.2.0_all_php8.0.zip
(MD5SUM 5b9ebcf643653b5ef82f400f558daa19) ../ampache-5.2.0_all_squashed.zip
(MD5SUM 6dd17e0282222572b997855ceae4fd9c) ../ampache-5.2.0_all_squashed_php8.0.zip
Ampache 5.2.0-release
Ampache 5.2.0 (and all future versions) now support multiple API versions.
This means that you can send your handshake with a specific version (e.g. 390001, 440001 or 5.2.0)
you will be sent API3, API4 and API5 responses in return.
To change from API3 to API5 you can send a ping with a new version parameter to update your session
(or send goodbye to log off and start again.)
API3 is not recommended for use outside of running old applications and it is recommended that you turn off API versions you don't use.
You can read up about all the API changes on ampache.org.
Added
- Get image from more tag types
- Translation Updates Nov 2021
- Added the ability to play random songs from a playlist with a play url
- Update AmpacheRatingMatch.php to allow writing ratings to file tags
- Enable 'Save ratings to file tags when changed' on the plugin page
- write_tags must be enabled in the config file
- Config version 59
- Removed overwrite_tags (It doesn't do anything)
- playlist_art now true by default
- Database 5.2.0 Build 5:
- Make sure preference names are always unique
- Add ui options ('api_enable_3', 'api_enable_4', 'api_enable_5') to enable/disable specific API versions
- Add ui option ('api_force_version') to force a specific API response (even if that version is disabled)
- Add ui option ('show_playlist_username') Show playlist owner username in titles
- Add ui option ('api_hidden_playlists') Hide playlists in Subsonic and API clients that start with this string
- Add ui option ('api_hide_dupe_searches') Hide searchs in Subsonic and API clients with the same name as playlists (and both owned by you)
Changed
- Don't try to return objects that aren't there sometimes
- Update catalog counts before returning API data
- Fix preferences for system and users after each update
- Light theme hover color for sidebar
- Changed some cookie from Strict to Lax to fix some bugs
- Check ldap group by username instead of DN
- Allow gathering random art from playlist contents instead of generating on page load
Removed
- Remove AssestCache class and functions (unreliable)
- When recording stats don't ignore based on a hardcoded gap
Fixed
- test_image function would fail without php-gd (which is optional)
- Searching for images in files could not return the files you found
- Get rid of that annoying space on api key text in the WebUI
- Catalog map for artist tables
- ratingmatch_stars value 5 wasn't setting itself
- filter_has_var is returning false in FCGI enabled PHP
- Allow catalog manager to manage a catalog in the WebUI
- When using custom metadata don't overwrite managed values
- Missing (and duplicate) preferences for users and system
- Size 0 when reading file tags
- Disk and totaldisks for wma files
- Genre for quicktime/m4a files
- Last.fm login impossible with strict cookies
- Some double scrubs of text in image links
- Updating playlist user would only update the name and not the ID
- garbage collection for playlist images
- Stats when skipping songs with 0 plays
- More PHP8 runtime errors
- Fixed single song random playback using a play url
- Make sure we error if php_intl module isn't found
API 5.2.0
Check out the docs for multi API support at ampache.org
note JSON didn't exist for API3 so all json requests from API3 calls will revert to API5
Added
- Support for API3, API4 and API5 responses including PHP8 support (keeps original tag calls)
- API5
- playlists: add parameter
show_dupes
if true ignore 'api_hide_dupe_searches' setting - get_art: add parameter
fallback
if true return default art ('blankalbum.png') instead of an error
- playlists: add parameter
- API4
- playlists: add parameter
show_dupes
if true ignore 'api_hide_dupe_searches' setting
- playlists: add parameter
- API3
- Added genre calls as an alias to tag functions to match API4 and API5
Fixed
- Session and user id identification and errors from that
- API5
- playlists: sql for searches wasn't filtering
- Art URL for searches was malformed
- API4
- Art URL for searches was malformed
- API3
- democratic: This method was broken in API3 and never worked correctly
NOTE The minimum supported php version (currently 7.4) will always be released as ampache-x.x.x_all.zip
Additional php versions will be tagged by binary name e.g. ampache-5.x.x_all_php8.0.zip
, ampache-5.x.x_all_php8.1.zip
(MD5SUM 49e75d33c974884e66539717840d732c) ../ampache-5.1.1_all.zip
(MD5SUM 30c543b635d9d39720ba094a102f58d4) ../ampache-5.1.1_all_php8.0.zip
(MD5SUM 74533247c0e3a44d2cf0fc4862d8ef58) ../ampache-5.1.1_all_squashed.zip
(MD5SUM 6dbd8ed37cf9e53d93fb131ced3ab27c) ../ampache-5.1.1_all_squashed_php8.0.zip
Ampache 5.1.1-release
IMPORTANT ampache-5.1.1_all_squashed.zip and ampache-5.1.1_all_squashed_php8.0.zip are versions where the /public web root has been moved and back into the project root. This version isn't a supported release method but will be tested and made available for situations where using ./public isn't possible
Added
- Clean cache files that aren't in the database
- Translate random and democratic in the webplayer
- Add transcode_flv to config
- Add playlist, playlist_name to album searches
- Send the user to an error page when the config wasn't written
- Config version 58
- Removed subsonic_stream_scrobble
- Database 5.1.0 Build 5:
- Add
subsonic_always_download
to preferences
- Add
Changed
- Rebuild aurora.js modules from source
- Perform waveform and cache on disk the same way
- Move song waveforms on load if in the wrong folder
- Make genre searches faster with a join instead of select in
- Send a flat file path for zips when using browse/playlist
Removed
- Podcast links on the dashboard removed (There is no link for them to go to)
- Remove subsonic_stream_scrobble from config and make it per user (subsonic_always_download)
Fixed
- Use addslashes for translations in html5 player
- Send the generic client name for localplay again
- Use the set permission level for localplay access
- Webplayer playlists would become out of order after moving/adding
- Cache process could cache the wrong song
- Missing user id in search
- Grouping sql in search when not grouping albums
- Setting Localplay instance would not update the preference
- Advanced search (Random) wasn't working in php8
- Fixed returning the correct objects for advanced search (Random)
- Some objects would add transcode_to to their play url
- Set system prefs for mb and tadb plugins
- Updating a channel in php8
- Get tmp_playlist by session (could get confused and never retrieve items)
- Setting cookies and session details on remember_me sessions
- Set the catalog parameters for seafile catalogs
- Database updates for php8
- Remember me session cookie error when recreating a new session
- ampache.sql script had AUTO_INCREMENT data it didn't need
- Subsonic
- Get the artists for a single catalog correctly
- Browse highest used the sql differently to the UI
API 5.1.1
Fixed
- Access to podcast_episode_delete
- stats calls with an offest and limit
- advanced_search calls with an offset and limit
NOTE The api would not send a correct version if you were using an old version string (e.g. 350001, 443001, etc)
The release has been updated to match this.
(MD5SUM b5a086bc1658d64f286718a8e428a090) ./ampache-5.1.0_all.zip
(MD5SUM 4bd9181da107c2bad9fafa8e9a7391e1) ./ampache-5.1.0_all_php8.zip
(MD5SUM a23a2e9ba9ecae86a29d100737edd7c2) ./ampache-5.1.0_all_squashed.zip
(MD5SUM e75be09473a8c7d3ec3ccc5519c13636) ./ampache-5.1.0_all_squashed_php8.zip
(MD5SUM f5a96e61f76c729fb82165522c537a69) ./ampache-5.1.0_all.zip
(MD5SUM bbe9aba543917305a07b992dacf3b3ed) ./ampache-5.1.0_all_php8.zip
(MD5SUM bb05f88de33cd5363cc0f9a996d46947) ./ampache-5.1.0_all_squashed.zip
(MD5SUM 0043094b72ab284b57a648efe44bd0cf) ./ampache-5.1.0_all_squashed_php8.zip
Ampache 5.1.0-release
GOOD NEWS PHP8 is now supported!
IMPORTANT ampache-5.1.0_all_squashed.zip and ampache-5.1.0_all_squashed_php8.zip are versions where the /public web root has been moved and back into the project root. This version isn't a supported release method but will be tested and made available for situations where using ./public isn't possible
Added
- Split search items in WebUI into optgroup categories
- Add en_AU as a locale
- Require confirmation on enable/disable user links
- Add f_size to video parameters
- Record plays for live_streams and playlists in object_count
- Add podcast to the object_count table and add missing rows
- Store playlist art in the database
- Show the art on the main playlist page
- Allow reset and change of playlist art
- Pick a random art item on reset and store
- Add a simple continue button for these dialogs
- Fix up display of image showaction
- Subsonic art looks for the playlist art the same as UI
- Check for
?
in a query before trying to use parameters - Add the current php version to the debug page
- Cache bust some frequently updated assets
- Clear asset cache during AutoUpdate
- Gather Artist recommendations on play/Stat insert
- Add Top Tracks and Similar Songs to Artist pages
- Extend run:updateCatalog --update to update artist name matching mbid
- Add duplicate_mbid_group to album searches
- Restored missing artist search to the header searchbar
- Press enter on the list header to allow changing page number
- Translation Update October 2021
- Config version 57
- NEW config options
- allow_upload_scripts: Allow or disallow upload scripts on the server
- Database 5.1.0 Build 4:
- Add
podcast
to object_count table - Add
podcast
to cache_object_count table - Add
live_stream
to the rating table - Add
waveforms
for podcast episodes
- Add
- PHP8 Support
- Use array_key_exists to skip runtime errors
- Fix undefined variables in templates
- Errors with wanted/missing lookups and templates
- Ajax handler updates and fixes
- Set default and fallback values more often to avoid errors
- Query errors would kill the whole page
- Stop trying to read unreadable files
- Explode key pairs when there is something to explode
- Don't try to update preferences that don't exist
- Errors when not logged in trying to load a session
- NEW files
- Test scripts: codecoverage.sh, stan.sh, tests.sh
Changed
- Always update time when updating songs and videos from tags
- Merge config 'ratings' and 'userflags' checks into ratings. (drop userflags)
- Split search items into groups to help make it a bit clearer
- Rearranged the list of search items
- Simplify PlayAction code a bit and use filter_input
- Speed up update_counts for missing object_counts
- Enable Podcasts on new installs
- Delete composer.lock
- bin/cli run:updateCatalog with no options now does clean, Add, Verify and gather for all catalogs
- Make category headers a bit nicer
- Check for valid browse types before loading nothing
- Browsing Genre defaults to artist
- Skip albums that match the exact title in wanted search
- Translate all database description strings on updates
- Hi-res blankalbum/placeholder image (1400x1400)
- Allow larger artist summary with a scroll. linebreak place, year formed
- During garbage collection clean up empty strings with NULL
- Subsonic
- Disable stat recording on stream calls (disable subsonic_stream_scrobble in config to enable)
Removed
- object_cnt: use total_count and total_skip instead of calculated properties
- f_title: use f_name
- Scrub CSS with Autorprefixer
Fixed
- SQL query error for Random Album in certain config setups
- Album suite needed even without grouping
- Stop scrubbing the podcast title so hard (so many
&
's) - Use total_count and total_skip columns for searches (Fixes searching with 0)
- Can't change view limit on Android
- Localplay instance could be 1
- Missing add_type variable on ACL pages
- Light theme follow button color
- Missing CSS on list headers
- Templates with missing variables
- Fix Stream_Playlist::_add_urls to stop mismatched query values
- Fix stream.php downloads not sending their url parameters to PlayAction
- Garbage collect object_count for the possible items
- Do not drop catalog in table podcast_episode when it doesn't exist yet
- AAC codec from itunes doesn't provide a bitrate_mode (assume vbr)
- bin/cli ExportPlaylistCommand had out of order args
- bin/cli Allow database updates when out of date
- Fix computeCache for playlists
- Logic of SQL query to get random albums
- Simplify the join code for some queries
- Don't force random for smartlists when you turn it off
- Empty release_date when updating videos
- Chrome errors where Content-Disposition has a comma (,)
- Remove subtitle in stream_playlist if empty
- Fix options and bitrate selection for stream.php requests
- Scrobbles from Song::can_scrobble
- Default preference list
- MusicBrainz Artist Id could have been replaced with the Album Id
- Artists being duplicated when feat. another artist
- Don't let a non-critical update fail DB update
- Search for 'played' albums and artists
- Commands loading plugins from cli might not have a user
- Dashboard links to podcast episodes and art
- Lots of issues in the webplayer which only supported song links
- Clean up deleted user date from all tables
- Waveforms for podcast episodes
- Subsonic
- Trim quotes (") for Subsonic searches (some clients add them)
- Support exact (lucene) searching when using quotes (")
- Browse by folder is fixed
- Faster browse queries for all types
- Fix catalog browsing and loading library
API 5.1.0
Added
- NEW API functions
- Api::live_stream (get a radio stream by id)
- Api::live_streams
- Api::stream Added type 'podcast_episode' ('podcast' to be removed in Ampache 6)
- Add 'time' and 'size' to all podcast_episode responses
Changed
- live_stream objects added 'catalog' and 'site_url'
- stats: additional type values: 'video', 'playlist', 'podcast', 'podcast_episode'
Fixed
- get_indexes: JSON didn't think live_streams was valid (it is)
- record_play: user is optional
- Bad xml tags in deleted functions
- scrobble: Add song_mbid, artist_mbid, album_mbid (docs have no '_' so support both)
(MD5SUM d0b783e3219ce2a6b04c89d4f826bce6) ../ampache-5.0.0_all.zip
(MD5SUM aecf8dca7df32ea011b47e875d118d91) ./ampache-5.0.0_squashed.zip
Ampache 5.0.0-release
Ampache 5 is here and it's big!
- Check out Ampache 5 for Admins
- As well as Ampache 5 for Users
- The bin folder has had a major rework
- You can pre cache files using Transcode Caching
IMPORTANT ampache-5.0.0_squashed.zip is a version where the new /public web root has been moved and back into the project root. This version isn't a supported release method but will be tested and made available for situations where using ./public isn't possible
IMPORTANT instead of using date() we are now using IntlDateFormatter and your locale to identify formats.
This means that 'custom_datetime' based on the date() format is incorrect and will look weird.
Look here for the code to change your 'custom_datetime' string [(http://userguide.icu-project.org/formatparse/datetime)]
This means Ampache now requires php-intl module/dll to be enabled.
IMPORTANT For new installs default database charset/collation and table engine have changed
- Engine MyISAM => InnoDB
- Charset utf8 => utf8mb4
- Collation utf8_unicode_ci => utf8mb4_unicode_ci
If you want to keep utf8 make sure you set it before running updates.
- To keep the current collation/charset update your config file
- Set
database_charset = "utf8"
- Set
database_collation = "utf8_unicode_ci"
- Set
Added
- Private catalogs! You can now set a public or per user catalog for your music folders
- Cache transcoded files before a user requests them with Transcode Caching
- Added a CONTRIBUTING.md file
- php-intl is now required for translation of date formats into your locale
- Added %R (Release Status) to catalog pattern matching
- Add ability to hide the Song Artist column for Albums with one Artist
- Add ability to browse albums by Original Year
- Add ability to hide the licence column on song pages
- A helper index.php has been added to the old project root with directions to help
- Show the country and Active status (Generated tags are assumed active) on label rows
- Podcast_Episode show episode art for podcast mashup allow sort by date
- Save a search or Smartlist as a regular playlist
- New option to refresh a Playlist from Searches with the same name
- Option to change the playlist owner when editing OR importing
- Set "X-Frame-Options: SAMEORIGIN" on login page
- Added the ability to export database art when local_metadata_dir is enabled
- Save more types of thumb to the local_metadata_dir when enabled
- Inform with a "Not Found: podcast" when you haven't created a podcast catalog
- Added CatalogUpdate import command to the WebUI (Import = Add + playlist imports)
- Search changes
- Add 'possible_duplicate', 'recently_played' to song, artist and album search
- Add 'catalog' to artist and album search
- Add 'favorite_album', 'favorite_artist' to song search
- Add 'release_status' to album search
- Add 1, 5 and 10 to the Maximum Results limit
- Database 5.0.0 Build 15:
- Add
song_count
,album_count
,album_group_count
to artist table - Add
release_status
,addition_time
,catalog
,song_count
,artist_count
to album table - Add
mbid
,country
,active
to label table - Add
total_count
andtotal_skip
to album, artist, song, video and podcast_episode tables - Add
catalog
to podcast_episode table - Add
filter_user
to catalog table - Add
total_count
,episodes
to podcast table - Add
username
to playlist table - Create catalog_map table (map catalog location for media objects)
- Create user_playlist table (Global play queue)
- Create user_data table (One shot info for user actions)
- Create deleted_song, deleted_video and deleted_podcast_episode tables for tracking deleted files
- Add
- NEW database options
- use_original_year: Browse by Original Year for albums (falls back to Year)
- hide_single_artist: Hide the Song Artist column for Albums with one Artist
- show_license: Hiding the license column in song rows
- hide_genres: Hide the Genre column in all browse table rows
- Config version 56
- NEW config options
- composer_binary_path: Override the composer binary path to distinguish between multiple composer versions
- write_tags: Write tag changes to file (including art if available)
- art_zip_add: Include Album Art for zip downlaods
- catalog_filter: Allow filtering catalogs to specific users
- catalog_verify_by_time: Only verify the files that have been modified since the last verify
- cache_path: The folder where the pre-transcoded files will be stored
- cache_target: Target audio format for the cache
- cache_remote: Remote catalogs will cache every file so this is handled separately
- catalog_ignore_pattern: Allow you to ignore audio, video and playlist files with a regex
- NEW cli commands
run:moveCatalogPath
: Change a Catalog pathrun:cacheProcess
: Run the cache processexport:databaseArt
: Export all database art to local_metadata_dir
Changed
- get_datetime(): use IntlDateFormatter to format based on locale. [(https://www.php.net/manual/en/intldateformatter.format.php)]
- Renamed 'Tag' strings to 'Genre'
- Changed sidebar back to browse for artist/album
- Moved sidebar mashup pages into their own 'Dashboards' section
- Move artist counts (song, album) to a DB column
- Global counts are calculated after catalog changes instead of dynamically
- Display userflag with star ratings
- Always put year in Spotify art search if available
- Imported playslists don't add the extension to the title
- Visually crop images from the centre instead of resizing into a square
- Display release year if it doesn't macth original_year. e.g. 'Back in Black (2010)'
- Don't round the average rating to an integer
- Replace mt_rand with random_bytes for random token generation
- Move user bandwidth calculations out of the user format function into the user_data table
- All localplay links use the type (e.g. mpd/upnp) as the agent to fix muti-client access
- updateCatalog now implies add when using -i / --import by itself
- Playlist Import checks for playlists by your user only in the UI (System for the cli)
- Plugins: Use only https for building gravatar urls
- Scrobble actions now check for the exact time as well (different agents or scripts would insert)
- If you call a play url without an action we assume stream
- Use ISO 8601 date for podcast episode pubdate display
- Database tables default to InnoDB engine with utf8mb4 charset & collation
- Subsonic
- Wait a few seconds before allowing scrobbles to avoid collisions
- Shift the last music play if gap is bigger than 5 repeated plays (over night, etc)
Removed
- Take out the random items (except random search) from the main sidebar (use the playlist on the rightbar instead)
- 'Find Duplicates' and related pages have been removed. Use 'Possible Duplicate' searches instead
- 'Genre' and 'Missing Artists' removed from the top search bar
- Take out the info icon from the song row; just click the song link
- Take song artist out of the album edit popup
- File tag reading for Band/Album Artist
- Corrected album_artist collection and added missing tags to vorbis, aac and id3v2
- Removed links from album list headers when split by release type
- REMOVED config options
- write_id3: Use write_tags
- write_id3_art: Use write_tags
Fixed
- Delete duplicates from song table
- Mashup page for podcast_episodes
- Searching by Genre needed a query overhaul
- Album groupings are the same everywhere when album_group is enabled
- Unknown (Orphaned) groups all unknown files into one artist and album
- Album groups for ratings and userflags
- SQL queries regarding rating order and grouping of mutliple users
- Ensure valid media is found before inserting into a playlist
- Searching by Genre needed a lot of updates to speed up and correct
- Bump phpmailer/phpmailer from 6.4.1 to 6.5.0 (#2957)
- Groupings for albums and add original_year to grouping
- Editing album titles with prefixes
- CSS fixes for light theme
- Shares didn't insert into object_count correctly
- Repair missing rows in object_count after catalog updates
- Browse / Mashup by podcast_episode
- Sorting for a lot of browse pages that used arguments
- Refreshing the details after editing an object didn't include browse aruments
- Get the correct total artist_count for albums when grouped
- Some buttons and links in the light theme needed extra CSS
- Updated the inotifywait.sh example to stop it trying to add the same file multiple times
- Translations could break JS with apostrophes
- Playlist imports with an empty web_path would never work
- Playlist imports were importing nothing
- List preferences didn't allow null values after being set (Personal Favorites plugin)
- When using album_art_store_disk the art lookup was hardcoded for jpg
- Generating thumbnails wouldn't work with album_art_store_disk enabled
- Updating config values for spotify_art_filter and art_search_limit would not keep your value
- Delete podcasts and radio streams when deleting a catalog
- Collect recommendation garbage correctly
- Empty release date when updating a video would fail
- Scrub out some link titles that can be abused by uploads
- Subsonic
- Support a global user playqueue with getplayqueue, saveplayqueue
- Incorrect header being set on art requests
- averageRating wasn't correctly cast for json
- bookmark JSON was not correctly converted
API 5.0.0
All API code that used 'Tag' now references 'Genre' instead
This version of the API is the first semantic version. "5.0.0"
Added
- Add global playcount to podcast_episode and video responses
- searches (the number of saved smartlists) added to the handshake/ping response
- NEW API functions
- Api::song_delete (Delete files when you are allowed to)
- Api::user_preferences (Get your user preferences)
- Api::user_preference (Get your preference by name)
- Api::system_update (Check Ampache for updates and run the update if there is one.)
- Api::system_preferences (Preferences for the system user)
- Api::system_preference (Get a system preference by name)
- Api::preference_create (Add a new preference to Ampache)
- Api::preference_edit (Edit a preference value by name; optionally apply to all users)
- Api::preference_delete (Delete a preference by name)
- Api::labels (list your record labels)
- Api::label (get a label by id)
- Api::label_artists (get all artists attached to that label)
- Api::get_bookmark (See if you've previously played the file)
- Api::bookmarks (List all bookmarks created by your account)
- Api::bookmark_create (Create a bookmark to allow revisting later)
- Api::bookmark_edit (Edit a bookmark)
- Api::bookmark_delete (Delete a bookmark by object id, type, user and client name)
- Api::localplay_songs (Get the list of songs in your localplay instance)
- API::deleted_songs
- API::deleted_podcast_episodes
- API::deleted_videos
Changed
- The API version matches release version '5.0.0'
- A backcompatible version (500000) is sent when using old api versions
- handshake and ping counts now return the actual object counts for playlists
- 'playlists' => $counts['playlist'],
- 'searches' => $counts['search'],
- 'playlists_searches' => $counts['playlist'] + $counts['search']
- Renamed functions:
- tags => genres
- tag => genre
- tag_artists => genre_artists
- tag_albums => genre_albums
- tag_songs => genre_songs
- Don't allow duplicate podcast feeds
- Make filter optional in shares, genre_artists, genre_albums, genre_songs (Used as a general catch all method like genres)
- Error Codes and response structure has changed
- 4700 Access Control not Enabled
- 4701 Received Invalid Handshake
- 4703 Access Denied
- 4704 Not Found
- 4705 Missing Method
- 4706 Depreciated Method
- 4710 Bad Request
- 4742 Failed Access Check
- stats: Removed back compat from older versions. Only 'type' is mandatory
- Return empty objects when the request was correct but the results were empty
- Don't transcode podcast_episodes
- localplay
- added 'track' parameter used by 'skip' commands to go to the playlist track (playlist starts at 1)
- system_update: update the database if required as well
- playlist_edit: added 'owner' as an optional parameter (Change playlist owner to the user id)
- catalog_file: Allow comma-separate task values. (good for API inotify scripts)
- podcast_episode object "pubdate" has been changed to ISO 8601 date (2004-02-12T15:19:21+00:00)
- podcast object "build_date" and "sync_date" have also been changed to ISO 8601 date
Fixed
- catalog_file: Couldn't add files