Ampache

Ampache is a free software web-based audio file manager and media server. The name is a play on the two words "Amplifier" and "Apache". It was originally written to take advantage of Apache's Mod_mp3 but has since been adapted to use its own streaming method.[1] Ampache's Mascot is a squirrel called Fraz, originally drawn by Kirsten Petersen, later digitized by Ben Shields, and redesigned by Agnès Champavier in 2008.[2]

Ampache
Ampache Logo
For the Love of Music
Original author(s)Karl Vollmer
Initial releaseApr 29, 2001
Stable release
4.2.3 / Oct 6, 2020
Preview release
develop
Repositorygithub.com/ampache/ampache/
Written inPHP
Operating system[OS Independent]
Typestreaming media / file manager
LicenseAGPLv3
Websiteampache.org

HistoryEdit

Ampache was released in 2001. Its original author, Scott Kveton went on to create the OSUOSL at Oregon State University and passed the developmental lead to Karl Vollmer who was responsible for it from early 2003 to early 2011. Since then, lead development of Ampache has changed hands several times. To date, Ampache has support from over 80 different contributors.[citation needed]

Development goalsEdit

Ampache's goal is to allow access to one's music from anywhere in the world. It is written specifically for private and small group implementations, but does allow an admin to enable public registration. Ampache's primary objective is to maintain a simple, secure and fast web front end that will run on almost any hardware and any platform that supports PHP. It is also written to accommodate large music collections.

Extensions and APIsEdit

Ampache also provides an application programming interface (API) for extracting meta data in the form of XML documents. Ampache data can be accessed via the many methods supported in the API, originally created for use with Amarok2, but which can also be used to create other front-ends to Ampache. Access to the API is controlled by internal Access Control Lists; for performance reasons, all requests currently have a 5000 result limit. The following applications are known to have plug-ins that use Ampache's XML API:

  • Amarok (2.x)
  • Coherence (UPNP A/V MediaServer)
  • Rhythmbox Plugin
  • Terratec Noxon iRadio
  • Ampache Mobile (WebOS Client)
  • AmpachPre (WebOS Client)
  • AmpacheX (iPod Touch/iPhone Application)
  • iAmpache (iPod Touch/iPhone application)
  • Ampacheberry (Ampache client for the BlackBerry)
  • Ampache HTML5 Player (Google Chrome App)

Since version 3.7.0, Ampache is compatible with Subsonic clients and Plex clients.

Ampache and educationEdit

Ampache's features make it a powerful instructional and assistive technology for students with language-based learning differences. At the Chelsea School, a group of advanced technology students recognized Ampache's potential for providing important accommodations and modifications that serve their learning styles; they built and configured an Ampache server that was put to work to enhance teaching and learning in the classroom.[3]

By adding audio recordings of instructional-level texts and assignments to an Ampache catalog, the instructor empowers students to individually and independently listen to a streaming text while reading a print version of the material; used in that way, Ampache allows students to avail themselves of curriculum material and instruction-level texts they may not otherwise have access to. Ampache thus serves as a compromise between three common accommodations: text-to-speech software, a human reader, and audiobooks.[4]

Ampache's video-streaming features have also been used to enhance teaching and learning at the Chelsea School. Rather than having students watch instructional videos as a group, the assigned material was streamed to their individual workstations. Independent viewing reduces distractions, and allows students to progress at their own pace, pausing to take notes or repeating segments for clarification.[5]

PublicationsEdit

Ampache has been featured in numerous online blogs and technical articles. The O'Reilly book Spidering Hacks details security testing of online applications. Ampache was found to be immune to standard spidering hacks, and by focusing on security during its development, has continued to be. The code philosophy listed on Ampache's wiki specifies security as one of the most important considerations during application development.

Version historyEdit

Version Release date Important changes
1.01 April 29, 2001 First public release
1.07 May 4, 2001 Improved interface
1.10 May 8, 2001 First PHP only version of Ampache
1.20 July 22, 2001 ID3v1.1 support added along with Genre support
2.0 February 5, 2002 Many feature enhancements per-user statistics added, restarting Apache no longer necessary when new songs are added
3.0 April 5, 2002 Randall Ehren joined development team, XML-RPC functionality added, allowing multiple Ampache instances to be linked, mod_mp3 no longer used
3.1 December 23, 2003 Complete re-write of Ampache code by Karl Vollmer and Robert Hopson, modifications to individual Apache config no longer necessary for Ampache to run
3.2 August 11, 2004 Downsampling, RSS Feeds and Now Playing added, along with numerous improvements to album art and meta-data gathering
3.3 May 17, 2005 Added GetText support, batch downloading, user registration and WMA/M4A/FLAC support, first version with native PHP installer
3.3.1 June 21, 2005 First themable version of Ampache, abandoned non-standard installation method (/docs), implemented URL method for MPD plug-in
3.3.2 October 1, 2006 Optional bandwidth-based bit rates for downsampling, Keyword Quick search on all pages, adopted new authentication system (Vauth) and new IP based ACL system
3.3.3 January 26, 2007 AJAX actions introduced in various places, democratic play, integrated Last-FM player, integrated Flash player and added HttpQ support
3.4 May 10, 2008 Complete re-write in PHP5, AJAX'd interface, active playlist, XML API, dynamic playlists added, vastly-improved browsing system introduced
3.5 May 5, 2009 Added support for Web 2.0 Style object tagging, video streaming, IPv6, additional dynamic playlist options and improved mobile device support[6]
3.5.1 June 24, 2009 Corrected issues with API and ‘tags’, as well as certain endless loops in audio tag reading code
3.5.2 November 19, 2009 Fixed multiple bugs in API, plus tag reading issues, added album "Unknown (Broken)" for any files malformed or damaged by Ampache
3.5.3 December 20, 2009 Security release—highly recommended upgrade
3.5.4 February 2, 2010 Fixed bugs introduced in last release, plus significant improvements and fixes for localplay methods, also corrected size calculation for up to 4TB catalogs, new installations will include additional two default ACLs for API use
3.6-alpha6 May 30, 2013 Completed tagging support, improved dynamic playlists
3.7.0 May 26, 2014 New theme, Subsonic API, Plex API, favorites and wanted features, iframed player (jPlayer), plus many user experience improvements
3.8.0 June 12, 2015 Ajax page loading, UPnP, DAAP, WebDAV
3.8.1 December 8, 2015 AGPL re-licensing, Composer dependency management
3.8.2 February 4, 2016 Added Podcast support, video playlists
3.8.3 June 22, 2017 Sort by disc number, edit song comments, LDAP class rewrite
3.8.4 December 17, 2017 Added seafile catalog module, added IPv6 addresses to user history,
3.8.5 January 23, 2018 Subsonic API improvements, playlist fixes
3.8.6 March 1, 2018 Subsonic remote catalog module version 2, download release packages from update alert
3.8.7 May 16, 2018 Added .ogv encoding for more efficient streaming of MKV files
3.8.8 Jun 18, 2018 Subsonic API improvements, guest accounts can stream songs and playlists
3.8.9 September 10, 2018 Bug fixes, artist info displays properly
3.9.0 October 21, 2018 Bug fixes and minor improvements
4.0.0 November 24, 2019
  • Drop PHP 5.6 support for 7.1+
  • Resolve CVE-2019-12385 for the SQL Injection
  • Resolve CVE-2019-12386 for the persistent XSS
  • Resolve NS-18-046 Multiple Reflected Cross-site Scripting Vulnerabilities in Ampache 3.9.0
  • Default to disk 1 instead of 0 (db updates to handle existing albums)
  • Fix - MySQL8 installation using mysql_native_password with caveats [https://github.com/ampache/ampache/wiki/mysql-faq]
  • If you are using charts/graphs there has been a change regarding c-pchart chart-faq
  • New Plugin - Matomo.plugin. [https://matomo.org/]
  • New Plugin - ListenBrainz.plugin [https://listenbrainz.org/]
  • Default to mashup view for artists and albums
  • Documented the Ampache API [https://github.com/ampache/ampache/wiki/XML-methods]
  • API Authentication: Require a handshake and generate unique sessions at all times
  • API Authentication: allow sha256 encrypted apikey for auth
    • You must send an encrypted api key in the following fashion. (Hash key joined with username)
    • $passphrase = hash('sha256', $username . hash('sha256', $apikey));
  • Update Subsonic api to 1.13.0 [http://www.subsonic.org/pages/api.jsp]
  • Allow token auth using API Key instead of password.
4.0.1 November 25, 2019 Bug fixes and minor improvements
4.0.2 November 26, 2019 Bug fixes and minor improvements
4.0.3 November 28, 2019 Bug fixes relating to the API and Playlists
4.0.4 December 2, 2019
  • Finalize release procedure to make updates smoother
  • Reduce the time for repeated track playback (Song length - 5 sec)
  • Filter playlists in API, Web and Subsonic correctly for regular users vs admins
  • Fix album count for Artists when the album is missing data
  • Fix searches/searchbox for MYSQL8
  • Fix some invalid returns in lib/*
  • Send correct the function in ajax.server when deleting from playlist
  • Hide some lines from the mashup to make it a bit nicer
  • Remove the old logo from the main install page
4.1.0 January 8, 2020 Minor release that contains a new API build as well as some bug fixes caught along the way.
4.2.0 August 6, 2020 This was a large quality and bug fix release where the biggest change is the official release of a JSON API.
4.2.1 August 14, 2020 Bug fixes from development over the recent release.
4.2.2 September 2, 2020 Bug fixes from development over the recent release.
4.2.3 August 14, 2020 Bug fixes from development over the recent release.

ReferencesEdit

External linksEdit