Ampache is a web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device.

Related tags

CMS ampache
Overview

Ampache

Logo

www.ampache.org | ampache.github.io

News:

  • Keep an eye on the incoming changes to develop branch at Ampache-Next-Changes
    • Have a read about the new code structure and about contributing to Ampache
    • DATABASE CHANGES You can now force a default collation and charset on your database. (Read the changelog!)
    • Develop branch now has a mandatory requirement of php-intl for date formatting.
    • The initial development version of api 5.0.0 has been released! Please go over the changes on the ampache.org website!
  • Get your album/artist art right from Spotify's web API. Go to the dashboard
    • Then put your client ID and secret in your ampache config
    • And don't forget to set your art order! (art_order = "db,tags,folder,spotify,musicbrainz")

Basics

Ampache is a web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device.

Ampache's usefulness is heavily dependent on being able to extract correct metadata from embedded tags in your files and/or the file name. Ampache is not a media organiser; it is meant to be a tool which presents an already organised collection in a useful way. It assumes that you know best how to manage your files and are capable of choosing a suitable method for doing so.

Recommended Version

The recommended and most stable version is git HEAD. Build Status

You get the latest version with recent changes and fixes but maybe in an unstable state from our develop branch. Build Status Scrutinizer Code Quality Code Coverage Codacy Badge Code Climate

Installation

Please see the wiki and don't forget to check out the basic config guide after that.

Requirements

  • A web server. All of the following have been used, though Ampache receives the most testing with Apache:

    • Apache
    • lighttpd
    • nginx
    • IIS
  • PHP 7.1 or greater. (Currently tested on php7.4-fpm)

  • PHP modules:

    • PDO
    • PDO_MYSQL
    • hash
    • session
    • json
    • intl (Ampache develop)
    • simplexml (optional)
    • curl (optional)
  • For FreeBSD The following php modules must be loaded:

    • php-xml
    • php-dom
    • php-intl (Ampache develop)
  • MySQL 5.x / MySQL 8.x / MariaDB 10.x

Upgrading

If you are upgrading from an older version of Ampache we recommend moving the old directory out of the way, extracting the new copy in its place and then copying the old /config/ampache.cfg.php, /rest/.htaccess, /channel/.htaccess, and /play/.htaccess files if any. All database updates will be handled by Ampache.

License

Ampache is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License v3 (AGPL-3.0-or-later) as published by the Free Software Foundation.

Ampache includes some external modules that carry their own licensing.

Translations

Ampache is currently translated (at least partially) into the following languages. If you are interested in updating an existing translation, simply visit us on Transifex. If you prefer it old school or want to work offline, take a look at /locale/base/TRANSLATIONS for more instructions.

Translation progress so far:

Transifex

Credits

Thanks to all those who have helped make Ampache awesome: Credits

Contact Us

Hate it? Love it? Let us know! Dozens of people send ideas for amazing new features, report bugs and further develop Ampache actively. Be a part of Ampache with it's more than 10 years long history and get in touch with an awesome and friendly community!

Further Information and basic Help

  • Everything related to the Ampache Project can be found on our Public Repository
  • Want to know, how to get Apache to work or learn more about the functions? See our Documentation

We hope to see you soon and that you have fun with this Project!

Team Ampache

Comments
  • source-changes, bugs and errors

    source-changes, bugs and errors

    i'll be commenting with issues and bugs that i find over the course of using source-changes branch so we can start working towards moving this branch into develop

    todo

    upnp errors

    mpd is okay but i have a few issues with upnp, need to check more players but getting a lot of JS issues trying to start playback

    seems to be an issue of adding tracks to play

    Uncaught Error: Syntax error, unrecognized expression: UPnP instance = moode
    ...................STATE = STOPPED
    Play next
    The next song failed to start
        jQuery 7
        reloadDivUtil https://music.org/lib/javascript/base.js:145
        jQuery 4
    
    Uncaught Error: Syntax error, unrecognized expression: UPnP backend disabled..
    
    XML Parsing Error: syntax error
    Location: https://music.org/server/ajax.server.php?page=localplay&action=command&command=skip&id=2
    Line Number 1, Column 1: ajax.server.php:1:1
    
    XML Parsing Error: syntax error
    Location: https://music.org/index.php#localplay.php?action=show_playlist
    Line Number 1, Column 1:
    

    questions

    errors i've grepped to check

    resolved

    • [x] For some of the depreciated functions like the class handler. what are the replacements? Are they in the phpdoc comments?
    • [x] Create more work for @usox
    • [x] 2021-02-11T08:44:10+10:00 [ampache] (log.lib) -> [Runtime Error] session_set_cookie_params(): Cannot change session cookie parameters when session is active in file /var/www/music/src/Module/System/Session.php(372)
    • [x] Fix more of the bugs @lachlan-00 comes up with
    • [x] License searching error ``2021-02-24T10:47:54+10:00 [user] (/var/www/music/src/Repository/Model/License.php:97) -> Return value of Ampache\Repository\Model\License::getLinkFormatted() must be of the type string, null returned````
    • [x] is every user-facing string translated using T_()?
    • [x] every cli string and help?
    • [x] (/var/www/music/src/Module/Playback/Localplay/Upnp/UPnPPlayer.php:157) -> Call to a member function xpath() on bool
    • [x] change default charset to utf8mb4 and collation to utf8mb4_unicode_ci?
    • [x] playlist add error [Thu Feb 25 17:18:10.178776 2021] [proxy_fcgi:error] [pid 1100175:tid 139684812949248] [client 192.168.1.9:56124] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught Error: Class 'Ampache\\Application\\Api\\Ajax\\Handler\\AmpConfig' not found in /var/www/ampache-develop/src/Application/Api/Ajax/Handler/PlaylistAjaxHandler.php:111\nStack trace:\n#0 /var/www/ampache-develop/src/Application/Api/Ajax/AjaxApplication.php(90): Ampache\\Application\\Api\\Ajax\\Handler\\PlaylistAjaxHandler->handle()\n#1 /var/www/ampache-develop/public/server/ajax.server.php(35): Ampache\\Application\\Api\\Ajax\\AjaxApplication->run()\n#2 {main}\n thrown in /var/www/ampache-develop/src/Application/Api/Ajax/Handler/PlaylistAjaxHandler.php on line 111', referer: https://ampache.org/develop/
    • [x] 2021-02-11T12:38:51+10:00 [ampache] (log.lib) -> [Runtime Error] Invalid argument supplied for foreach() in file /var/www/music/src/Repository/Model/Search.php(1531) see #2769
    • [x] every php file needs the AGPL license header
    • [x] error trying to play a stream
    [Wed Feb 17 14:07:15.273291 2021] [proxy_fcgi:error] [pid 648157:tid 140626185975552] [client 192.168.1.9:38488] AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught TypeError: Argument 2 passed to Ampache\\Repository\\ShoutRepository::getBy() must be of the type int, string given, called in /var/www/music/src/Application/Api/Ajax/Handler/SongAjaxHandler.php on line 80 and defined in /var/www/music/src/Repository/ShoutRepository.php:33\nStack trace:\n#0 /var/www/music/src/Application/Api/Ajax/Handler/SongAjaxHandler.php(80): Ampache\\Repository\\ShoutRepository->getBy()\n#1 /var/www/music/src/Application/Api/Ajax/AjaxApplication.php(90): Ampache\\Application\\Api\\Ajax\\Handler\\SongAjaxHandler->handle()\n#2 /var/www/music/public/server/ajax.server.php(35): Ampache\\Application\\Api\\Ajax\\AjaxApplication->run()\n#3 {main}\n  thrown in /var/www/music/src/Repository/ShoutRepository.php on line 33', referer:
    
    • [x] XBMC missing packages from composer
    2021-02-17T13:01:19+10:00 [user] (Ampache\Module\Playback\Localplay\Xbmc\AmpacheXbmc) -> Trying to connect xbmc instance :.
    2021-02-17T13:01:19+10:00 [user] (/var/www/music/src/Module/Playback/Localplay/Xbmc/AmpacheXbmc.php:716) -> Class 'XBMC_RPC_HTTPClient' not found
    
    • [x] Api Broswe methods that are not converted do not filter (e.g. artists) (actually they do, the filter itself was missing)
    • [x] This comes up for each album on a mashup page (which on mashup pages is minimum of 30 repeated lines in the log)
    • [x] Share_create 2021-02-11T12:40:42+10:00 [demo] (Ampache\Module\Api\ApiHandler) -> Class 'song' not found
    • [x] query error
    2021-02-11T12:40:19+10:00 [demo] (Ampache\Module\System\Dba) -> Error_query SQL: INSERT INTO `user_activity`
    2021-02-11T12:40:19+10:00 [demo] (Ampache\Module\System\Dba) ->                 (`user`, `action`, `object_type`, `object_id`, `activity_date`, `name_artist`, `name_album`, `mbid_artist`, `mbid_album`)
    2021-02-11T12:40:19+10:00 [demo] (Ampache\Module\System\Dba) ->                 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    2021-02-11T12:40:19+10:00 [demo] (Ampache\Module\System\Dba) -> Error_query MSG: ["HY093",null,null]
    
    • [x] 2021-02-11T12:38:48+10:00 [demo] (Ampache\Module\Api\ApiHandler) -> Call to a member function reset_filters() on null
    • [x] (/var/www/music/public/batch.php:41) -> Call to a member function get() on bool
    • [x] (/var/www/music/public/templates/show_artist.inc.php:111) -> Call to a member function get_user_owner() on null
    • [x] "Update" from UI needs work to either support composer2 only or both update.php?type=sources&action=update
    • [x] another lowercase handler [user] (Ampache\Module\Api\ApiHandler) -> Class 'artist' not found
    • [x] Uncaught Error: Call to a member function format() on string
    • [x] Can't create upnp localplay
    2021-02-07T12:44:15+10:00 [user] (/var/www/music/src/Module/Api/Upnp_Api.php:398) -> Too few arguments to function Ampache\Module\Api\Upnp_Api::createDIDL(), 1 passed in /var/www/music/src/Module/Playback/Localplay/Upnp/UPnPPlayer.php on line 234 and exactly 2 expected
    
    • [x] stats.php?action=show
    2021-02-04T14:14:23+10:00 [user] (/var/www/music/vendor/scn/phptal/src/Context.php:449) -> Ampache\Gui\Stats\CatalogStats object  doesn't have method/property named 'getVideoCount'
    
    • [x] Smartlist/search break
    2021-02-03T09:25:31+10:00 [ampache] (log.lib) -> [Runtime Error] Invalid argument supplied for foreach() in file /var/www/music/src/Model/Search.php(1705)
    2021-02-03T09:25:40+10:00 [ampache] (log.lib) -> [Runtime Error] Invalid argument supplied for foreach() in file /var/www/music/src/Model/Search.php(1163)
    
    • [x] catalogUpdate
    www-data@web:~/music$ bin/cli run:updateCatalog boots -e
    Reading Catalogue: "boots"
    Start verifying media related to Catalogue entries
    Error Class 'video' not found
    (thrown in /var/www/music/src/Module/Catalog/Catalog_local.php:612)
    
    • [x] editing podcasts doesn't load the edit window
    2021-02-03T15:49:24+10:00 [user] (Ampache\Module\Api\Edit\AbstractEditAction) -> Type `podcast` is not based on an item library.
    
    • [x] missing heart/userflag icon artists.php?action=show&artist=15962 image

    • [x] compute_cache query error (does a lot of work from stats class so it's probably a bit broken)

    2021-02-02T16:00:37+10:00 [] (Ampache\Module\System\Dba) -> Error_query MSG: ["21S01",1136,"Column count doesn't match value count at row 1"]
    2021-02-02T16:00:37+10:00 [] (Ampache\Module\System\Dba) -> Error_query SQL: INSERT INTO `cache_object_count_run` ( `object_id`, `count`, `object_type`, `count_type`, `threshold` ) SELECT `object_id` as `id`, MAX(`count`) AS `count` FROM `cache_object_count` WHERE `object_type` = 'podcast_episode' AND `count_type` = 'skip' AND `threshold` = '12' GROUP BY `object_id`, `object_type` ORDER BY `count` DESC  ON DUPLICATE KEY UPDATE `count` = VALUES ( `count` )
    
    • [x] API flagMethod isn't mapping class names (Ampache\Module\Api\ApiHandler) -> Class 'song' not found seems to be throwing and error in APIHandler.php } catch (Throwable $e) {
    • [x] when you merge 5e0c8aa10 into UpdateSingleCatalogFile.php don't forget configuse Ampache\Config\AmpConfig;
    • [x] browse video music clips loads nothing browse.php?action=clip
    • [x] same for individual videos /#video.php?action=show_video&video_id=1252
    • [x] show all not showing /artists.php?action=show_all_songs&artist=1081 image
    • [x] UI play actions add items twice image
    • [x] label art missing and show_songs doesn't load. looks like the songs link isn't being created with a label id image image
    • [x] live streams don't play and are missing art server/ajax.server.php?page=stream&action=directplay&object_type=live_stream&object_id=10 image
    • [x] bin/cli needs define('SSE_OUTPUT', true); to stop html coming up
    • [x] Dsub with "Authorization Basic Headers", can't connect to server
    • [x] logging empty actions Found handler `Ampache\Module\Application\Utility\ShowAction` for action ``
    • [x] user_activity not posting (did this for an ogg) actually i think this is just strict typing, some arguments can be null
    • [x] user avatar (/var/www/music/src/Module/Application/Image/ShowAction.php:159) -> Class 'user' not found
    • [x] scrutinizer doesn't build (yes | pecl install http) https://scrutinizer-ci.com/g/ampache/ampache/inspections
    • [x] CLI has issues with outdated databases/configs
    • [x] Composer 2 does not work
    • [x] Writing configs does not work
    • [x] Errors set by AmpError are not shown
    • [x] Song edit view displays wrong data
    • [x] User registration captcha is broken
    • [x] custom_login_background is ignored.
    • [x] API, !ObjectTypeToClassNameMapper::map($type) 'song', 'user' not found (assuming it's Song, User) Case shouldn't matter for these mappings
    • [x] file ./public/.maintenance.example is missing?
    • [x] search / smart lists broken
    • [x] update from tags in the ui doesn't seems to get the tracks to upadte image
    • [x] show video missing ```(Ampache\Module\Application\ApplicationRunner) -> No handler found for action `show_video````
    • [x] Update from tags, migration fails
    • [x] Delete is missing from the playlist when i'm the owner
    • [x] php error [Runtime Error] ob_start(): function 'ob_html_strip' not found or invalid function name in file /var/www/music/src/Module/Catalog/Update/UpdateSingleCatalogFile.php(58)
    • [x] API error in playlist_songs
    • [x] subsonic api error
    • [x] now_playing.php needs an update for css image
    bug Code Quality 
    opened by lachlan-00 229
  • strings update

    strings update

    code i used to grep the translated strings

    grep -R -oh -E "T_\(.*\)" > ../regex-strings.txt
    

    regex-strings.txt

    @kuzi-moto This is ready for you to check case and look over any weirdness i might have made. especially around any %s / $s strings.

    It would also be good if you could check these for me and see if there's a better way to do it or at least hints for them.

    T_($access)
    T_($action['title'])
    T_($f_name)
    T_($fsubcat)
    T_($key)
    T_($msgid)
    T_($original, $plural, $value)
    T_($pref['description'])
    T_($preference['description'])
    T_($preferences['title'])
    T_($result['error'])
    T_("%1$s %2$s (Playlist)")
    T_("%1$s %2$s (Smart Playlist)")
    

    Good news is this not only adds a lot of new strings but reduces the total by about 200 strings while making it more natural

    opened by lachlan-00 106
  • New UI

    New UI

    So I had an issue that got me thinking over at my repo (https://github.com/meandor/ampdroid/issues/37) about the whole development of Ampache right now.

    When I first installed Ampache I hated the design and I thought the whole structure is so complicated and outdated and difficult to use. I installed the penguin theme thingy and it was a tiny bit better,

    The whole UI got changed with this reborn theme and I actually like it more now but it still is overloaded with a bunch of stuff that I don't really get why it does even exist sometimes. It is still not so easy to use and not really intuitive. We still kinda have the frame layout.

    So as I mentioned before this was inspired by the issue at my repo where I stated that I kinda have the feeling that Ampache is getting more and more bloated with stuff that is not sooo important and the main development is getting a bit distracted. I would wish for the user expereince and Ampache to get simpler, easier to use and an overall perfect music streaming experience.

    I could not let this feeling and idea go and I made a quick mockup of how I would wish the user experience of Ampache to be. The one thing I love about open source software is the collaboration of people who basically want the same thing and try to make what they want and inspire and influence each other which often leads to great results.

    So I hope with this I can maybe convince some people that the user experience could be much better and easier and simpler and maybe even make people who have the time actually work with this/develop this further.

    I hope I didn't step on anybodys toes from the developing team.

    ampache-ui-home ampache-ui-music

    enhancement UI 
    opened by meandor 84
  • Do not separate multiple discs in albums (and every) views

    Do not separate multiple discs in albums (and every) views

    i spent a long time wondering why "Group multiple disks" had no effects before i understand it just changes the way albums are displayed in the "artist" view.

    the disks are grouped only into the artist view. If you search or go directly to albums list for example, you'll still see one line per album (that's voluntary to let the user the possibility to edit settings per album without the need to go each time into the artist.)

    https://github.com/ampache/ampache/issues/136 well i can understand the reason why someone would want to edit just one disc, but in that case they could just uncheck this setting ? choosing this option i think it would make more sense that multiple discs diplay as one album, everywhere... at least it make more sense for simple listeners (and mobile clients), for one release is one release (sorry for the tautology, but you've got my point ?).

    enhancement 
    opened by krodelabestiole 71
  • AGPL v3 relicensing

    AGPL v3 relicensing

    Ampache is currently licensed under GPL v2 which is far from perfect for a web application today. I would like to move it to AGPL v3.

    For that I would need all contributors listed bellow to answer to this thread with acceptation/refusal of this license change for all their contributions to Ampache. If no answer or disagreement from one contributor, this could result to license change failure (if main contributor like vollmerk or flowerysong), code removal of author contributions, or project split between GPL v2 and AGPL v3 code (if possible...). GitHub account will be used as identification proof. Some of you may have contribute only 1 or 2 commits, and probably left the projects years ago but this still matter. Please takes some minutes to answer :wink:.

    • ~~Afterster~~
    • ~~vollmerk~~
    • ~~flowerysong~~
    • ~~SUTJael~~
    • ~~Psy-Virus~~
    • ~~momo-i~~
    • ~~jcwmoore~~
    • ~~Razrael~~
    • ~~brownl~~
    • ~~changi67~~
    • ~~Deathcow~~
    • ~~arnaudbey~~
    • ~~wagnered~~
    • ~~martindiphoorn~~
    • ~~purdyk~~
    • ~~RyanCopley~~
    • ~~nan4k7~~
    • ~~eliasp~~
    • ~~hypfvieh~~
    • ~~SeregaPru~~
    • ~~KaivoAnastetiks~~
    • ~~thinca~~
    • ~~Fondor1~~
    • ~~ss23~~
    • ~~Niols~~
    • ~~thegeekrv~~
    • ~~tsquare66~~
    • ~~fredthomsen~~
    • ~~Combustible~~
    • ~~nicklan~~
    • ~~a9k~~
    • ~~anonymous2ch~~
    • ~~ainola~~
    • ~~eigan~~
    • ~~nioc~~
    • ~~stebe~~
    • ~~bliptec~~
    • ~~Toilal~~
    • ~~randomessence~~
    • ~~sarbuckle~~
    • ~~trogdor1138~~
    • ~~meandor~~
    • ~~thejk~~
    • ~~axelsimon~~
    • ~~thezerobit~~
    • ~~victorhaggqvist~~
    • ~~mat-mo~~
    • ~~mrpi~~
    • ~~Swissbite~~
    • ~~Natureshadow~~
    • ~~hyperactivated~~
    • ~~tan-ce~~
    • ~~Bidules079~~
    • ~~e3betht~~
    • ~~uberbrady~~
    • ~~oppai~~
    • ~~new3kinnnn~~
    • ~~cslamar~~
    • ~~hbrunn~~
    • ~~hopson~~
    • ~~protag~~
    • ~~bikkuri10~~
    • ~~spocky~~
    • ~~grissoma~~
    • ~~pb1dft~~
    • ~~flashk~~
    • ~~slienard~~

    There is also list of old contributors retrieved from git history but unavailable on GitHub. Contact will be initiated outside GitHub once properly identified. Related list bellow so you can follow the overall progress, which will certainly takes more time.

    • ~~Florent Fourcot~~
    • ~~jack~~
    • ~~mywindow~~

    Thanks!

    opened by Afterster 69
  • [Feature Request]Dynamic Smart Playlists organized by Skip to Play ratio.

    [Feature Request]Dynamic Smart Playlists organized by Skip to Play ratio.

    If we could get smart playlists based on the skip to play ratio, we had a perfect dynamic playlist, that adjusts to our momentary listening Habits.

    Lets say i have 6 root playlists :

    Pacing: calm, active, neutral Style: acoustic, electronic, mixed

    All my music is sorted into these lists.

    Now i do a smart list from calm and acoustic, which is dynamically updating by the skip to play ratio. Then songs with a ratio of < 1 will be played more often and songs with a ratio of > 1 will be played less depending on the factor.

    If some one can recommend any other client based server, where i can do this please let me know.

    enhancement UI database 
    opened by jaddel 63
  • Oracle MYSQL testing on browse pages

    Oracle MYSQL testing on browse pages

    This commit broke all of my browse page results, returning 'no songs found' etc. for Songs, Albums, Artists, Radio Stations and Podcast browse pages. I initially thought it may be related to the actions I took to work around a previous issue #2320 by disabling only_full_group_by mode in my MySQL config file, but restoring this and restarting MySQL did not restore the browse page results. Reverting back to commit dc1f04b returned expected results.

    lachlan-00 replied 23 hours ago

    i did break one query part which i've reverted this morning. image image

    you get it on /browse.php?action=[song|artist|etc] links? i'm able to browse with grouping on/off this morning.

    rsinfotech replied 6 hours ago

    Yes, it's the /browse.php?action= pages that this happens on. That commit fixes all browse.php pages with grouping off and everything except the albums page with grouping on? Great work by the way to all involved...

    opened by lachlan-00 58
  • 3.8.5 Subsonic Catalog does throws errors

    3.8.5 Subsonic Catalog does throws errors

    Hi

    I had a previous similar bug so I am going to copy paste some of that here since everything about the past setup is exactly the same

    3.8.5 does not work for me meaning that it throws some errors, it grabs some albums but they neither playable nor any album art is displayed.

    I add the subsonic catalog and use http://192.168.2.116:8080 as the url and enter my creds. The Ampache server and the Airsonic server are on the same local network.

    2018-02-06 13:11:56 [ampache] (PHP) -> [Runtime Error] opendir(http://192.168.2.116:8080/rest): failed to open dir: not implemented in file /var/www/ampache-3.8.5/lib/class/art.class.php(1310) 2018-02-06 13:11:56 [xxxxx] (folder_art) -> Error: Unable to open http://192.168.2.116:8080/rest for album art read

    I have no albums listed (if I wait long enough it adds couple albums), songs, and it also throws reconnection errors in the interface , not in the logs. "ERROR: Error: Unable to open http://192.168.2.116:8080/rest"

    And this (Art) -> Error getting art: cURL error 6: name lookup timed out

    When I press "update" it says "Catalog verify done 0 f 0 updated"

    Paste from previous bug (with system details etc) https://github.com/ampache/ampache/issues/1621

    
    ""Server sent events connection error. Re-connection"
    
    Airsonic is running on http://127.0.0.1:8080/airsonic so this is the url I put in the field along with my airsonic creds.
    
    There is nothing printing in the log at all regarding the issue, in fact no lines had been printed since adding the remote repo
    
    I am not sure if there is an issue with api or a hiding bug.
    
    I am using
    ampache 3.8.5 develop
    Debian 7.1 x32
    ffmpeg 1.0.10
    Apache 2.2.22
    Php 5.6.31
    Mysql 14.14
    
    My url is
    http://xx.xx.xx.xx/ampache-dev
    
    Airsonic
    http://192.168.2.116:8080
    
    CONFIG
    https://paste.debian.net/hidden/ec5a8be2/
    
    PHP
    https://paste.debian.net/hidden/08861a8e/
    
    AIRSONIC
    https://github.com/airsonic/airsonic"
    
    
    subsonic 
    opened by gerroon 55
  • Subsonic API - Browsing of library possible, playing not

    Subsonic API - Browsing of library possible, playing not

    Environment

    • Ampache version: 3.8.3
    • Web server + version: Apache 2.4.29
    • Server operating system: Dietpi
    • Client operating system: iOS
    • Client type:
      • SubSonic

    Description

    I set up Ampache successfully on an Apache Server. Everything works, but playing songs with a Subsonic API Client on iOS (such as AVSub or Substreamer) is dysfunctional and only shows a "loading". Browsing of the library is absolutely possible and everything is being displayed correctly. I followed the guide of setting up the Subsonic API meticulously and a connection has been established, however as mentioned playing doesn't work. When I tried to find a solution for this problem, I stumbled across the following help in the FAQ:

    When using an API (Ampache, Subsonic, UPnP ...) I can browse my library but playback doesn't work whereas it is working using the web interface, how to make it work?

    For most API backend it is recommended to have php cUrl module installed and enabled. Otherwise few clients could failed the playback if they are excepting a specific url format.

    If your server support ipv6, be careful that your webserver (eg. Apache) is listening the same way on ipv4 and ipv6. Be aware that when using cUrl with a default configuration, ipv6 will always be used by default on cUrl operations.

    This seems to be the solution to my problem, however I'm completely clueless in applying the required steps. How do I set the settings in curl in order to shut off the default ipv6? Or how do I make sure Apache is listening to ipv4 as well as ipv6. It's probably not very hard to do, but for noobs hard enough to figure out and I'm sure others would like to know as well.

    I'm thankful for any help given!

    opened by simpledisaster 50
  • BUG: Two Different Albums are being displayed as the same album.

    BUG: Two Different Albums are being displayed as the same album.

    Description

    Describe the bug

    Two albums with the same name from different Artists are being mixed together as the same album.

    If this is the byproduct of some clever script that tries to appropriately combine files that it thinks are the same album, is there a setting to disable it?

    My files are very carefully tagged, these are clearly not the same album. (No Doubt and Scorpions, LOL!)

    To reproduce

    Steps to reproduce the behavior:

    1. I noticed this while browsing the albums.

    I double checked the Tag data:

    Scorpions - Icon - track 01:

    Complete name                            : /media/md0/audio/Rock-Classic/Scorpions/2010 - Icon (HITS)/01 - Rock you like a hurricane.mp3
    Format                                   : MPEG Audio
    File size                                : 9.67 MiB
    Duration                                 : 4 min 13 s
    Overall bit rate mode                    : Constant
    Overall bit rate                         : 320 kb/s
    Album                                    : Icon
    Track name                               : Rock you like a hurricane
    Track name/Position                      : 01
    Performer                                : Scorpions
    Genre                                    : Classic Rock
    Original/Released date                   : 2010
    Recorded date                            : 2010
    Writing library                          : LAME3.92 
    

    No doubt - Icon - Track 01:

    Complete name                            : /media/md0/audio/Rock-Alternative/No Doubt/2010 - Icon (Compilation Album)/01 - Just A Girl.mp3
    Format                                   : MPEG Audio
    File size                                : 7.86 MiB
    Duration                                 : 3 min 25 s
    Overall bit rate mode                    : Constant
    Overall bit rate                         : 320 kb/s
    Album                                    : Icon
    Track name                               : Just A Girl
    Track name/Position                      : 01
    Performer                                : No Doubt
    Genre                                    : Alternative Rock
    Original/Released date                   : 2010
    Recorded date                            : 2010
    Writing library                          : LAME3.98r
    

    Expected behavior

    These two Albums should not be displayed as the same album.

    Screenshots

    2020-12-26_22-49

    2020-12-26_23-30

    Environment

    • Ampache version: Latest Develop clone from github master
    • Web server + version: Nginx
    • Server operating system: Ubuntu 20.04
    • Client operating system: Ubuntu 20.04 with Firefox
    opened by Jieiku 49
  • How to's

    How to's

    Hi, I started to use Ampache yesterday and I got the web interface to work (eventually), but the main reason I installed it was to stream music to my phone. In this case a subsonic backend would be necessary to get the stream to a subsonic client on a phone, right? I fiddled around with ampache and tried to get the backend API to work with no success.

    I was using the version 3.6 of ampache on my raspberry pi, and when I tried to update it to 3.7 but now I can't move the new files to the location that the earlier ampache version was installed.

    I didn't find any complete tutorial of how to install the latest version of ampache to any system whatsoever. So my suggestion is that there should be an easy tutorial of how to install the newest version of ampache (and how to update it if necessary) and how to get the subsonic API to work.

    This is the only way I could find to get my message out because there doesn't seem to be any forum or even an email whatsoever to get support for ampache client. I'm really sorry for my ranting if this is the wrong place for it.

    bug player/client 
    opened by haudankaivajasi 48
  • after fixing Documentroot error nothing works. and awew commands dont work!

    after fixing Documentroot error nothing works. and awew commands dont work!

    https://github.com/ampache/ampache/wiki/Ampache-Next-Changes - a vew commands dont work

    after fixing the Documentroot error using this wiki article https://github.com/ampache/ampache/wiki/Ampache-Next-Changes nothing work, icant login etc

    opened by justinweichTV 0
  • Can't Access User Settings, Whole Thing Breaks If I Click On

    Can't Access User Settings, Whole Thing Breaks If I Click On "Show Users" In Admin Settings

    Describe the bug

    Whenever I click on the button to access user settings, nothing happens. Whenever I click on "show users" in the admin settings, it shows a blank page and then every button stops working until I clear my browser's entire cache.

    To reproduce

    Steps to reproduce the behavior:

    1. Click on the user settings button

    2. It should work, but it does nothing

    3. Click on admin settings

    4. Click on "show users"

    5. Everything goes blank

    Expected behavior

    The user settings should show up, and it shouldn't go blank when clicking on show user.

    Screenshots

    image

    Environment

    • Ampache version: 5.5.2 (stable)
    • Web server + version: cPanel 106.0 (build 11) (Apache 2.4.54)
    • Server operating system: CloudLinux v8.6.0
    • Client operating system: Windows 11

    Client type

    • Web
    • Ampache
    • SubSonic
    • DAAP
    • UPnP
    • WebDAV

    Settings

    Users

    ; DEFAULT: "false" ;track_user_ip = "false"

    ; User IP Cardinality ; This defines how many days worth of IP history Ampache will track ; As it is one row per login on high volume sites you will want to ; clear it every now and then. ; DEFAULT: 42 days ;user_ip_cardinality = "42"

    ; Allow Zip Download ; This setting allows/disallows using zlib to zip up an entire ; playlist/album for download. Even if this is turned on you will ; still need to enabled downloading for the specific user you ; want to be able to use this function ; DEFAULT: "false" ;allow_zip_download = "true"

    ; Allow Zip Types ; This setting allows/disallows zip download of specific object types ; If empty, all supported object types can be zipped. ; Otherwise, only the given object list can be zipped. ; POSSIBLE VALUES: artist, album, playlist, search, tmp_playlist ; DEFAULT: none ;allow_zip_types = "album"

    ; Art Zip Add ; This settings allows/disallows to include Album Art to the Zip ; If 'album_art_preferred_filename' exists this is included ; DEFAULT: false ;art_zip_add = "true"

    ; File Zip Comment ; This is an optional configuration option that adds a comment ; to your zip files, this only applies if you've got allow_zip_downloads ; DEFAULT: Ampache - Zip Batch Download ;file_zip_comment = "Ampache - Zip Batch Download"

    ; Load the debug webplayer ; This will load the *.js player instead of the *.min.js player ; The unminified player has a lot of console.log() statements in the code. ; You can make changes and then check how the player is functioning. ; DEFAULT: "false" ;webplayer_debug = "true"

    ; Waveform ; This settings tells Ampache to attempt to generate a waveform ; for each song. It requires transcode and encode_args_wav settings. ; You must also set tmp_dir_path in order for this to work ; DEFAULT: "false" ;waveform = "true"

    ; Waveform color ; The waveform color. ; DEFAULT: #FF0000 ;waveform_color = "#FF0000"

    ; Waveform height ; The waveform height. ; DEFAULT: 32 ;waveform_height = 32

    ; Waveform width ; The waveform width. ; DEFAULT: 400 ;waveform_width = 400

    ; Temporary Directory Path ; If Waveform is enabled this must be set to tell ; Ampache which directory to save the temporary file to. Do not put a ; trailing slash or this will not work. ; DEFAULT: "false" ;tmp_dir_path = "/tmp"

    ; This setting throttles a persons downloading to the specified ; bytes per second. This is not a 100% guaranteed function, and ; you should really use a server based rate limiter if you want ; to do this correctly. ; DEFAULT: off ; VALUES: any whole number (in bytes per second) ;throttle_download = 10

    ; This determines if a preview image should be retrieved from video files ; It requires encode_get_image transcode settings. ; DEFAULT: "false" ;generate_video_preview = "true"

    ; Uncomment if don't want Ampache to follow symlinks ; DEFAULT: "false" ;no_symlinks = "true"

    ; Use auth? ; If this is set to "true" Ampache will require a valid ; Username and password. If this is set to false then Ampache ; will not ask you for a username and password. false is only ; recommended for internal only instances ; DEFAULT: "true" use_auth = "true"

    ; Default Auth Level ; If use_auth is set to false then this option is used ; to determine the permission level of the 'default' users ; default is administrator. This setting only takes affect ; if use_auth is false ; POSSIBLE VALUES: user, admin, manager, guest ; DEFAULT: guest default_auth_level = "guest"

    ; Skip Timer Threshold ; This allows custom times to decide when a track is skipped ; Allows an integer to denote seconds, or a float to denote percentage ; POSSIBLE VALUES: ; 20 = 20 seconds. ; 0.3 = 30% ; DEFAULT: 20 ;skip_timer = 20

    ; 5 Star Ratings ; This allows ratings for almost any object in Ampache : It also allows users to flag objects as a favorite ; POSSIBLE VALUES: false true ; DEFAULT: "true" ratings = "true"

    ; Enable filtering on browse pages for artists and albums. ; If you enable this setting the get_random and browse pages ; will remove artists and albums that are <= to that rating ; DEFAULT: "false" ;rating_browse_filter = "true"

    ; Set the rating that will be filtered ; e.g. 2 will filter 1 and 2 star albums and artists ; this setting must be set for the filter to work ; DEFAULT: null ;rating_browse_minimum_stars = 1

    ; By default Ampache assigns the rating set in files tags to ; the system user (-1). If you would like ALL file tags to be ; assigned to a specific user set their user ID here. ; DEFAULT: -1 ;rating_file_tag_user = 1

    ; Direct play ; This allows user to play directly a song or album ; POSSIBLE VALUES: false true ; DEFAULT: "true" directplay = "true"

    ; Sociable ; This turns on / off all of the "social" features of Ampache ; default is on, but if you don't care and just want music ; turn this off to disable all social features. ; DEFAULT: "true" sociable = "true"

    ; License ; This turns on / off all licensing features on Ampache ; DEFAULT: "false" licensing = "false"

    ; This options will turn on/off Demo Mode ; If Demo mode is on you can not play songs or update your catalog ; in other words.. leave this commented out ; DEFAULT: "false" ;demo_mode = "true"

    ; This options will turn on/off Simple User Mode ; If simple_user_mode is true you can not edit your profile or make ; changes to your account unless you are an admin ; This is for shared accounts or simple sites like the ampache demo ; DEFAULT: "false" ;simple_user_mode = "true"

    ; Caching ; This turns the caching mechanisms on or off, due to a large number of ; problems with people with very large catalogs and low memory settings ; this is off by default as it does significantly increase the memory ; requirements on larger catalogs. If you have the memory this can create ; a 2-3x speed improvement. ; DEFAULT: "false" ;memory_cache = "true"

    ; Memory Limit ; This defines the "Min" memory limit for PHP if your php.ini ; has a lower value set Ampache will set it up to this. If you ; set it below 16MB getid3() will not work! ; DEFAULT: 32 ;memory_limit = 32

    ; Album Art Preferred Filename ; Specify a filename to look for if you always give the same filename ; i.e. "folder.jpg" Ampache currently only supports jpg/gif and png ; Especially useful if you have a front and a back image in a folder ; comment out if Ampache should search for any jpg, gif or png ; DEFAULT: folder.jpg ;album_art_preferred_filename = "folder.jpg"

    ; Artist Art Preferred Filename ; Specify a filename to look for artist specific art, either in the ; same folder as your files or in the parent folder ; e.g. /mnt/music/Artist/Album/artist.jpg ; /mnt/music/Artist/artist.jpg ; DEFAULT: folder.jpg ;artist_art_preferred_filename = "folder.jpg"

    ; Artist Art Dump Folder ; Specify a local folder to search for art using name/title to identify ; i.e. "/var/www/art/" is filled with artist images named by artist ; e.g. "Megadeth.jpg", "Judas Priest.png", "The Smashing Pumpkins.jpg" ; When enabled; gather_folder will check this folder for artist images ; DEFAULT: "false" ;artist_art_folder = "/var/www/art"

    ; Album Art Store on Disk ; This defines if arts should be stored on disk instead of database. ; DEFAULT: "false" ;album_art_store_disk = "true"

    ; Local Metadata Directory ; This define a local metadata directory with write access where to store ; heavy data if enabled (album arts, ...) ; DEFAULT: none ;local_metadata_dir = "/metadata"

    ; Maximal upload size ; Specify the maximal allowed upload size for images, in bytes. ; DEFAULT: 1048576 ;max_upload_size = 1048576

    ; Album Art Minimum Width ; Specify the minimum width for arts (in pixel). ; DEFAULT: none ;album_art_min_width = 100

    ; Album Art Maximum Width ; Specify the maximum width for arts (in pixel). ; DEFAULT: none ;album_art_max_width = 1024

    ; Album Art Minimum Height ; Specify the minimum height for arts (in pixel). ; DEFAULT: none ;album_art_min_height = 100

    ; Album Art Maximum Height ; Specify the maximum height for arts (in pixel). ; DEFAULT: none ;album_art_max_height = 1024

    ; Resize Images * Requires PHP-GD * ; Set this to true if you want Ampache to resize the Album ; art on the fly, this increases load time and CPU usage ; and also requires the PHP-GD library. This is very useful ; If you have high-quality album art and a small upload cap ; DEFAULT: "false" ;resize_images = "true"

    ; Playlist Cover Art ; Set this to true if you want Ampache to generate ; cover art for playlists automatically based on ; the content. ; DEFAULT: "true" playlist_art = "true"

    ; Statistical Graphs * Requires PHP-GD * ; Set this to true if you want Ampache to generate statistical graphs on usages / users. ; This is false by default due to issues around the licensing of c-pchart. ; https://github.com/ampache/ampache/issues/1515 ; http://www.pchart.net/license ; REFERENCE: https://github.com/ampache/ampache/wiki/chart-faq ; You can enable c-chart with the following command ; composer require szymach/c-pchart "3.*" ; DEFAULT: "false" ;statistical_graphs = "true"

    ; Art Gather Order ; Simply arrange the following in the order you would like ; Ampache to search. If you want to disable one of the search ; methods simply leave it out. DB should be left as the first ; method unless you want it to overwrite what's already in the ; database ; POSSIBLE VALUES (builtins): db tags folder lastfm musicbrainz google ; POSSIBLE VALUES (plugins): Amazon,TheAudioDb,Tmdb,Omdb,Flickr ; DEFAULT: db,tags,folder,spotify,musicbrainz,lastfm,google art_order = "db,spotify,TheAudioDb,musicbrainz,lastfm,tags,folder"

    ; Gather song art ; Gather song art additionally to the album art. This will add each ; image of a song into the database. If your database contains ; many songs not related to an album this should possibly be set to true. ; Otherwise for an environment that contains mainly full albums ; this should remain false to avoid multiple entries of the same image. ; You need to set show_song_art to true if you want to make the song images visible. ; DEFAULT = false ;gather_song_art = "true"

    ; Show song art ; Show song art instead of album art in web UI and Subsonic API. ; This will only work when gather_song_art is set to true AND when ; there is song art in the database. ; DEFAULT: false ;show_song_art = "true"

    ; Spotify Album art search filter ; Narrow the search. ; POSSIBLE VALUES: artist,(year:1991 or year:1991-2000) ; POSSIBLE VALUES: empty string("") or commented out for no filter ; DEFAULT: none; ;spotify_art_filter = "artist"

    ; Art search limit ; Limit the total images returned ; DEFAULT: 15 ;art_search_limit = 15

    ; Recommendations ; Set this to true to enable display of similar artists or albums ; while browsing. Requires Last.FM. ; DEFAULT: "false" ;show_similar = "true"

    ; Hide Searches from the API ; Set this to true and the get_indexes and playlists methods will not automatically include ; searches/smart lists in the results. ; Older versions of the Kodi Add-on will require this for playlists to work ; DEFAULT: "false" ;hide_search = "true"

    ; Allow or disallow upload scripts on the server ; Enable this if you trust your users ; DEFAULT: "false" ;allow_upload_scripts = "true"

    ;######################################################### ; API keys # ;#########################################################

    ; Last.FM API Key ; Set this to your Last.FM api key to actually use Last.FM for ; recommendations and metadata. lastfm_api_key = "d5df942424c71b754e54ce1832505ae2"

    ; Last.FM API secret ; Set this to your Last.FM api secret to actually use Last.FM for ; scrobbling. ; DEFAULT: none lastfm_api_secret = ""

    ; Spotify client id ; Set this to your Spotify client id to actually use Spotify for ; accessing their catalog API. (https://developer.spotify.com/dashboard/) ; DEFAULT: none ;spotify_client_id = ""

    ; Spotify client secret ; Both id and secret are required to access the spotify catalog. ; DEFAULT: none ;spotify_client_secret = ""

    ; Wanted ; Set this to true to enable display missing albums and the ; possibility for users to mark it as wanted. ; DEFAULT: "false" wanted = "false"

    ; Wanted types ; Set the allowed types of wanted releases (album,compilation,single,ep,live,remix,promotion,official) ; DEFAULT: album,official wanted_types = "album,official"

    ; Wanted Auto Accept ; Mark wanted requests as accepted by default (no content manager agreement required) ; DEFAULT: "false" ;wanted_auto_accept = "true"

    ; Labels ; Use labels to browse artists per label membership. ; DEFAULT: "false" ;label = "true"

    ; Broadcasts ; Allow users to broadcast music. ; This feature requires advanced server configuration, please take a look on the wiki for more information. ; DEFAULT: "false" ;broadcast = "true"

    ; Channels ; Set this to true to enable channels and the ; possibility for users to create channels from playlists ; DEFAULT: "false" channel = "false"

    ; Live Streams ; Set this to true to enable live streams (radio) and the ; possibility for users to add new live streams. ; DEFAULT: "true" live_stream = "true"

    ; Podcasts ; Set this to true to enable podcasts and the ; possibility for admins to subscribe to new podcasts. ; DEFAULT: "true" podcast = "true"

    ; Web Socket address ; Declare the web socket server address ; DEFAULT: determined automatically ;websocket_address = "ws://localhost:8100"

    ; Refresh Limit ; This defines the default refresh limit in seconds for ; pages with dynamic content, such as Now Playing ; DEFAULT: 60 ; Possible Values: Int > 5 refresh_limit = "60"

    ; Embedded Now Playing Page ; Set this to true to enable the embedded Now Playing page (now_playing.php). ; This page allows for embedding a Now Playing badge into a stream ; or status page. Use with the parameter 'user_id' to filter by a ; specific user. This page is like rss in that it doesn't require a ; login to view. ; DEFAULT: "false" ;use_now_playing_embedded = "true"

    ; Now Playing Refresh Limit ; This defines the refresh limit in seconds for the ; Now Playing embedded page. This (now_playing.php) is not ; part of the normal application and is designed to be ; embedded in another app, like a stream or status page. ; If this value is not valid, automatic refresh will be disabled. ; DEFAULT: -1 ; Possible Values; Int > 1 ;now_playing_refresh_limit = "-1"

    ; Now Playing Custom CSS ; This defines the custom css file for the Now Playing embedded ; page. This (now_playing.php) is not part of the normal ; application and is designed to be embedded in another app, like ; a stream or status page. ; If this value is not set, no CSS will be used. Custom CSS can ; still be applied in the other application, like OBS. ; DEFAULT: Not enabled ;now_playing_css_file = "templates/now-playing.css"

    ; Footer Statistics ; This defines whether statistics (Queries, Cache Hits, Load Time) ; are shown in the page footer. ; DEFAULT: "true" show_footer_statistics = "true"

    ; RSS Feeds ; Set this to true to enable rss feeds. ; (latest albums, shouts, albums of artist, ...) ; use_rss = false (values true | false) ; DEFAULT: "false" ;use_rss = "true"

    ; This setting allows themes to overwrite PHP template files. This can be really ; dangerous. Do this only if you trust every theme in your themes/ directory. ; DEFAULT: "false" ;allow_php_themes = "true"

    ;######################################################### ; Debugging # ;#########################################################

    ; Debug ; If this is enabled Ampache will write debugging information to the log file ; DEFAULT: "false" ;debug = "true"

    ; Debug Level ; This should always be set in conjunction with the ; debug option, it defines how prolific you want the ; debugging in Ampache to be. values are 1-5. ; 1 == Basic Errors ; 2 == Errors + Failures (login attempts etc.) ; 3 == Full Error Information ; 4 == General Information ; 5 == Full Information (cataloging progress etc.) ; DEFAULT: 5 debug_level = 5

    ; Path to Log File ; This defines where you want Ampache to log events to ; this will only happen if debug is turned on. Do not ; include trailing slash. You will need to make sure that ; the specified directory exists and your HTTP server has ; write access. ; DEFAULT: none log_path = "/var/log/ampache"

    ; Log filename pattern ; This defines where the log file name pattern ; %name.%Y%m%d.log will create a different log file every day. ; DEFAULT: %name.%Y%m%d.log log_filename = "%name.%Y%m%d.log"

    ;######################################################### ; Encoding Settings # ;#########################################################

    ; Charset of generated HTML pages ; Default of UTF-8 should work for most people ; DEFAULT: UTF-8 site_charset = "UTF-8"

    ; Locale Charset ; Local charset (mainly for file operations) if different ; from site_charset. ; This is disabled by default, enable only if needed ; (for Windows please set lc_charset to ISO8859-1) ; DEFAULT: ISO8859-1 ;lc_charset = "ISO8859-1"

    ; Multibyte ; See http://php.net/manual/mbstring.supported-encodings.php ; If you want ID3v1 encoding detection to work, you should uncomment this line ; so that the ordering is sane. ; DEFAULT: auto ;mb_detect_order = "ASCII,UTF-8,EUC-JP,ISO-2022-JP,SJIS,JIS"

    ;######################################################### ; Custom actions (optional) # ;#########################################################

    ; Your custom play action title ;custom_play_action_title_0 = "" ; Your custom play action icon name (stored as /images/icon_[your_image].png) ;custom_play_action_icon_0 = "" ; Your custom action script, where: ; - %f: the media file path ; - %c: the excepted codec target (mp3, ogg, ...) ; - %a: the artist name ; - %A: the album name ; - %t: the song title ; DEFAULT: none ;custom_play_action_run_0 = ""

    ; Example for Karaoke playing ;custom_play_action_title_0 = "Karaoke" ;custom_play_action_icon_0 = "microphone" ;custom_play_action_run_0 = "sox "%f" -p oops | ffmpeg -i pipe:0 -f %c pipe:1"

    ;######################################################### ; LDAP login info (optional) # ;#########################################################

    ; LDAP server URL (required) ; DEFAULT: none ;ldap_url = "ldap://localhost/" ;ldap_url = "ldaps://localhost/"

    ; LDAP credentials (optional) ; DEFAULT: none ;ldap_username = "" ;ldap_password = ""

    ; LDAP Base DN for the search (required) ; DEFAULT: none ;ldap_search_dn = "ou=People,dc=yoursubdomain,dc=yourdomain,dc=yourtld"

    ; LDAP objectClass (required) ; DEFAULT: none ;ldap_objectclass = "posixAccount" ; OpenLDAP ;ldap_objectclass = "organizationalPerson" ; Microsoft Active Directory

    ; LDAP filter for search (required) ; DEFAULT: none ;ldap_filter = "(uid=%v)" ; OpenLDAP ;ldap_filter = "(sAMAccountName=%v)" ; Microsoft Active Directory

    ; Require that the user is in a specific group (optional) ; DEFAULT: none ;ldap_require_group = "cn=yourgroup,ou=yourorg,dc=yoursubdomain,dc=yourdomain,dc=yourtld"

    ; LDAP name field ; DEFAULT: cn ;ldap_name_field = "cn" ;ldap_name_field = "displayName"

    ; LDAP email field ; DEFAULT: mail ;ldap_email_field = "mail"

    ; LDAP avatar field ; DEFAULT: none ;ldap_avatar_field = "jpegPhoto"

    ; LDAP avatar mime type ; DEFAULT: image/jpeg ;ldap_avatar_mime = "image/jpeg"

    ; LDAP protocol version to use ; DEFAULT: 3 ;ldap_protocol_version = 3

    ; LDAP StartTLS ; DEFAULT: "false" ;ldap_start_tls = "true"

    ; LDAP member attribute name. ; That's the name of the attribute of the group that will contain ; the usernames. ; DEFAULT: member ;ldap_member_attribute = "member" ;ldap_member_attribute = "memberuid"

    ;######################################################### ; OpenID login info (optional) # ;#########################################################

    ; Requires specific OpenID Provider Authentication Policy ; DEFAULT: none ; VALUES: PAPE_AUTH_MULTI_FACTOR_PHYSICAL,PAPE_AUTH_MULTI_FACTOR,PAPE_AUTH_PHISHING_RESISTANT ;openid_required_pape = ""

    ;######################################################### ; Public Registration settings, defaults to disabled # ;#########################################################

    ; This setting will silently create an Ampache account ; for anyone who can login using LDAP (or any other login ; extension). The default is to create new users as guests ; see auto_user config option if you would like to change this ; DEFAULT: "false" ;auto_create = "true"

    ; This setting will silently update an Ampache account's ; information for anyone who can login using LDAP ; (or any other login extension). ; DEFAULT: "false" ;external_auto_update = "true"

    ; This setting turns on/off public registration. It is ; recommended you leave this off, as it will allow anyone to ; sign up for an account on your server. ; REMEMBER: don't forget to set the mail from address further down in the config. ; DEFAULT: "false" allow_public_registration = "false"

    ; Require Captcha Text on Image confirmation ; Turning this on requires the user to correctly ; type in the letters in the image created by Captcha ; Default is off because its very hard to detect if it failed ; to draw, or they failed to enter it. ; DEFAULT: "false" ;captcha_public_reg = "true"

    ; This setting turns on/off admin notification of registration. ; DEFAULT: "false" ;admin_notify_reg = "true"

    ; This setting determines whether the user will be created as a disabled user. ; If this is on, an administrator will need to manually enable the account ; before it's usable. ; DEFAULT: "false" ;admin_enable_required = "true"

    ; This setting will allow all registrants/ldap/http users ; to be auto-approved as a user. By default, they will be ; added as a guest and must be promoted by the admin. ; POSSIBLE VALUES: guest, user, admin ; DEFAULT: guest ;auto_user = "guest"

    ; This will display the user agreement when registering ; For agreement text, edit config/registration_agreement.php ; User will need to accept the agreement before they can register ; DEFAULT: "false" ;user_agreement = "true"

    ; This disable email confirmation when registering. ; DEFAULT: "false" ;user_no_email_confirm = "true"

    ; This will display the cookie disclaimer (EU Cookie Law) ; DEFAULT: "false" cookie_disclaimer = "false"

    ; The fields that will be shown on Registration page ; If a user wants to register. ; Username and email fields are forced. ; POSSIBLE VALUES: fullname,website,state,city ; DEFAULT: fullname,website registration_display_fields = "fullname,website"

    ; The fields that will be mandatory ; This controls which fields are mandatory for registration. ; Username and email fields are forced mandatory. ; POSSIBLE VALUES: fullname,website,state,city ; DEFAULT: fullname registration_mandatory_fields = "fullname"

    ;######################################################### ; These options control the dynamic downsampling based # ; on current usage # ; Note Transcoding must be enabled and working # ;#########################################################

    ; Attempt to optimize bandwidth by dynamically lowering the bit rate of new ; streams. Since the bit rate is only adjusted at the beginning of a song, the ; actual cumulative bitrate for concurrent streams can be up to around ; double the configured value. It also only applies to streams that are ; transcoded. ; DEFAULT: none ;max_bit_rate = 576

    ; New dynamically downsampled streams will be denied if they are forced below ; this value. ; DEFAULT: 8 ;min_bit_rate = 48

    ;######################################################### ; Transcode Settings # ;#########################################################

    ; These are commands used to transcode non-streaming ; formats to the target file type for streaming. ; This can be useful in re-encoding file types that don't stream ; very well, or if your player doesn't support some file types. ; ; 'Downsampling' will also use these commands. ; ; To state the bleeding obvious, any programs referenced in the transcode ; commands must be installed, in the web server's search path (or referenced ; by their full path), and executable by the web server.

    ; Input type selection ; TYPE is the extension. 'allowed' certifies that transcoding works properly for ; this input format. 'required' further forbids the direct streaming of a format ; (e.g. if you store everything in FLAC, but don't want to ever stream that.) ; transcode_TYPE = {allowed|required|false} ; DEFAULT: "false" ;;; Audio ;transcode_m4a = "allowed" ;transcode_flac = "required" ;transcode_mpc = "required" ;transcode_ogg = "required" ;transcode_oga = "required" ;transcode_opus = "required" ;transcode_wav = "required" ;transcode_wma = "required" ;transcode_aif = "required" ;transcode_aiff = "required" ;transcode_ape = "required" ;transcode_shn = "required" transcode_mp3 = "allowed" ;;; Video ;transcode_avi = "allowed" ;transcode_flv = "allowed" ;transcode_mkv = "allowed" ;transcode_mpg = "allowed" ;transcode_mpeg = "allowed" ;transcode_m4v = "allowed" ;transcode_mp4 = "allowed" ;transcode_mov = "allowed" ;transcode_wmv = "allowed" ;transcode_ogv = "allowed" ;transcode_divx = "allowed" ;transcode_m2ts = "allowed" ;transcode_webm = "allowed"

    ; Default audio output format ; DEFAULT: none ;encode_target = mp3

    ; Default video output format ; DEFAULT: none ;encode_video_target = webm

    ; Override the default output format on a per-type basis, for example, ; to stream lossless encoded files in lossy formats. ; encode_target_TYPE = TYPE ; DEFAULT: none ;encode_target_flac = opus

    ; Override the default TYPE transcoding behavior on a per-player basis, for example, ; to stream lossless using the api and lossy using the web interface. ; transcode_player_PLAYER_TYPE = TYPE ; Valid PLAYER is: webplayer, api ; DEFAULT: none ;transcode_player_webplayer_m4a = "required" ;transcode_player_webplayer_flac = "required" ;transcode_player_webplayer_mpc = "required"

    ; Override the default output format on a per-player basis ; encode_player_PLAYER_target = TYPE ; Valid PLAYER is: webplayer, api ; DEFAULT: none ;encode_player_webplayer_target = mp3 ;encode_player_api_target = mp3

    ; Allow clients to override transcode settings (output type, bitrate, codec ...) ; DEFAULT: "true" transcode_player_customize = "true"

    ; Command configuration. Substitutions will be made as follows: ; %FILE% => filename ; %BITRATE% => target bit rate (as chosen by the admin or users in the ; preferences, if transcode_player_customize = "true") ; You can do fancy things like VBR, but consider whether the consequences are ; acceptable in your environment.

    ; Master transcode command ; transcode_cmd should be a single command that supports multiple file types, ; such as ffmpeg or avconv. It's still possible to make a configuration that's ; equivalent to the old default, but if you find that necessary you should be ; clever enough to figure out how on your own. ; DEFAULT: none ;transcode_cmd = "ffmpeg" ;transcode_cmd = "avconv" ;transcode_cmd = "/usr/bin/neatokeen"

    ; Transcode input file argument transcode_input = "-i %FILE%"

    ; Specific transcode commands ; It shouldn't be necessary in most cases, but you can override the transcode ; command for specific source formats. It still needs to accept the ; encoding arguments, so the easiest approach is to use your normal command as ; a clearing-house. ; transcode_cmd_TYPE = TRANSCODE_CMD ;transcode_cmd_mid = "timidity -Or -o – %FILE% | ffmpeg -f s16le -i pipe:0"

    ; Encoding arguments ; For each output format, you should provide the necessary arguments for ; your transcode_cmd. ; encode_args_TYPE = TRANSCODE_CMD_ARGS encode_args_mp3 = "-vn -b:a %BITRATE%K -c:a libmp3lame -f mp3 pipe:1" encode_args_ogg = "-vn -b:a %BITRATE%K -c:a libvorbis -f ogg pipe:1" encode_args_opus = "-vn -b:a %BITRATE%K -c:a libopus -compression_level 10 -vsync 2 -f ogg pipe:1" encode_args_m4a = "-vn -b:a %BITRATE%K -c:a libfdk_aac -f adts pipe:1" encode_args_wav = "-vn -b:a %BITRATE%K -c:a pcm_s16le -f wav pipe:1" encode_args_flv = "-b:a %BITRATE%K -ar 44100 -ac 2 -v 0 -f flv -c:v libx264 -preset superfast -threads 0 pipe:1" encode_args_webm = "-b:a %BITRATE%K -f webm -c:v libvpx -preset superfast -threads 0 pipe:1" encode_args_ts = "-q %QUALITY% -s %RESOLUTION% -f mpegts -c:v libx264 -c:a libmp3lame -maxrate %MAXBITRATE%k -preset superfast -threads 0 pipe:1" encode_args_ogv = "-codec:v libtheora -qscale:v 7 -codec:a libvorbis -qscale:a 5 -f ogg pipe:1"

    ; Encoding arguments to retrieve an image from a single frame encode_get_image = "-ss %TIME% -f image2 -vframes 1 pipe:1"

    ; Encoding argument to encrust subtitle encode_srt = "-vf "subtitles='%SRTFILE%'""

    ; Encode segment frame argument encode_ss_frame = "-ss %TIME%"

    ; Encode segment duration argument encode_ss_duration = "-t %DURATION%"

    ; Use segments for transcoding or send it all in one go. ; Useful if you are having issues streaming the full track. ; You can set it for all streams or a specific player ; POSSIBLE VALUES: true webplayer api ; DEFAULT: "webplayer" send_full_stream = "webplayer"

    ;######################################################### ; Transcode Caching # ;#########################################################

    ; These are commands used to pre-cache a file format for streaming. ; This helps avoid waiting for transcodes to finish and makes ; files immediately available to the client.

    ; Path to your cache folder. ; This is where the pre-transcoded files will be stored ; DEFAULT: none ;cache_path = "/tmp"

    ; Default audio output format ; This is what you want your cached format to be. ; This should match your 'encode_target' in Transcode Settings ; POSSIBLE VALUES: mp3 opus ogg ; DEFAULT: none ;cache_target = "mp3"

    ; Look in your local catalogs for these file extensions and pre-cache to the ; 'cache_path'. This could be helpful to reduce space needed on your ; web server or to make sure that clients get files quickly. ; Execute "php bin/cli run:cacheProcess" to process these files. ; DEFAULT: "false" ;cache_m4a = "true" ;cache_flac = "true" ;cache_mpc = "true" ;cache_ogg = "true" ;cache_oga = "true" ;cache_opus = "true" ;cache_wav = "true" ;cache_wma = "true" ;cache_aif = "true" ;cache_aiff = "true" ;cache_ape = "true" ;cache_shn = "true" ;cache_mp3 = "true"

    ; REMOTE CATALOGS ONLY ; Enabling cache_remote on remote catalogs will cache every file on the remote server ; DEFAULT: "false" ;cache_remote = "true"

    ;######################################################### ; Proxy Settings (optional) # ;#########################################################

    ; If Ampache is behind an http proxy, specify the hostname or IP address ; port, proxy username, and proxy password here. ; DEFAULT: not in use ;proxy_host = "192.168.0.1" ;proxy_port = "8080" ;proxy_user = "" ;proxy_pass = ""

    ; If Ampache is behind an https reverse proxy, force use HTTPS protocol. ; DEFAULT: "false" ;force_ssl = "true"

    ;######################################################### ; Mail Settings # ;#########################################################

    ; Enable or disable email server features ; otherwise, you can reset your password ; and never receive an email with the new one ; Default: false ;mail_enable = "true"

    ; Method used to send mail ; POSSIBLE VALUES: smtp sendmail php ; DEFAULT: php ;mail_type = "php"

    ; Mail domain. ; DEFAULT: example.com ;mail_domain = "example.com"

    ; This will be combined with mail_domain and used as the source address for ; emails generated by Ampache. For example, setting this to 'me' will set the ; sender to '[email protected]'. ; DEFAULT: info ;mail_user = "info"

    ; A name to go with the email address. ; DEFAULT: Ampache ;mail_name = "Ampache"

    ; How strictly email addresses should be checked. ; easy does a regex match, strict actually performs some SMTP transactions ; to see if we can send to this address. ; POSSIBLE VALUES: strict easy none ; DEFAULT: strict ;mail_check = "strict"

    ;######################################################### ; sendmail Settings # ;#########################################################

    ; DEFAULT: /usr/sbin/sendmail ;sendmail_path = "/usr/sbin/sendmail"

    ;######################################################### ; SMTP Settings # ;#########################################################

    ; Mail server (hostname or IP address) ; DEFAULT: localhost ;mail_host = "localhost"

    ; SMTP port ; DEFAULT: 25 ;mail_port = 25

    ; Secure SMTP ; POSSIBLE VALUES: ssl tls ; DEFAULT: none ;mail_secure_smtp = tls

    ; Enable SMTP authentication ; DEFAULT: "false" ;mail_auth = "true"

    ; SMTP username ; your mail auth username. ; DEFAULT: none ;mail_auth_user = ""

    ; SMTP password ; your mail auth password. ; DEFAULT: none ;mail_auth_pass = ""

    ;######################################################### ; Abbreviation Filter # ;#########################################################

    ; For file name parsing. Any unnecessary abbreviations in file names can be removed during parsing ; by adding them to the list below so that they will be removed during the parsing process. common_abbr = "divx,xvid,dvdrip,hdtv,lol,axxo,repack,xor,pdtv,real,vtv,caph,2hd,proper,fqm,uncut,topaz,tvt,notv,fpn,fov,orenji,0tv,omicron,dsr,ws,sys,crimson,wat,hiqt,internal,brrip,boheme,vost,vostfr,fastsub,addiction,x264,LOL,720p,1080p,YIFY,evolve,fihtv,first,bokutox,bluray,tvboom,info" `

    Logs

    I could not get any logs, it just would not generate any for some reason.

    opened by CarrionAndOn 1
  • [Feature Request] Re-add the broadcast feature

    [Feature Request] Re-add the broadcast feature

    Describe what you don't like about Ampache, or what it is missing

    In an earlier version of Ampache, there used to be a "broadcast" feature that was similar to "Remote group session" on Spotify. There is a flag to add to page to the sidebar, but the feature is completely broken. Adding this feature would allow Ampache to stand out from the rest of the media players online.

    Describe how you would like the feature to work**

    Ideally, it would support creating broadcast sessions that use websockets to synchronize songs between the host and all of the clients.

    I was able to get it somewhat working again a couple of months ago by updating some webplayer and request handling code but it was very buggy. For someone more experienced with the codebase and PHP, the scope of this issue shouldn't be very big.

    opened by matkam7 1
  • [Feature Request] MPRIS support

    [Feature Request] MPRIS support

    MPRIS is a standard that allows controlling and querying media players over DBUS. https://wiki.archlinux.org/title/MPRIS

    Firefox is supporting that standard, but returned metadata is a bit incomplete with Ampache:

    $ playerctl metadata
    firefox mpris:trackid             '/org/mpris/MediaPlayer2/firefox'
    firefox xesam:title               Echoes - Pink Floyd | Ampache
    firefox xesam:album               
    firefox xesam:artist              
    

    (title seems to be just the website title, maybe generated automatically by Firefox as fallback?)

    Compared to e.g. YouTube:

    firefox mpris:trackid             '/org/mpris/MediaPlayer2/firefox'
    firefox xesam:title               Echoes
    firefox xesam:album               
    firefox xesam:artist              Pink Floyd - Topic
    firefox mpris:artUrl              file:///home/reiner/.mozilla/firefox/firefox-mpris/1228641_9.png
    

    (there is even a reference to artwork)

    It would be nice to have better MPRIS support in Ampache.

    opened by reinerh 0
  • Smart Playlist - metadata search

    Smart Playlist - metadata search

    Hello,

    I can't seem to figure out what I'm doing wrong or if it just doesn't work in the WEB UI.

    I have enabled the enable_custom_metadata = "true" in the PHP config file. Also made sure that metadata fields are not disabled.

    And now i'm trying to create a smart playlist with a search: metadata - subtype - operator - value. eg. metadata - band - contains - Beat But although I search for existing values in specified metadata/subtypes I get zero returns.

    opened by r3ev 0
  • [BUG] Creation of Admin Account issue

    [BUG] Creation of Admin Account issue

    I create an admin account in the first configuration, for example Mariusadmin When I'm ready to log in, I can log in with MariusAdmin instead of Mariusadmin so I can log in with either an uppercase letter or a lowercase letter. Ampache 5.5.6 disregards this basic safety rule.

    opened by mariushosting 1
Releases(5.5.6)
  • 5.5.6(Dec 15, 2022)

    php7.4 82f138c94aee839b7e961aed50e55bb5 ./ampache-5.5.6_all.zip 82f138c94aee839b7e961aed50e55bb5 ./ampache-5.5.6_all_php7.4.zip 67fe452217d458e3d069d7888f274899 ./ampache-5.5.6_all_squashed.zip 67fe452217d458e3d069d7888f274899 ./ampache-5.5.6_all_squashed_php7.4.zip

    php8.0 c5713c4ab7e0cbc8c1a82709aaeb8946 ./ampache-5.5.6_all_php8.0.zip 909fdcdd1e453f27ba5aaf0ed33fb4ba ./ampache-5.5.6_all_squashed_php8.0.zip

    php8.1 5171ea711cd1f6c5b21f4f0d00eb59b1 ./ampache-5.5.6_all_php8.1.zip 1531c71a141292c7a995a8d2dc74cb5f ./ampache-5.5.6_all_squashed_php8.1.zip

    Ampache 5.5.6-release

    This release imports the API code cleanup from Ampache Develop which has fixed a lot of data issues.

    There will probably not be another big change to Ampache 5 as work has moved to Ampache6 but there will be more bugfix releases if needed.

    Changed

    • Scrutinizer moved to php8.1

    Fixed

    • Spotify art collector (AGAIN)
    • get_now_playing has_access check
    • Malformed HTML for regular users in preferences sidebar
    • Missing translation on preferences sidebar
    • Default catalog_filter group could be missing on a new install
    • Gather genre tags when not an array
    • Display webp images
    • Check for a valid image extensions when uploading art
    • Templates for squashed branch with a default path

    API 5.5.6

    Fix various runtime errors and incorrect parameters for responses.

    Changed

    • API browses all point to the Api class
    • Use FILTER_VALIDATE_IP on ping calls

    Fixed

    • Api5
      • songs set_filter call without browse parameter may have lost info
      • get_indexes set album_artist filter correctly
      • artists set album_artist filter correctly
      • share_create undefined filter check
    • Api4
      • songs set_filter call without browse parameter may have lost info
      • get_indexes set album_artist filter correctly
      • timeline incorrect JSON attribute data instead of date
      • catalogs JSON had incorrect data for last_add and missing enabled
      • albums return an empty response with a bad artist id
      • download url parameter order matching "client, action, cache"
      • catalogs undefined filter check
      • podcast undefined filter check
      • podcast_edit undefined filter check
      • podcasts undefined filter check
      • share_create undefined filter check
      • share_edit undefined filter check
    • Api3
      • album_songs return an empty response with a bad album id
      • artist_albums return an empty response with a bad artist id
      • Calls to songs with user ID instead of user object
    Source code(tar.gz)
    Source code(zip)
    ampache-5.5.6_all.zip(56.09 MB)
    ampache-5.5.6_all_php7.4.zip(56.09 MB)
    ampache-5.5.6_all_php8.0.zip(56.47 MB)
    ampache-5.5.6_all_php8.1.zip(56.47 MB)
    ampache-5.5.6_all_squashed.zip(56.31 MB)
    ampache-5.5.6_all_squashed_php7.4.zip(56.31 MB)
    ampache-5.5.6_all_squashed_php8.0.zip(56.70 MB)
    ampache-5.5.6_all_squashed_php8.1.zip(56.70 MB)
  • 5.5.5(Nov 23, 2022)

    php7.4 d0f80b407c6febd54cf2246d52034856 ./ampache-5.5.5_all.zip d0f80b407c6febd54cf2246d52034856 ./ampache-5.5.5_all_php7.4.zip 3d79fcab60302ef639891ce3bd2e0ba8 ./ampache-5.5.5_all_squashed.zip 3d79fcab60302ef639891ce3bd2e0ba8 ./ampache-5.5.5_all_squashed_php7.4.zip

    php8.0 b986f20987600b9b1b7734bd7112b4e8 ./ampache-5.5.5_all_php8.0.zip def1bcf22d85fcae6ed22d3320e3b1fe ./ampache-5.5.5_all_squashed_php8.0.zip

    php8.1 f1df11db3fa7143943e361834bdf0654 ./ampache-5.5.5_all_php8.1.zip 7b9cd07b0e1d8802326d318978d4b69f ./ampache-5.5.5_all_squashed_php8.1.zip

    Ampache 5.5.5-release

    This release fixes up all the issues I created with the bad release files as well as an art search issue I missed until after the release.

    Fixed

    • Set etag for image cache
    • Spotify art collector
    • Double scrub string in catalog search rules

    API 5.5.5

    NO CHANGE

    Source code(tar.gz)
    Source code(zip)
    ampache-5.5.5_all.zip(56.05 MB)
    ampache-5.5.5_all_php7.4.zip(56.05 MB)
    ampache-5.5.5_all_php8.0.zip(56.43 MB)
    ampache-5.5.5_all_php8.1.zip(56.43 MB)
    ampache-5.5.5_all_squashed.zip(56.27 MB)
    ampache-5.5.5_all_squashed_php7.4.zip(56.27 MB)
    ampache-5.5.5_all_squashed_php8.0.zip(56.66 MB)
    ampache-5.5.5_all_squashed_php8.1.zip(56.66 MB)
  • 5.5.4(Nov 20, 2022)

    Rebuild for bad zip files! The new files were not included as the build scripts just used the old data without updating

    php7.4 97a8944561c72dea2872380ab11c883e ./ampache-5.5.4_all.zip 2c9be53ba0f8bc40dd834512cd778ac3 ./ampache-5.5.4_all_php7.4.zip 3c983fbf23a67e08858a9e263551bea7 ./ampache-5.5.4_all_squashed.zip 3c983fbf23a67e08858a9e263551bea7 ./ampache-5.5.4_all_squashed_php7.4.zip ~fbc0b50483cdee9bf291c86229cdfd77 ./ampache-5.5.4_all.zip~ REMOVED ~fbc0b50483cdee9bf291c86229cdfd77 ./ampache-5.5.4_all_php7.4.zip~ REMOVED ~9002a9276c102dc12dd13ebfdc349579 ./ampache-5.5.4_all_squashed.zip~ REMOVED ~9002a9276c102dc12dd13ebfdc349579 ./ampache-5.5.4_all_squashed_php7.4.zip~ REMOVED

    php8.0 675809204942d24d08dfe9e25baeaddf ./ampache-5.5.4_all_php8.0.zip 6e0bbeabfb9671d5339478e28d09c361 ./ampache-5.5.4_all_squashed_php8.0.zip ~7aa7b6c3ad8bab09ce0add30c9eb4b18 ./ampache-5.5.4_all_php8.0.zip~ REMOVED ~0e9df312e2f264f5b377f8850e66e815 ./ampache-5.5.4_all_squashed_php8.0.zip~ REMOVED

    php8.1 c550e7cd0aaebf4d9494a5aec9583efb ./ampache-5.5.4_all_php8.1.zip 3faa5df21602ac1ecb57203ce6ac8bd6 ./ampache-5.5.4_all_squashed_php8.1.zip ~5dc56e4c6a09770f91a34546484e45ca ./ampache-5.5.4_all_php8.1.zip~ REMOVED ~1267a2d4d4f336febf015ccf8bfb34e6 ./ampache-5.5.4_all_squashed_php8.1.zip~ REMOVED

    Ampache 5.5.4-release

    This release will fix up issues with the database on a new install requiring a cli fix. Make sure all your tables are correct and up to date with ./bin/cli admin:updateDatabase -e

    The database update ensures that all browse and filtering for album_artist / song_artist searches are correct.

    For php8.1 users the release zips also have a manual update on gettext to stop spamming depreciation errors.

    Added

    • Database 550005
      • Add song_artist and album_artist maps to catalog_map

    Changed

    • Update catalog map tables based on the catalog action
    • Force b and n for back, next in webplayer (was overwritten with [ and ])

    Fixed

    • Missing db tables on a fresh install
    • Not filtering song_artist on album_artist browses
    • Don't use catalog_filter and rating_filter without a valid user
    • Uploaded/Manual Album Artist maps on tag update
    • Delete artist's from the catalog_map that don't have a song or album for that catalog
    • Set correct transcode bitrate and mime for songs on play_url calls
    • Save Track Order when viewing all the items
    • Use cache_target for cached song cleanup (was hardcoded to mp3)
    • Subsonic
      • Art for artist index arrays was missing
    • Search
      • SQL for Artist catalog searches
      • Make sure saved rules match the correct names on load
    • CLI
      • Don't try to update a database when the connection fails

    API 5.5.4

    Fixed

    • User count in Api::ping and Api::handshake was doubled
    • Api3::stats method had incorrect recent parameters
    • Ensure the output bitrate and mime are set for song objects
    • RSS Feed generation with bad characters
    • Don't spam the artist description for each song
    • Show better Trending Dashboard section
    Source code(tar.gz)
    Source code(zip)
    ampache-5.5.4_all.zip(56.07 MB)
    ampache-5.5.4_all_php7.4.zip(56.07 MB)
    ampache-5.5.4_all_php8.0.zip(56.46 MB)
    ampache-5.5.4_all_php8.1.zip(56.42 MB)
    ampache-5.5.4_all_squashed.zip(56.30 MB)
    ampache-5.5.4_all_squashed_php7.4.zip(56.30 MB)
    ampache-5.5.4_all_squashed_php8.0.zip(56.65 MB)
    ampache-5.5.4_all_squashed_php8.1.zip(56.68 MB)
  • 5.5.3(Oct 17, 2022)

    php7.4 1df9ab86a4066114d666f2315207efe3 ./ampache-5.5.3_all.zip 1df9ab86a4066114d666f2315207efe3 ./ampache-5.5.3_all_php7.4.zip 056b87f12d1db33d29c187fd8ac8e9e5 ./ampache-5.5.3_all_squashed.zip 056b87f12d1db33d29c187fd8ac8e9e5 ./ampache-5.5.3_all_squashed_php7.4.zip

    php8.0 1b8e79658a25cc9736d07cf3abe45f8b ./ampache-5.5.3_all_php8.0.zip f70797511d9601ee0c023cea576722ba ./ampache-5.5.3_all_squashed_php8.0.zip

    php8.1 b3b1fe42850fedf09e28bbe422296128 ./ampache-5.5.3_all_php8.1.zip deee8829d93d3d0d590f09b6064cce7e ./ampache-5.5.3_all_squashed_php8.1.zip

    Ampache 5.5.3-release

    Minor release with some fixes to some annoying things.

    The webplayer is now a lot more stable when editing and moving about the list.

    Changed

    • Update copyright year in footer.inc.php
    • Localplay status and instance_fields function cleanup
    • Update some docker files to match current images
    • Allow adding streams to playlists (including rightbar)
    • webplayer
      • Another code rework, remove the old 'original' list
      • Shuffle is an action instead of a state of the playlist

    Fixed

    • Hidden Genres shouldn't have a catalog
    • Streaming with certain parameters could not identify a session/user
    • Should be counting podcast objects in stats
    • Null artist->id on wanted pages
    • Search
      • Album 'other_user' favorite searches
    • SubSonic
      • Error if you didn't have data when using get_user_data
      • Response data might fall back to mp3 and not match the output format
    • webplayer
      • Reordering the list could lose track of items
      • Remove single item from list could create a weird list
      • Remove the final track when it's finished playing (if you've set that option)

    API 5.5.3

    NO CHANGE

    Source code(tar.gz)
    Source code(zip)
    ampache-5.5.3_all.zip(54.75 MB)
    ampache-5.5.3_all_php7.4.zip(54.75 MB)
    ampache-5.5.3_all_php8.0.zip(55.14 MB)
    ampache-5.5.3_all_php8.1.zip(55.14 MB)
    ampache-5.5.3_all_squashed.zip(54.98 MB)
    ampache-5.5.3_all_squashed_php7.4.zip(54.98 MB)
    ampache-5.5.3_all_squashed_php8.0.zip(55.36 MB)
    ampache-5.5.3_all_squashed_php8.1.zip(55.36 MB)
  • 5.5.2(Sep 16, 2022)

    php7.4 f8e61019a9e19d22cd48174996360ef2 ampache-5.5.2_all.zip f8e61019a9e19d22cd48174996360ef2 ampache-5.5.2_all_php7.4.zip 6981a937516d6cf42fd3350ff6b80ff1 ./ampache-5.5.2_all_squashed.zip 6981a937516d6cf42fd3350ff6b80ff1 ./ampache-5.5.2_all_squashed_php7.4.zip

    php8.0 f55963ebd4627d2fa5e2fab3c311cfe0 ./ampache-5.5.2_all_php8.0.zip a0eb48d712b3bbf569127c79e613743a ./ampache-5.5.2_all_squashed_php8.0.zip

    php8.1 55200c821caa0f3893820267a5d345f2 ampache-5.5.2_all_php8.1.zip 49e86ab9864cc7f37f0968e1a8e986ef ./ampache-5.5.2_all_squashed_php8.1.zip

    removed files ~~44125519f6fae073ed55ec12fb956889 ./ampache-5.5.2_all.zip~~ (removed some extra files) ~~44125519f6fae073ed55ec12fb956889 ./ampache-5.5.2_all_php7.4.zip~~ (removed some extra files) ~~9907885372f8eb566efb49fee2fcf386 ./ampache-5.5.2_all_php8.1.zip~~ ERROR (my build repo had a file conflict)

    Ampache 5.5.2-release

    Added

    • Check for upload_catalog before showing upload pages
    • search
      • Class rework and many additional aliases, check the docs for advanced_search
      • Add song_artist as a search type (uses artist rules)
      • Add album_artist as a search type (uses artist rules)
      • Add song_genre, mbid_artist, mbid_song to album search
      • Add song_genre, mbid_album, mbid_song to artist search
      • Add possible_duplicate_album to song search
    • webplayer
      • Code cleanup and attempt to make it a bit less confusing

    Changed

    • Do not overwrite a custom Artist/Album when updating from tags
    • Ignore case when comparing Genre
    • Show an error on share create failures
    • Pull some function back into the search class
    • When searching without rules treat it like a browse and return results unfiltered

    Fixed

    • Tmp_Playlist::get_items may not order by the playlist id
    • Fix album time update when time is NULL
    • Transcoding format could be ignored (encode_player_webplayer_target)
    • Set the file extension based on expected transcode / download format
    • Don't look at the transcode cache when downloading a raw file
    • If you are transcoding redirect to the transcoded file
    • Download stats for song, video, podcast_episode
    • Set the file extension for urls on generation
    • Don't overwrite artist art when searching for album art
    • Retrieve song art from tags the same way they are found ('invalid' art)
    • Searching from the search bar did not pickup up the rules for the search page
    • Upload artist, album and license selection
    • Don't show hidden Genres on object rows
    • Video needs get_f_link function
    • Playlists need to be in catalog_map table
    • Insert Podcasts more often in catalog_map
    • Subsonic basic auth may get filtered
    • Don't filter auth in the PlayAction if sent
    • search
      • Correctly identify alias rule types
      • Bad SQL on 0 rating query for album/artist search
    • webplayer
      • Desired transcode format not being respected
      • Video types missing from supported types
      • Playlist sorting issues

    API 5.5.2

    Added

    • advanced_search
      • Add song_artist as a search type (uses artist rules)
      • Add album_artist as a search type (uses artist rules)
      • Add song_genre, mbid_artist, mbid_song to album search
      • Add song_genre, mbid_album, mbid_song to artist search
      • Add possible_duplicate_album to song search

    Fixed

    • advanced_search
      • unable to retrieve song_artist or album_artist results
    Source code(tar.gz)
    Source code(zip)
    ampache-5.5.2_all.zip(54.74 MB)
    ampache-5.5.2_all_php7.4.zip(54.74 MB)
    ampache-5.5.2_all_php8.0.zip(55.12 MB)
    ampache-5.5.2_all_php8.1.zip(55.12 MB)
    ampache-5.5.2_all_squashed.zip(54.96 MB)
    ampache-5.5.2_all_squashed_php7.4.zip(54.96 MB)
    ampache-5.5.2_all_squashed_php8.0.zip(55.35 MB)
    ampache-5.5.2_all_squashed_php8.1.zip(55.35 MB)
  • 5.5.1(Aug 24, 2022)

    php7.4 07ec94201be6792d03ff32cec83a91e0 ./ampache-5.5.1_all.zip 07ec94201be6792d03ff32cec83a91e0 ./ampache-5.5.1_all_php7.4.zip 0eefe953d0cc12571070e3b587574d8a ./ampache-5.5.1_all_squashed.zip 0eefe953d0cc12571070e3b587574d8a ./ampache-5.5.1_all_squashed_php7.4.zip

    php8.0 59ff71a2155be0ec7726dbd4bf57f04d ./ampache-5.5.1_all_php8.0.zip 8a8cff52b05f1e793ed7a464d4577c94 ./ampache-5.5.1_all_squashed_php8.0.zip

    php8.1 55c6bb2ae8287721c1fdee2d07fe6f4e ./ampache-5.5.1_all_php8.1.zip e5c890c613171043045c795a233a5920 ./ampache-5.5.1_all_squashed_php8.1.zip

    Ampache 5.5.1

    I made a mistake in the release string so we need a new point release already!

    Check out the 5.5.0 release page for details about the major changes

    You will get this error when using the zip releases so we need to do it.

    At least on the plus side you'll get the latest translations!

    Added

    • Translation Updates August 2022
    • Grouping for label search items

    Fixed

    • Release version string is incorrect and will tell you you have updates if you use the release files
    • Missing comma between label links on song pages

    API 5.5.1

    NO CHANGE

    Source code(tar.gz)
    Source code(zip)
    ampache-5.5.1_all.zip(59.53 MB)
    ampache-5.5.1_all_php7.4.zip(59.53 MB)
    ampache-5.5.1_all_php8.0.zip(55.10 MB)
    ampache-5.5.1_all_php8.1.zip(55.10 MB)
    ampache-5.5.1_all_squashed.zip(54.94 MB)
    ampache-5.5.1_all_squashed_php7.4.zip(54.94 MB)
    ampache-5.5.1_all_squashed_php8.0.zip(55.33 MB)
    ampache-5.5.1_all_squashed_php8.1.zip(55.33 MB)
  • 5.5.0(Aug 22, 2022)

    php7.4 ca8b0707638fd16783216ac0e7463f58 ./ampache-5.5.0_all.zip 0dfec2d6076290c360deb5a831068db7 ./ampache-5.5.0_all_php7.4.zip 41e69d5964dce6113920e327ebaff6d8 ./ampache-5.5.0_all_squashed.zip 40fc4e492de537c37526c16e552fb874 ./ampache-5.5.0_all_squashed_php7.4.zip

    php8.0 218b660325a87ecc51533196bcb9c3b2 ./ampache-5.5.0_all_php8.0.zip b42749666e37c732c204bdee7b467dfb ./ampache-5.5.0_all_squashed_php8.0.zip

    php8.1 9b0d2f31b2109c74ec3ed970dab48fc8 ./ampache-5.5.0_all_php8.1.zip be183c1899ef1eb77cac67c230839d9f ./ampache-5.5.0_all_squashed_php8.1.zip

    Ampache 5.5.0

    Private catalogs have been given a lot of love. This feature allows you to assign a catalog to multiple users instead of just one.

    Check out the wiki for more information about this feature.

    NOTE Any user that has a private catalog will have their own filter group created which includes all public catalogs

    PHP8.1 has now been fixed up completely and is now fully supported.

    Added

    • Update Copyright notice to 2022
    • Added a new option 'Random Play' (shuffle) to playlists and smartlists
    • Add 'Recently Skipped' to user pages
    • Add Podcast Episodes to the browse pages and sidebar
    • Translate podcast episode state and some other missing ones
    • Allow using a smartplaylist in Democratic play
    • Allow podcast_episode table sort by time and state
    • Allow podcast table sort by website and episodes
    • Database 550004
      • Add system preference demo_use_search, Use smartlists for base playlist in Democratic play
      • Add tables catalog_filter_group and catalog_filter_group_map for catalog filtering by groups
      • Add column catalog_filter_group to user table to assign a filter group
      • Migrate catalog filter_user settings to the catalog_filter_group table
      • Assign all public catalogs to the DEFAULT group
      • Drop table user_catalog
      • Remove filter_user from the catalog table
    • Search
      • Added more missing groups to search type lists
      • Added missing song (was song_title) to album searches
      • Add podcast as a search type
        • Add rule title
        • Add rule podcast_episode (Search by podcast episode name)
        • Add rule time (Episode length in minutes)
        • Add rule state (Completed, Pending Skipped)
        • Add rule file
        • Add rule added
        • Add rule pubdate (Episode Publication Date)
      • Add podcast_episode as a search type
        • Add rule title
        • Add rule podcast (Search by podcast name)
        • Add rule time (Length in minutes)
        • Add rule state (Completed, Pending Skipped)
        • Add rule file
        • Add rule added
        • Add rule pubdate (Publication Date)
      • Add genre as a search type
        • Add rule title
    • CLI
      • Add verify for podcast catalogs (fix time and size from tags)

    Changed

    • Private catalogs have been migrated into Catalog filters
    • Interface cookies for the sidebar state have new names matching their page and group
    • Made getID function required for library_item's
    • Update codeql-analysis.yml to v2
    • When streaming a Democratic or Random item, redirect to the result
    • Hide 'is_true' boxes on search rows (you can't change it so why show it?)
    • Hide action buttons from random and demo webplayer lists

    Fixed

    • The cookies for the interface sidebar had multiple issues holding and restoring status
    • Removed A LOT of FILTER_SANITIZE_STRING from code for PHP8.1
    • Errors on empty values when loading the UI rows
    • Lots of docstring and code issues
    • Fixed up deleting plays (and now skips) on the user pages
    • Sorting playlist, user and smartlist names in search rows
    • SQL in get_tags when catalog_filter is disabled
    • A lot of browse filters were missing for certain object types
    • Don't try to load the playlist dialog from the webplayer when you can't add things
    • When using random/Democratic play send the additional parameters to the actual media
    • Respect play urls with transcode_to instead of format
    • Updated example docs/examples/inotifywait.sh
    • Podcast_episode browse may sent a camel case argument
    • Null max_upload_size could still be counted as a limit
    • Search
      • SQL might have connected AND and OR incorrectly
      • Metadata search might have badly parsed input
      • Added aliases for some of the confusing search types
    • SubSonic
      • Checking parameters might return the error AND the empty response

    API 5.5.0

    This will likely be the last 5.x API release. API6 will be a continuation of API5 and not be a significant change like the 4->5 transition.

    Added

    • Api::stream add new types playlist and search (Streams a random object from these lists)
    • Api::download add new types playlist and search
    • advanced_search
      • Add podcast as a search type
        • Add rule title
        • Add rule podcast_episode (Search by podcast episode name)
        • Add rule time (Episode length in minutes)
        • Add rule state (Completed, Pending Skipped)
        • Add rule file
        • Add rule added
        • Add rule pubdate (Episode Publication Date)
      • Add podcast_episode as a search type
        • Add rule title
        • Add rule podcast (Search by podcast name)
        • Add rule time (Length in minutes)
        • Add rule state (Completed, Pending Skipped)
        • Add rule file
        • Add rule added
        • Add rule pubdate (Publication Date)
      • Add genre as a search type
        • Add rule title

    Fixed

    • API4::get_indexes podcast_episode was encoding into the API5 object
    • API4::share_create was unable to share when using lowercase types
    • advanced_search
      • Added missing song (was song_title) to album searches
    Source code(tar.gz)
    Source code(zip)
    ampache-5.5.0_all.zip(59.59 MB)
    ampache-5.5.0_all_php7.4.zip(59.59 MB)
    ampache-5.5.0_all_php8.0.zip(55.17 MB)
    ampache-5.5.0_all_php8.1.zip(55.17 MB)
    ampache-5.5.0_all_squashed.zip(55.01 MB)
    ampache-5.5.0_all_squashed_php7.4.zip(55.01 MB)
    ampache-5.5.0_all_squashed_php8.0.zip(55.39 MB)
    ampache-5.5.0_all_squashed_php8.1.zip(55.39 MB)
  • 5.4.1(Jul 31, 2022)

    php7.4 2957b58de3be0646490ce4a077ae2cb6 ./ampache-5.4.1_all.zip 2957b58de3be0646490ce4a077ae2cb6 ./ampache-5.4.1_all_php7.4.zip dad7fcc82d3d441f9891c129ae379511 ./ampache-5.4.1_all_squashed.zip dad7fcc82d3d441f9891c129ae379511 ./ampache-5.4.1_all_squashed_php7.4.zip

    php8.0 aaab50c67538c8f82dd2674bfc059c8a ./ampache-5.4.1_all_php8.0.zip 49d0c50e4310aa71e5405e3ae55a7295 ./ampache-5.4.1_all_squashed_php8.0.zip

    php8.1 974f359f3bea34616716f94e501dad1c ./ampache-5.4.1_all_php8.1.zip 7e20671ba07ed948e7cf86c580b6b1b5 ./ampache-5.4.1_all_squashed_php8.1.zip

    Ampache 5.4.1-release

    This release is just a big little cleanup. After some time off for work not much has been needed but a lot has been fixed

    Added

    • Put next (n) and back (b) shortcuts in the web_player
    • Allow _ and % wildcards for hiding playlists (api_hidden_playlists)
    • Missing translations on CLI strings
    • Config version 62
      • Added webplayer_debug (was previously undocumented/hidden)
    • Search
      • Add track to song search
      • Add summary to artist search
    • CLI
      • New argument for cleanup:sortSongs -w|--windows Replace windows-incompatible strings with _
      • Add a table check function to admin:updateDatabase. This will repair missing tables/details

    Changed

    • Only enforce subsonic_always_download for song objects
    • Always insert podcast source urls. But mark them as skipped if out of date
    • When adding a podcast feed, sync everything
    • Don't trim search input (e.g. allow single spaces for search)

    Fixed

    • web_player being unable to play different formats in some cases
    • Playlist download button missing ID
    • Truncate long podcast episode author lengths
    • Incorrect link on the albums page
    • Section on the information sidebar looking for the wrong cookie
    • Bad verify mod time check
    • SongSorter would get caught with % in your strings
    • Rating Match plugin may overwrite album rating
    • Artist getRandom using the wrong sql column name
    • Pocast episode time regex

    API 5.4.1

    Added

    • Include lyrics in Song objects
    • advanced_search
      • Add file to album and artist search
      • Add track to song search
      • Add summary to artist search
    Source code(tar.gz)
    Source code(zip)
    ampache-5.4.1_all.zip(59.56 MB)
    ampache-5.4.1_all_php7.4.zip(59.56 MB)
    ampache-5.4.1_all_php8.0.zip(55.14 MB)
    ampache-5.4.1_all_php8.1.zip(55.14 MB)
    ampache-5.4.1_all_squashed.zip(54.98 MB)
    ampache-5.4.1_all_squashed_php7.4.zip(54.98 MB)
    ampache-5.4.1_all_squashed_php8.0.zip(55.36 MB)
    ampache-5.4.1_all_squashed_php8.1.zip(55.36 MB)
  • 5.4.0(May 19, 2022)

    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
    • 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)
    • Database 540002:
      • Index title with enabled on song table to speed up searching
      • Index album table columns; catalog, album_artist, original_year, release_type, release_status, mbid, mbid_group
      • Index object_type with date in object_count table

    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
    Source code(tar.gz)
    Source code(zip)
    ampache-5.4.0_all.zip(54.72 MB)
    ampache-5.4.0_all_php7.4.zip(54.72 MB)
    ampache-5.4.0_all_php8.0.zip(55.10 MB)
    ampache-5.4.0_all_php8.1.zip(55.10 MB)
    ampache-5.4.0_all_squashed.zip(54.94 MB)
    ampache-5.4.0_all_squashed_php7.4.zip(54.94 MB)
    ampache-5.4.0_all_squashed_php8.0.zip(55.33 MB)
    ampache-5.4.0_all_squashed_php8.1.zip(55.33 MB)
  • 5.3.3(May 9, 2022)

    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 and song_title to artist search
      • Add orphaned_album to song search

    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 and song_title to artist search
      • Add orphaned_album to song search

    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
    Source code(tar.gz)
    Source code(zip)
    ampache-5.3.3_all.zip(59.80 MB)
    ampache-5.3.3_all_php7.4.zip(59.80 MB)
    ampache-5.3.3_all_php8.0.zip(55.37 MB)
    ampache-5.3.3_all_php8.1.zip(55.37 MB)
    ampache-5.3.3_all_squashed.zip(55.22 MB)
    ampache-5.3.3_all_squashed_php7.4.zip(55.22 MB)
    ampache-5.3.3_all_squashed_php8.0.zip(55.59 MB)
    ampache-5.3.3_all_squashed_php8.1.zip(55.59 MB)
  • 5.3.2(Apr 29, 2022)

    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

    Source code(tar.gz)
    Source code(zip)
    ampache-5.3.2_all.zip(54.99 MB)
    ampache-5.3.2_all_php7.4.zip(54.99 MB)
    ampache-5.3.2_all_php8.0.zip(55.36 MB)
    ampache-5.3.2_all_php8.1.zip(55.36 MB)
    ampache-5.3.2_all_squashed.zip(55.22 MB)
    ampache-5.3.2_all_squashed_php7.4.zip(55.22 MB)
    ampache-5.3.2_all_squashed_php8.0.zip(55.59 MB)
    ampache-5.3.2_all_squashed_php8.1.zip(55.59 MB)
  • 5.3.1(Apr 22, 2022)

    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 the user 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

    Source code(tar.gz)
    Source code(zip)
    ampache-5.3.1_all.zip(54.99 MB)
    ampache-5.3.1_all_php7.4.zip(54.99 MB)
    ampache-5.3.1_all_php8.0.zip(55.36 MB)
    ampache-5.3.1_all_php8.1.zip(55.36 MB)
    ampache-5.3.1_all_squashed.zip(55.21 MB)
    ampache-5.3.1_all_squashed_php7.4.zip(55.21 MB)
    ampache-5.3.1_all_squashed_php8.0.zip(55.59 MB)
    ampache-5.3.1_all_squashed_php8.1.zip(55.59 MB)
  • 5.3.0(Apr 20, 2022)

    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 using album_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 and show_artist preferences to show/hide Sidebar Browse menu links
    • search:
      • Add songrating to album search (My Rating (Song))
      • Add songrating (My Rating (Song)) and albumrating (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 for artist searches
      • Add recent_added to album search

    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 and possible_duplicate_album

    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)) and albumrating (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 for artist searches
      • Add recent_added to album search
    Source code(tar.gz)
    Source code(zip)
    ampache-5.3.0_all.zip(54.97 MB)
    ampache-5.3.0_all_php7.4.zip(54.97 MB)
    ampache-5.3.0_all_php8.0.zip(55.34 MB)
    ampache-5.3.0_all_php8.1.zip(55.34 MB)
    ampache-5.3.0_all_squashed.zip(65.31 MB)
    ampache-5.3.0_all_squashed_php7.4.zip(65.31 MB)
    ampache-5.3.0_all_squashed_php8.0.zip(65.68 MB)
    ampache-5.3.0_all_squashed_php8.1.zip(65.68 MB)
  • 5.2.1(Feb 11, 2022)

    (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
    Source code(tar.gz)
    Source code(zip)
    ampache-5.2.1_all.zip(61.88 MB)
    ampache-5.2.1_all_php7.4.zip(61.88 MB)
    ampache-5.2.1_all_php8.0.zip(62.25 MB)
    ampache-5.2.1_all_squashed.zip(62.07 MB)
    ampache-5.2.1_all_squashed_php7.4.zip(62.07 MB)
    ampache-5.2.1_all_squashed_php8.0.zip(62.45 MB)
  • 5.2.0(Dec 16, 2021)

    (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
    • API4
      • playlists: add parameter show_dupes if true ignore 'api_hide_dupe_searches' setting
    • 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
    Source code(tar.gz)
    Source code(zip)
    ampache-5.2.0_all.zip(65.38 MB)
    ampache-5.2.0_all_php8.0.zip(65.75 MB)
    ampache-5.2.0_all_squashed.zip(65.50 MB)
    ampache-5.2.0_all_squashed_php8.0.zip(65.88 MB)
  • 5.1.1(Nov 12, 2021)

    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

    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
    Source code(tar.gz)
    Source code(zip)
    ampache-5.1.1_all.zip(65.05 MB)
    ampache-5.1.1_all_php8.0.zip(65.43 MB)
    ampache-5.1.1_all_squashed.zip(65.03 MB)
    ampache-5.1.1_all_squashed_php8.0.zip(65.38 MB)
  • 5.1.0(Oct 25, 2021)

    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
    • 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 &amp;'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)
    Source code(tar.gz)
    Source code(zip)
    ampache-5.1.0_all.zip(61.29 MB)
    ampache-5.1.0_all_php8.zip(61.66 MB)
    ampache-5.1.0_all_squashed.zip(61.73 MB)
    ampache-5.1.0_all_squashed_php8.zip(62.11 MB)
  • 5.0.0(Aug 31, 2021)

    (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!

    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"

    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 and total_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
    • 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 path
      • run:cacheProcess: Run the cache process
      • export: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
    Source code(tar.gz)
    Source code(zip)
    ampache-5.0.0_all.zip(62.15 MB)
    ampache-5.0.0_squashed.zip(67.10 MB)
  • 4.4.3(Jun 5, 2021)

    (MD5SUM b1e75770c089ffb409c8a684fc1e67af) ../ampache-4.4.3_all.zip

    Added

    • Catalog::update_counts to manage catalog changes
    • Gather more art files from your tags
    • Allow RatingMatch plugin to rate Album->Artist (Originally Song->Album->Artist)

    Changed

    • Calculate MP3 stream length on transcode to avoid cutting it off early

    Removed

    • Don't apply an album artist when it isn't distinct

    Fixed

    • CVE-2021-32644
    • Identifying a distinct album_artist query wasn't great
    • Don't return duplicate art while searching file tags
    • SQL query in random::advanced_sql was ambiguous
    • Filtering random and search page type element
    • NowPlaying stats would be overwritten when they didn't need to be
    • SubSonic:
      • getNowPlaying was unable to return playing media or the correct time
      • createShare would not set the object_id correctly and ignored expires value

    API 4.4.3

    NO CHANGE

    Source code(tar.gz)
    Source code(zip)
    ampache-4.4.3_all.zip(66.59 MB)
  • 4.4.2(May 4, 2021)

    (MD5SUM bdad33e68508a5f4a8b796d914ca71f6) ../ampache-4.4.2_all.zip

    Ampache 4.4.2-release

    Added

    • Larger artist images when you don't have a text summary available
    • Expanded artist, album and podcast thumbnails to reduce blank space
    • Update album tags first when you update artist tags

    Changed

    • Simplify flagging/rating multi-disk albums
    • SubSonic
      • just send getmusicfolders music folders
      • When calling createPlaylist, assume that the list needs to be empty first

    Fixed

    • Require a valid database hostname instead of assuming localhost
    • A valid transcode_cmd is required to transcode media
    • SubSonic
      • Clients might send you a file path of Artist art instead of the id
      • Strings don't need json conversion checks
      • Send the cover art id for playlists
      • Check for artist and podcast prefixes on art id's
      • Bugs when converting between SubSonic id and Ampache id
      • Assign roles based on preferences (fixes jukebox, podcast and share roles)
      • CreateUser could overwrite admin access level
      • UpdateUser didn't write the access level
      • don't return null Genre counts
      • fix getting artist indexes for large libraries
    • Don't get null playlist objects from the DB
    • Using 'Save Track Order' would not apply the offset
    • Vorbis/Ogg comments use 'organization' for publisher and 'track_number' for track
    • Automated Label creation when updating from tags
    • Grouped album downloads and rightbar actions
    • Preference::get_by_user was caching into a single value
    • A user who owned a playlist was unable to reorder (but could still save the order)
    • When creating shares, don't allow secret to be longer than database limit (20)
    • Album full name wasn't being used in some places
    • Tag::get_tag_objects was not grouping albums
    • Return integers for tag counts
    • rmccue/requests CVE: CVE-2021-29476
    • PHPMailer/PHPMailer CVE: CVE-2020-36326

    API 4.4.2

    Fixed

    • API::indexes Artist albums were being added incorrectly for XML
    • Send back the full album name in responses
    Source code(tar.gz)
    Source code(zip)
    ampache-4.4.2_all.zip(66.59 MB)
  • 4.4.1(Mar 26, 2021)

    (MD5SUM d116a2da7a54199dee3df05ccac1df79) ../ampache-4.4.1_all.zip

    Ampache 4.4.1-release

    Added

    • If you have an MBID in your artist, use that for last.fm queries

    Changed

    • Updated composer dependencies

    Removed

    • Delete 'concerts_limit_past' and 'concerts_limit_future' database settings.

    Fixed

    • Grid View shouldn't change the artist image
    • Catalog Update -u (gather last.fm info) wasn't getting an ID list correctly
    • Album::get_random_songs not returning id's
    • Bookmark::get_bookmarks typo for get_bookmark_ids
    • Sorting album browses by artist name could fail with mysql
    • SubSonic: getPlaylists should always send a user
    • Album browsing SQL didn't include Artist name in grouping
    • CVE-2021-21399: Unauthenticated SubSonic backend access in Ampache

    API 4.4.1

    Fixed

    • API::stats would not offset recent calls
    Source code(tar.gz)
    Source code(zip)
    ampache-4.4.1_all.zip(66.21 MB)
  • 4.4.0(Mar 3, 2021)

    ~~(MD5SUM 29d935b1199a6b951b726ca799628f37) ../ampache-4.4.0_all.zip~~ ~~(MD5SUM 623a730c6fbbdad6085a40c15edbedd3) ../ampache-4.4.0_all.zip~~ (MD5SUM 023c5c89508f631e2e70c3bd9107520b) ../ampache-4.4.0_all.zip

    Ampache 4.4.0-release

    Keep an eye on the incoming changes to develop at Ampache-Next-Changes

    Added

    • Write metadata to mp3, flac and ogg files. Requires metaflac and vorbiscomment installed on Linux.
    • Write images to mp3 and flac files. Also requires metaflac on linux.
    • File tags can be updated from catalog management page.
    • Configurable settings for "Gather Art".
    • Configurable art search limit.
    • User selectable artist and year filter for Spotify album searches
    • User selectable limit for art searches.
    • Generate rsstokens for each user allowing unique feed URLs
    • Allow setting custom database collation and charset without overwriting your changes
      • rsstoken: Identify users by token when generating RSS feeds
    • Run garbage collection after catalog_update.inc 'clean' or 'verify'
    • Add duration to the table headers when browsing playlists and smartlists
    • Add time and duration to albums, artists instead of calculating from songs each time
    • Allow setting a custom background on the login page
    • Musicbrainz search icon on Artist, Album and Song pages
    • Update missing album artists on catalog add
    • Add R128 Gain adjustments
    • Persist replaygain setting as a cookie
    • Support for image per song
    • Format XML output using DOMDocument
    • SubSonic - shift the current track start time when you pause/resume
    • Config version 49
    • NEW config options
      • hide_ampache_messages: We sometimes need to talk and will show a warning to admin users. Allow hiding this
    • NEW search options (also available in Api::advanced_search)
      • last_skip (artist, album, song)
      • last_play_or_skip (artist, album, song)
      • played_or_skipped_times (song)

    Changed

    • Stop logging auth/passphrase strings
    • Add Y scrolling to the current playlist box (rightbar)

    Fixed

    • Escape filepaths when removing from database
    • Regex in config for additional_genre_delimiters
    • Grid View option was backwards
    • Replaygain issues in the webplayer
    • Per disk actions for grouped albums (e.g. play just that disk)
    • Catalog removal needs to run garbage collection
    • Recognize opus when reading tags
    • Regex in config for additional_genre_delimiters
    • SQL query for smartlists not joining the OR correctly
    • Searching with bad rules will return no results instead of everything
    • Check the 'unique_playlist' option in more places
    • When you haven't set an active localplay nothing was picked
    • Set time for artists that are only albums
    • Don't hide rss generation when you haven't got a key
    • Podcast episode durations that use seconds were converting into crazy lengths
    • Playlist and Smartlist check sql simplified
    • SubSonic - Json clients need their playlist entry to always array (single item lists)

    API 4.4.0

    Added

    • NEW API functions
      • Api::users (ID and Username of the site users)
    • Api::localplay added new options to 'command' ('pause', 'add', 'volume_up', 'volume_down', 'volume_mute', 'delete_all', 'skip')
    • Api::localplay added parameters:
      • 'oid' (integer) object_id to add //optional
      • 'type' (string) Default: 'Song' ('Song', 'Video', 'Podcast_Episode', 'Channel', 'Broadcast', 'Democratic', 'Live_Stream') //optional
      • 'clear' (integer) 0|1 clear the current playlist on add //optional
    • Api::playlist_edit added new parameter 'sort': (0,1) sort the playlist by 'Artist, Album, Song' //optional
    • Api::get_indexes
      • New type options: 'album_artist', 'podcast', 'podcast_episode', 'share', 'video'
      • Added parameter 'include': (0,1) (add the extra songs details if a playlist or podcast_episodes if a podcast)
    • Api::rate - Added types 'playlist', 'podcast', 'podcast_episode', 'video', 'tvshow', 'tvshow_season'
    • Api::flag - Added types 'podcast', 'podcast_episode', 'video', 'tvshow', 'tvshow_season'
    • Add time to artist and album objects. (total time of all songs in seconds)
    • Add songcount, albumcount to artist objects. (time in seconds)
    • Add songcount to album objects. (time in seconds)
    • Add type (release_type) to album objects
    • Add disk to song objects
    • Add time to video objects. (time in seconds)
    • Add title, mime, catalog to podcast_episodes
    • Api::advanced_search Add 'playlist', 'user' and 'video' to search types
    • Api::handshake added extra total counts to the response
      • users, tags, podcasts, podcast_episodes, shares, licenses, live_streams, labels
    • Api::ping match the handshake response (excluding the auth token)

    Changed

    • get_indexes: 'playlist' now requires include=1 for xml calls if you want the tracks
    • Make filter optional in shares
    • Api::podcast_episodes
      • "url" is now a play url (instead of a link to the episode)
      • "public_url" is now the old episode link

    Fixed

    • Api::podcast_edit wasn't able to edit a podcast...
    • Api::democratic was using action from localplay in the return responses
    • get_indexes for XML didn't include podcast indexes
    • Set OUTDATED_DATABASE_OK on image.php, play/index.php and share.php to stop blocking requests
    • Don't limit sub items when using a limit (e.g return all podcast episodes when selecting a podcast)

    Deprecated

    • Dropped in API 5.0.0
      • Api::get_indexes; stop including playlist track and id in xml by default
      • Album objects: "tracks" will only include track details. Use "songcount"
      • Artist objects: "albums", "songs" will only include track details Use "albumcount" and "songcount"
    Source code(tar.gz)
    Source code(zip)
    ampache-4.4.0_all.zip(64.14 MB)
  • 5.0.0-pre-release(Jan 21, 2021)

    Develop is almost stable. You can just move on to develop now

    git checkout develop

    (MD5SUM 21f8dd3706de9943f11108443cc74e18) ../ampache-5.0.0-pre-release8_all.zip (MD5SUM 353f7ec41a4fdb5421faf8fdb129341c) ../ampache-5.0.0-pre-release7_all.zip (MD5SUM 027e09a4ebf2bf8796f2add41ca6ed67) ../ampache-5.0.0-pre-release6_all.zip (MD5SUM 18a924bc92e045a3880354cfc1b35685) ../ampache-5.0.0-pre-release5_all.zip (MD5SUM 8e42cfc0446683e400ff86da56686064) ../ampache-5.0.0-pre-release4_all.zip (MD5SUM b26441619ae635703e5e567c15b9b874) ./ampache-5.0.0-pre-release3_all.zip (MD5SUM bd860358e9d3d4518131583db13fe906) ./ampache-5.0.0-pre-release2_all.zip (MD5SUM ffcbc5923d1ffc908cf3bafe05c4bb3c) ./ampache-5.0.0-pre-release1_all.zip

    Preview 8 is the last preview. Work has moved to develop.

    Make a copy of your conf and put this in a new folder (or try the Docker Images) before upgrading your main Ampache

    This package requires php >=7.4

    Changes and documentation will go into the wiki now. https://github.com/ampache/ampache/wiki/Ampache-Next-Changes

    Source code(tar.gz)
    Source code(zip)
    ampache-5.0.0-pre-release1_all.zip(61.76 MB)
    ampache-5.0.0-pre-release2_all.zip(69.66 MB)
    ampache-5.0.0-pre-release3_all.zip(69.97 MB)
    ampache-5.0.0-pre-release4_all.zip(70.10 MB)
    ampache-5.0.0-pre-release5_all.zip(70.11 MB)
    ampache-5.0.0-pre-release6_all.zip(70.12 MB)
    ampache-5.0.0-pre-release7_all.zip(70.13 MB)
    ampache-5.0.0-pre-release8_all.zip(70.14 MB)
  • 4.3.0(Feb 5, 2021)

    (MD5SUM f219f4a7417617ed533c9f8c39e60a62) ../ampache-4.3.0_all.zip

    Ampache 4.3.0-release

    This version of Ampache seeks to bring in some of the great changes going on in develop while we work on v5. There also a few API changes to enable a bit better control for older clients.

    Added

    • Check limits on democratic playlists (> 0 && < 3000000000)
    • Show an error for out of range democratic cooldowns
    • SubSonic - Force a default format (xml) instead of none
    • Added back the agent string in recently played (for admins)
    • Replace 'Admin' icon with padlock in sidebar when access check fails. (Hide this new icon with 'simple_user_mode')
    • Disable API/Subsonic password resets in 'simple_user_mode'
    • New option -m 'move_catalog' added to catalog_update.inc
    • More default preferences to the refill/check functions
    • More functions to search (album artist, mbid)
    • Config version 46
    • NEW config options
      • hide_search: If true do not include searches/smartlists in playlist results for Api::get_indexes, Api::playlists
    • NEW plugin:
      • 'Personal Favorites'. Show a shortcut to a favorite smartlist or playlist on the homepage
      • 'RatingMatch'. Raise the minimum star rating (and song loves) of artists and albums when you rate/love the song

    Changed

    • Scrobble plugins fire after stat recording
    • Split art search by 5 instead of 4
    • Increase autoupdate check time and don't force it on each logon
    • Updated CSS and separated mashup covers from other types
    • Don't use mail_enabled for registration checks
    • WebUI - Browse by album_artist instead of single artists
    • Better sorting for playlists using sort_tracks
    • Don't allow duplicate podcast feeds
    • Updated the gather art process
    • Searches will order by file/name instead of id (unless random)
    • Updated amapche.sql
    • Updated composer requirements
    • Default false config option text changed to true (no more typing, just uncomment!)
    • Compressed PNG and JPG images

    Removed

    • Disabled the jPlayer fullscreen shortcut (ctrl + f)
    • Remove system preferences from the user that aren't classified as a system preference
    • Stop setting open_basedir from fs.ajax
    • Concert/Event pages (dead Last.fm API)
    • Don't run reset_db_charset on DB updates
    • Disabled browse_filter for new user accounts

    Fixed

    • Speed up the playlist dialog boxes (Add to playlist)
    • Fix SQL query for Stats::get_newest_sql
    • Session cookie creation
    • Multiple auth attempts in the same second would not return a session
    • Mail auth was not checked correctly
    • Gather art correctly for update_file.inc
    • set bitrate correctly if using a maxbitrate in play/index
    • MP3's would not get a waveform without editing the config
    • Recently played respects your privacy settings
    • Graph class sql grouping
    • MAJOR UPnP fixes
    • Upload catalog rename logic

    API 4.3.0

    Changed

    • Api::record_play
      • Make 'user' parameter optional
      • Allow 'user' to the be user_id or the username string
      • Add 'date' parameter (optional)
      • Require 100 (Admin) permission to record plays for other users
    • Api::get_indexes
      • Add 'hide_search' parameter (optional)
    • Api::playlists
      • Add 'hide_search' parameter (optional)
    Source code(tar.gz)
    Source code(zip)
    ampache-4.3.0_all.zip(59.84 MB)
  • 4.2.6(Jan 19, 2021)

    (MD5SUM ece4146583a03a97e99b099bb2154b5b) ../ampache-4.2.6_all.zip ~~(MD5SUM bd55e24b4a4c3e361e362bdd59a09f5a) ../ampache-4.2.6_all.zip~~ removed

    Ampache 4.2.6-release

    Another minor update to address some issues found since the last release.

    Changed

    • Ignore ALL tagged releases (e.g. 4.2.6-preview 4.2.6-beta)
    • Don't check the times in save_mediaplay plugins
    • Plugins should only have 1 category
    • Update Composer requirements

    Removed

    • Some system preferences were added as user preferences

    Fixed

    • Search original_year query
    • Replaygain was missing from the webplayer
    • Check albumartist in get_album_suite queries
    • Recently played queries check for privacy options
    • Headphones plugin fix for missing mbid's
    • Duplicate downloads recorded in play/index
    • Subsonic video HLS stream and json values
    • Block more password resets when using simple_user_mode

    API 4.2.6

    NO CHANGE

    Source code(tar.gz)
    Source code(zip)
    ampache-4.2.6_all.zip(59.81 MB)
  • 5.0.0-pre-release3(Jan 13, 2021)

  • 5.0.0-pre-release2(Dec 16, 2020)

  • 5.0.0-pre-release1(Dec 7, 2020)

  • 4.2.5(Dec 4, 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

    Source code(tar.gz)
    Source code(zip)
    ampache-4.2.5_all.zip(59.37 MB)
  • 4.2.4(Nov 3, 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

    Source code(tar.gz)
    Source code(zip)
    ampache-4.2.4_all.zip(59.39 MB)
PHPVibe Open source video CMS / Video Sharing CMS / Youtube Api v3 / Video Embeds

PHPVibe Video CMS Free Video Sharing CMS The modern choice of design inspired by Youtube and a social videos sharing module that may just cut it for y

MediaVibe 71 Dec 18, 2022
🐦 A personal music streaming server that works.

koel Intro Koel (also stylized as koel, with a lowercase k) is a simple web-based personal audio streaming service written in Vue on the client side a

Koel 14.3k Jan 4, 2023
WinterCMS plugin adding support for streaming html5 videos

Winter MediaStream Intro This plugin adds streaming support for html5 videos. Installation composer install jaxwilko/wn-mediastream-plugin Usage Once

Jack Wilkinson 4 Dec 20, 2022
wallabag is a self-hostable PHP application allowing you to not miss any content anymore

What is wallabag? wallabag is a self-hostable PHP application allowing you to not miss any content anymore. Click, save and read it when you can. It e

wallabag 7.7k Jan 4, 2023
A module allowing you to write your Processwire template using MJML and get a converted HTML output using MJML API.

PageMjmlToHtml A module allowing you to write your Processwire template using MJML and get a converted HTML output using MJML API. This is considered

Romain Cazier 7 Oct 5, 2022
A simple video station based on PHP and MySQL.

Simple-PHP-Video-Station 一个简单的、基于 PHP 和 MySQL 的视频点播站。 A simple video station based on PHP and MySQL. 特点 仅 655K 主体文件和 3 张数据表 前后端分离 支持 pjax 无刷适配 使用 DPla

HIMlaoS_Misa 9 Dec 27, 2022
website for sharing media and videos like youtube

CodeXLine-Media Application Laravel media application you can use that as startup to your next app if you will work with videos and media processing ?

Mahmoud shahin 6 Jun 19, 2022
sGallery Plugin for attaching Images and Video clips (YouTube) to a resource in the Evolution CMS admin panel.

sGallery for Evolution CMS 3 sGallery Plugin for attaching Images and Video clips (YouTube) to a resource in the Evolution CMS admin panel. Features U

Serhii Korneliuk 6 Dec 21, 2022
Manage your photos with Piwigo, a full featured open source photo gallery application for the web. Star us on Github! More than 200 plugins and themes available. Join us and contribute!

Manage your photo library. Piwigo is open source photo gallery software for the web. Designed for organisations, teams and individuals. The piwigo.org

Piwigo 2.3k Jan 1, 2023
Twill GraphQL provides easy access to query-specific fields from Twill CMS modules and user-defined modules with GraphQL

Twill CMS GraphQL ?? WIP - not stable Twill GraphQL provides easy access to query-specific fields from Twill CMS modules and user-defined modules with

Izet Mulalic 8 Dec 6, 2022
Herbie is a simple Flat-File CMS- und Blogsystem based on human readable text files

Herbie is a simple Flat-File CMS- und Blogsystem based on human readable text files

HERBIE 63 Nov 13, 2022
Decoupled CMS for any Laravel app, gain control of: pages, blogs, galleries, events, images, custom modules and more.

Grafite CMS Grafite has archived this project and no longer supports or develops this code. We recommend using only as a source of ideas for your own

Grafite Inc 494 Nov 25, 2022
Kirby: the CMS that adapts to any project, loved by developers and editors alike.

Kirby: the CMS that adapts to any project, loved by developers and editors alike. The Starterkit is a full-blown Kirby installation with a lot of exam

Kirby 151 Dec 23, 2022
BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the project website for more information.

BaiCloud-cms About BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the

null 5 Aug 15, 2022
Security, performance, marketing, and design tools — Jetpack is made by WordPress experts to make WP sites safer and faster, and help you grow your traffic.

Jetpack Monorepo This is the Jetpack Monorepo. It contains source code for the Jetpack plugin, the Jetpack composer packages, and other things. How to

Automattic 1.4k Jan 7, 2023
Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project.

Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project. Only add few database tables with prefixes, not affect your existing database tables. Support Laravel 7.x & Laravel 6.x & Laravel 5.x & MySql & PostgreSql - Amila Laravel CMS

Alex Zeng 96 Sep 6, 2022
Laravel Craftsman CLI for easily crafting Laravel assets for any project (artisan make on steroids)

Laravel Craftsman Description Laravel Craftsman (written using the awesome Laravel-Zero CLI builder) provides a suite of crafting assets using a proje

Mike Erickson 228 Dec 26, 2022
True Multisite, Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

True Multisite, Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

null 4 Oct 28, 2022
This is a web application for money transfer.

BANKING WEB APPLICATION This repository consists of a basic banking system built using PHP. This task was successfully completed for the SPARKS FOUNDA

Vaishnavi V V 3 Jul 21, 2021