All Versions
17
Latest Version
Avg Release Cycle
57 days
Latest Release
1208 days ago

Changelog History
Page 1

  • v5.0.0-pre Changes

    December 07, 2020

    🚀 ffcbc5923d1ffc908cf3bafe05c4bb3c ../ampache-5.0.0-pre-release1_all.zip

    🚀 This pre-release is for the brave of heart as well as so i can add a docker image preview release.
    ⚡️ The preview will be updated while we work on documenting and socializing the changes with users.

    ⬆️ DO NOT UPGRADE YOUR MAIN AMPACHE INSTANCE

    ⬆️ Seriously, make a copy of your conf and put this in a new folder (or try the docker) before upgrading your main Ampache

    🐳 There are now Docker Images available for testing!

    📦 This package requires php >=7.4 || >=8.0

    This is a major rewrite and will break if you aren't aware of the changes .

    • ⚡️ You will need to update the web server to point to the new base folder. (/public)
    • You will need to make sure you've run composer install again. (composer install)
    • ⚡️ You will need to update scripts and commands (the /bin folder has combined each script into a single application)
    • if you used php-cs-fixer it's still there in the vender folder (/vendor/bin/php-cs-fixer)

    The Ampache website now resides in the public folder
    image

    The bin folder has combined all the separate application files into a single cli application
    image

  • v4.2.5 Changes

    December 04, 2020

    (MD5SUM 57564e04433a98b12cc641205ab13cad) ../ampache-4.2.5_all.zip

    🚀 Ampache 4.2.5-release

    🛠 A few important bug fixes that make playlists and stream URLs faster to create as well as some fixes to Democratic playback.

    ➕ Added

    • ➕ Use _add_urls when building a stream playlist

    🔄 Changed

    • ✂ Removed the forced random from search
    • 🔌 Put the browse header at the top above plugins
    • 👉 Make the webplayer class a bit faster at deciding what to transcode

    🛠 Fixed

    • Ampache Debug, cron.lib.php missing from init
    • Slow playlist creation when inserting a large amount of items
    • Stream_URL properties were inconsistently applied
    • 🛠 Fix streaming when play_type is Democratic
    • 💾 Save your limit and random settings when creating a smartlist

    API 4.2.5

    NO CHANGE

  • v4.2.4 Changes

    November 03, 2020

    (MD5SUM 3d86288f9b7d2854fa7c36065d307d65) ../ampache-4.2.4_all.zip

    🚀 Ampache 4.2.4-release

    🚀 Another minor release fixing some issues found over the last month.

    ➕ Added

    • "Random" tickbox added to search pages

    🔄 Changed

    • Fall back to year when using original year in search

    🛠 Fixed

    • 👉 User was being created but you were told it isn't
    • The search pages remember your limit correctly
    • 👻 PHP exception when < 7.1
    • ⚡️ Correct "Recently Added", "Recently Updated" searches
    • Check that song can be inserted before inserting the remaining rows
    • Logic in stat recording when skips occur
    • Don't query for null tag ids

    API 4.2.4

    NO CHANGE

  • v4.2.3 Changes

    October 06, 2020

    (MD5SUM 6423cd2254b88a88aa19991a0dd7b2e4) ../ampache-4.2.3_all.zip

    🚀 Ampache 4.2.3-release

    🚀 Minor release fixing some issues found over the last month.

    ➕ Added

    • Subsonic: Generate errors for objects missing art

    🔄 Changed

    • Don't mark short songs as skipped
    • Subsonic: Stop converting strings to ints in JSON responses

    🛠 Fixed

    • 👉 User registrations
    • ↪ Workaround null values for new columns in search table
    • 🚀 Check release_type length before inserting into the database
    • Ensure Album Artist is set correctly on songs
    • Subsonic: Fix callbacks for similarSongs2 and artistInfo2
    • 🛠 Subsonic: getCoverArt fixes

    API 4.2.3

    NO CHANGE

  • v4.2.2 Changes

    September 02, 2020

    (MD5SUM d5c37a0889f8e4a79d11458a89a8bc19) ../ampache-4.2.2_all.zip

    🚀 Ampache 4.2.2-release

    DATABASE CHANGES You can now force a default collation and charset on your database.
    If you choose to use utf8mb4; Ampache will convert your table engine to InnoDB to handle the extra bytes.

    ➕ Added

    • Numeric 'Played/Skipped ratio' added to search. (Set using (stream/skip)*100.)
      • > 0 & < 100: Skipped more than played
      • 100: Equal plays and skips
      • > 100: Played more than skipped
    • ➕ Add 'Original Year', 'Release Type' to Album searches
    • 👍 Allow setting custom database collation and charset without overwriting your changes
    • Video search added to random.php
    • 'samesite=strict' on JS cookies
    • ⚡️ Translation updates (August 2020)
    • Put 'Labels' into search, browse headers and sidebar when enabled
    • 🆕 NEW config options (config_version 45)
      • database_charset: Set a default charset for your database
      • database_collation: Set a default collation for your database
      • simple_user_mode: Don't allow users to edit their account values (used for demo sites that allow login)
    • 🆕 NEW files
      • bin/update_file.inc: Update your catalog when individual files are changed using inotifywait.sh
      • bin/update_db.inc: Update your database collation, charset and table engine from the cli
      • docs/examples/inotifywait.sh: script to use inotifywait and update_file.inc to update as file changes happen
      • docs/examples/inotifywait.service: systemd example service for inotifywait.sh

    🔄 Changed

    • stats.php: Show total 'Item Count' on Statistics page instead of trying to shoehorn songs/videos/etc into different columns
    • ⚡️ ampache.sql updated after about 4 years... no more updates on install!
    • Searching by "Rating (average)" now ignores private/public and always returns the average.
    • Hide searches for '# Skipped' and 'Played/Skipped ratio' when 'Show # skipped' is Off
    • Search items rearranged to try to match each other
    • Sort 'Playlist' and 'Smart Playlist' browse pages by name
    • Display the blankuser avatar in now playing if missing
    • Swap 'Random' and 'Playlists' in the sidebar (CSS order numbers)
    • Don't hide artist art when you disable lastfm_api_key in the config
    • Hide 'Metadata' search when 'enable_custom_metadata' is disabled

    🗄 Deprecated

    • 🚀 Drop version number from the release string in develop. ('4.3.0-develop' => 'develop')
      • This should stop a bit of confusion when removing / adding requirements
    • 🚀 The '-release' suffix in version number will be dropped for Ampache 5.0.0

    ✂ Removed

    • ✂ Remove stat recording from channels
    • ⚡️ Don't reset the database charset and collation after each db update

    🛠 Fixed

    • 🛠 Fixed a few issues on the Statistics page
      • Report 'Catalog Size' correctly for podcasts
      • Report 'Item Count' correctly for podcasts and video catalogs
    • Searching albums for artist name
    • Mashup 'Newest' would incorrectly apply an offset missing the newest items
    • 🛠 Search by 'Smart Playlist' rules fixed when added with other rules
    • 👉 Use LEFT JOIN instead of HAVING for search rules to allow more complicated lists
    • 👍 Logic searching 'My Rating' includes unrated (0 Stars) in a better way
    • Captcha was not generated for registration
    • Enforce lowercase codec for live streams
    • 📜 Parsing integer search rules was overwriting index values
    • 🖐 Handle empty XML on similar artist requests to last.fm

    🔒 Security

    🛠 Fix CVE-2020-15153 - Unauthenticated SQL injection in Ampache

    API 4.2.2

    🛠 Minor bugfixes

    ➕ Added

    • Api::advanced_search added parameter 'random' (0|1) to shuffle your searches

    🔄 Changed

    • ✂ Remove spaces from advanced_search rule names. (Backwards compatible with old names)
      • 'has image' => 'has_image'
      • 'image height' => 'image_height'
      • 'image width' => 'image_width'
      • 'filename' => 'file' (Video search)

    🗄 Deprecated

    • 🚚 Search rules 'has image','image height', 'image width', 'filename'. (Removed in Ampache 5.0.0)

    🛠 Fixed

    • Api::stream, Api::download Api::playlist_generate 'format' parameter was overwritten with 'xml' or 'json'
    • Produce valid XML for playlist_generate using the 'id' format in XML
  • v4.2.1 Changes

    August 14, 2020

    (MD5SUM cda91b97a97a1c91e95f23b64b72d3a2) ../ampache-4.2.1_all.zip

    🛠 Bugfixes and updates to fix issues found in the wild.

    🚀 4.2.1-release

    🔔 NOTICE Ampache 4.3.0 will require php-intl module/dll to be enabled.

    ➕ Added

    • Ajax refresh localplay "Now Playing" same as the index "Now Playing" section
    • Put strings ('1 Star', '2 Stars', etc) back into numeric searches for ratings
    • Numeric ('1 Star'-'5 Stars') searches now include '0 Stars' to show unrated objects
    • ➕ Add 'has not rated' to "Another User" searches
    • ➕ Add higher bitrates (640, 1280) to search to allow for lossless files
    • 🆕 NEW files
      • Include API docs from the wiki. (API.md, API-JSON-methods.md, API-XML-methods.md, API-advanced-search.md)
    • 'Filters' added to each sidebar tab if enabled (previously only 'Home' and 'Admin')

    🔄 Changed

    • 🌐 Use binary (.mo) translation files to speed up translation processing
    • Don't show 'Generate new API key' if you don't have access
    • 🚚 QR Code in account page is now just the API Key (redundant link removed too)
    • ⬆️ Require minimum version of Ampache 3.8.2 to upgrade database
    • ➕ Added an icon to webplayer to go to album. Clicking on song title now directs to song

    🛠 Fixed

    • Waveform config option 'get_tmp_dir' was ignored if set
    • Rightbar: 'Add to New Playlist' not adding on new playlists
    • Translate preference subcategories and status
    • 🆕 'podcast_new_download' logic fix
    • Filters box would show up in the Admin tab if you disabled 'browse_filter'
    • 🚀 Update album when 'release_type' changes
    • 🚀 Parse 'Release Type' from tags in a less terrible way

    API 4.2.1

    No functional changes compared to 4.2.0.

    🛠 Fixed

    • 🛠 Filter in "playlist" and "playlist_songs" fixed
  • v4.2.0 Changes

    August 06, 2020

    (MD5SUM 8cff487d8cb7de72f221a044213df48f) ../ampache-4.2.0_all.zip

    This is a big one; you ready for a JSON API!?

    🚀 4.2.0-release

    0️⃣ A big visual change in the interface is that Ampache now defaults to US time for dates. ('Month/Day/Year')
    For everyone who isn't American you have control over date formats using custom_datetime.
    Admin => Server Config => Interface => Custom datetime

    e.g. "Y/m/d H:i" will convert to "2020/04/14 10:42"
    Check the php manual for help making your desired string. ([https://www.php.net/manual/en/function.date.php])

    The API changelog for this version has been separated into a new sub-heading below to make it easier to follow.

    ➕ Added

    • ➕ Added Spotify art searches for both album and artist images.
    • ⚡️ Updated component installer and php-cs-fixer package.
    • ⚡️ Translation updates (April 2020, May 2020, July 2020)
    • Added declare(strict_types=0); to lib/* and lib/class/* (requires more work before it can be enabled)
    • ➕ Add 250 for search form limits in the web UI. (Jump from 100 to 500 is pretty big)
    • ➕ Add Recently updated/added to search rules
    • ➕ Add regex searching to text fields. ([https://mariadb.com/kb/en/regexp/])
    • When labels are enabled, automatically generate and associate artists with their publisher/label tag values.
    • Enforced stat recording for videos. (podcasts and episodes to be added later)
    • ➕ Add tags (Genres) to "Anywhere" text searches.
    • 0️⃣ 10 second redirect on "Access Denied" to the default web_path
    • 👍 Allow "Update from tags" for multi-disk album and artist pages
    • 👉 show and hide the rightbar (playlist) using the minimize button in the header
    • 🏷 Tag->f_name (New property on tag that was being set hackily)
    • ➕ Add "Album" to Find Duplicates in admin/duplicates.php.
    • "Local Image" added to Artist & Album search. Find out whether you have art stored in Ampache
    • PHP_CodeSniffer checks and settings added to Scrutinizer. (phpcs --standard=.phpcs.xml lib/class)
    • 🆕 NEW database options
      • cron_cache: Speed up the interface by allowing background caching of data
      • show_skipped_times: Add "# skipped" to the UI. (disabled by default)
      • custom_datetime: Allow you to format your date strings your way.
      • unique_playlist: Force unique playlists by ignoring existing songs
    • 🆕 NEW config options
      • skip_timer: Add Skip Timer Threshold to the config
      • artist_art_folder: Specify a local folder to search for artist images using name/title
      • rating_file_tag_user: Set ratings to this user ID when importing ratings from file tags
      • spotify_client_id: Allows Spotify art search
      • spotify_client_secret: Allows Spotify art search
    • 🆕 NEW files
      • server/json.server.php & lib\class\json_data.class.php: JSON API!
      • bin/compute_cache.inc: Cache object_count data to speed up access
      • bin/cron.inc: Perform garbage_collection functions outside of main functions (includes compute_cache.inc)
    • 🆕 NEW examples
      • docs/examples/ampache_cron.service
      • docs/examples/ampache_cron.timer

    🔄 Changed

    • 🔄 Change license string from AGPLv3 to AGPL-3.0-or-later
    • ⚡️ Update Composer requirements
    • 👍 Allow searching play times without requiring UI option
    • 🌐 Stop showing the average rating in the web interface as stars. (show an average when available as text separately)
    • When you don't have a config file redirect to installer
    • 🔄 Change to numeric searches: Renamed 'is' => 'equals' and 'is not' => 'does not equal'
    • 👍 Allow negative track numbers; reducing the maximum track number to 32767.
    • 🚚 Localplay volume control moved to the playlist (rightbar)
    • Podcast_Episode::check_play_history Podcast_Episode::set_played (match song.class versions for stat recording)
    • Video::check_play_history Video::set_played (match song.class versions for stat recording)
    • php_cs rules for line endings
    • Simplify play history checks and code a bit more
    • 🏷 Tag (Genre) searches compare each item (e.g Pop) rather than the whole string (Pop,Rock,etc)
    • Replace "Browse Library" buttons with a search header allowing faster browsing of other types
    • Share secrets are generated by generate_password instead of a separate function
    • inet_ntop may not convert some binary IP addresses (like ::1) these now show up as "Invalid" in the ip history.
    • Searches using numeric rules must use an integer. ('1 Star' => 1, '2 Stars' => 2, etc)
    • bin/delete_disabled.inc require -x to execute. (previously you needed to edit the file)

    🗄 Deprecated

    • 💻 Horde_Browser::getIPAddress(). Use Core::get_user_ip() instead.

    ✂ Removed

    • bin/migrate_config.inc (This was used to migrate the config file from php4 to php5)
    • EchoNest api/song previews
    • 👉 User::update_user_stats (used in play index only and useless)
    • Share::generate_secret; use generate_password instead
    • Song::get_cache_count (unused)
    • Ampache Debug check for 'safe_mode'

    🛠 Fixed

    • 🛠 Fixed a lot of incorrectly typed function calls and code documentation
    • 🔧 Gravatar Plugin: Make sure https is used when force_ssl is configured
    • Truncate strings to match database limits when strings go over
    • ➕ Add User php warnings
    • Channel authentication
    • IP checks when sending null proxy values
    • Gather art page layout
    • Read vorbis rating correctly
    • 📇 Search rules in UI failing to load with custom_metadata
    • Warn correctly when inserting art fails
    • Insert missing user preferences on login
    • 📜 When you had beautiful_urls enabled tracks would not parse in localplay making them all Unknown
    • Podcast durations aren't always correct format, prep the time before trying to insert it
    • 🚚 Subsonic playlist add/remove removing incorrect songs
    • Search/Smartlists need to have results to be used in lists
    • Auth issues with stats for recording and localplay
    • Stream_urls were generated with a typo when downloading
    • 🔌 Respect album grouping using of the moment plugin
    • Filter album title with grouping enabled. (seriously deadmau5, stop with the <> everywhere)
    • Share playback without a UID would fail to start
    • 0️⃣ Set a default popular_threshold if unauthenticated or unset
    • play/index would record democratic streams as a download
    • 0️⃣ Make sure the default preferences table has all the preferences in them
    • Beets catalog bug; date_diff expecting a datetime but given a string
    • Searches using user data like ratings has been split in the SQL correctly
    • Flagged playlists never had their flag deleted
    • offset and limit were incorrectly used for top/recent searches

    🔒 Security

    API 4.2.0

    🚀 API versions will follow release version and no longer use builds in the integer versions (e.g. 420000)
    🚀 API 5.0.0-release will be the first Ampache release to match the release string.

    ➕ Added

    • JSON API now available!
    • 🆕 NEW API functions
      • get_similar: send artist or song id to get related objects from last.fm
      • shares: get a list of shares you can access
      • share: get a share by id
      • share_create: create a share
      • share_edit: edit an existing share
      • share_delete: delete an existing share
      • podcasts: get a list of podcasts you can access
      • podcast: get a podcast by id
      • podcast_episodes: get a list of podcast_episodes you can access
      • podcast_episode: get a podcast_episode by id
      • podcast_episode_delete: delete an existing podcast_episode
      • podcast_create: create a podcast
      • podcast_edit: edit an existing podcast
      • podcast_delete: delete an existing podcast
      • update_podcast: sync and download new episodes
      • licenses: get a list of licenses you can access
      • license: get a license by id
      • catalogs: get all the catalogs
      • catalog: get a catalog by id
      • catalog_file: clean, add, verify using the file path (good for scripting)

    🔄 Changed

    • ⬆️ Bump API version to 420000 (4.2.0)
    • All calls that return songs now include <playlisttrack> which can be used to identify track order.
    • <playcount> added to objects with a playcount.
    • <license> added to song objects.
    • Don't gather art when adding songs
    • Added actions to catalog_action. 'verify_catalog' 'gather_art'
    • API function "playlist_edit": added ability to edit playlist items
      • items = (string) comma-separated song_id's (replace existing items with a new object_id) //optional
      • tracks = (string) comma-separated playlisttrack numbers matched to items in order //optional
    • Random albums will get songs for all disks if album_group enabled

    🗄 Deprecated

    • 🏗 API Build number is depreciated (the last 3 digits of the api version)
      • API 5.0.0 will be released with a string version ("5.0.0-release")
      • All future 4.x.x API versions will follow the main Ampache version. (420000, 421000, 422000)
    • 🚚 total_count in the XML API is depreciated and will be removed in API 5.0.0.
    • 🚚 Genre in songs is depreciated and will be removed in API 5.0.0.
      • Use tag instead of genre, tag provides a genre ID as well as the name.

    🛠 Fixed

    • Extra text in catalog API calls
    • ⚡️ Don't fail the API calls when the database needs updating
  • v4.1.1 Changes

    February 11, 2020

    ampache-4.1.1_all.zip (MD5SUM eb958442fcc0c6377f9070baa7db13b4)

    🛠 Ampache 4.1.1 is a minor release that contains a new API build as well as some bugfixes caught along the way.

    • ⬆️ Bump API version to 400004 (4.0.0 build 004)
    • Api - Fix parameters using 0
    • Api - Get the correct total_count in xml when you set a limit
    • Api - Fix many XML formatting issues
    • Api - Add Api::check_access to warn when you can't access a function
    • ✂ Remove non-free lib/composer.* files.
      • You can enable c-pchart with (composer require 'szymach/c-pchart')
    • 🔌 Hide localplay in the sidebar when you disable all the plugins
    • Extend Shouts to 2000 characters; Labels to 250
    • ✂ Remove shoutcast table and preferences. (Dead code)
    • ➕ Add a status icon to the channel list pointing to the channel/ID/status.xsl
    • 🛠 Fix Musicbrainz Art search
    • 🛠 Fix tmp_playlist bug removing items
    • 🛠 Fix Dropbox catalog errors when using a small library
    • 🛠 Fix some bugs getting invalid time/date when reading tags
  • v4.1.0 Changes

    January 08, 2020

    ampache-4.1.0_all.zip (MD5SUM 963d35b329d0829f10b391a5913bc926)

    🚚 Api 400003 is stable and ready for all developers. API work will now move on to JSON support.
    A lot of work has gone into search, preparing for static typing and a lot of tiny bugs.

    • ⬆️ Bump API version to 400003 (4.0.0 build 003)
    • Api::playlist - filter mandatory
    • Api::playlist_edit - filter mandatory. name and type now optional
    • Api::user - Extend return values to include more user fields
    • Playlist::create - Return duplicate playlist ID instead of creating a new one
    • 🚚 Artist::check - Remove MBID from Various Artist objects
    • 🛠 Fix Song::update_song for label
    • Api - Do not limit smartlists based on item count (return everything you can access)
    • Api/Database - Add last_count for search table to speed up access in API
    • 🛠 Fix Api issues relating to playlist access
    • 🛠 Fix comparison bugs found during static type testing
    • 🛠 Fix enable/disable song ajax
    • ⚡️ December translation update from Transifex
    • ➕ Add playlist into main search page. (Songs, Albums, Artists, Playlists, Videos)
    • Typo in login page HTTP_REFERER
    • ↪ Roll back mysql8 workarounds. (Orace MySQL supported on php7.4+ only)
    • 🛠 Fix bin*.inc text issues with newline
    • ➕ Add docs/examples/channel_run.service for sunning background processes as a service
    • 🆕 New search option "Another User" allows searching other user ratings and favorites
    • 👉 user_numeric searches also available in the API. ([https://github.com/ampache/ampache/wiki/XML-methods]))
    • ⚡️ Updates to support php7.4 (Ampache supports 7.1-7.4)
    • 🛠 Fix bug in UI when enabling/disabling songs
    • Checks in Subsonic/WebUI for recording repeated plays
    • ⚡️ Update channel status pages (/channel/$CHANNELID/status.xsl)
    • 🛠 Fix smartlists when searching sub-lists (Ampache was trying to create one giant query that didn't scale well)
    • ⚡️ composer & php-cs-fixer updates
    • 🛠 Fix "Add New..." in album edit
    • ⏪ Revert changes in 4.0.0 and allow manual choices for artist/album on upload again.
    • Subsonic return json errors when requesting json format (previously errors were always xml)
    • ➕ Add github package guide for docker to RELEASE-PROCESS.md
    • ⚡️ Update ListenBrainz plugin for empty additional info. (API says remove this section from json)
  • v4.0.4 Changes

    December 02, 2019

    ampache-4.0.4_all.zip (MD5SUM 08990849409c6c23a9f8f2eb99755365)

    🚀 Thanks for working with me to smooth this release out.
    🚀 I think we're finally at a point where I can move on to new development and let this release free!

    • 🚀 Finalize release procedure to make these updates a bit smoother
    • ⬇️ Reduce the time for repeated track playback (Song length - 5 sec)
    • 🌐 Filter playlists in API, Web and Subsonic correctly for regular users vs admins
    • 🛠 Fix album count for Artists when the album is missing data
    • 🛠 Fix searches / searchbox for MYSQL8
    • 🛠 Fix some invalid returns in lib/*
    • Send the correct function in ajax.server when deleting from playlist
    • Hide some lines from the mashup to make it a bit nicer
    • ✂ Remove the old logo from the main install page