Ampache

Last updated
Ampache
Original author(s) Karl Vollmer
Initial releaseApr 29, 2001
Stable release
5.6.1 / May 17, 2023
Preview release
6.0.0-preview1
Repository github.com/ampache/ampache/
Written in PHP
Operating system [OS Independent]
Platform Web platform
Type streaming media / file manager
License AGPLv3
Website ampache.org

Ampache is a free software web-based audio file manager and media server. The name is a blend of the words "amplifier" and "Apache". It was originally written to take advantage of Apache's mod_mp3 module 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]

Contents

History

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 100 different contributors. [3]

Development goals

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 APIs

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:

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

Ampache and education

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. [4]

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. [5]

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. [6]

Publications

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 history

VersionRelease dateImportant changes
1.01April 29, 2001First public release
1.07May 4, 2001Improved interface
1.10May 8, 2001First PHP only version of Ampache
1.20July 22, 2001ID3v1.1 support added along with Genre support
2.0February 5, 2002Many feature enhancements per-user statistics added, restarting Apache no longer necessary when new songs are added
3.0April 5, 2002Randall Ehren joined development team, XML-RPC functionality added, allowing multiple Ampache instances to be linked, mod_mp3 no longer used
3.1December 23, 2003Complete re-write of Ampache code by Karl Vollmer and Robert Hopson, modifications to individual Apache config no longer necessary for Ampache to run
3.2August 11, 2004Downsampling, RSS Feeds and Now Playing added, along with numerous improvements to album art and meta-data gathering
3.3May 17, 2005Added GetText support, batch downloading, user registration and WMA/M4A/FLAC support, first version with native PHP installer
3.3.1June 21, 2005First themable version of Ampache, abandoned non-standard installation method (/docs), implemented URL method for MPD plug-in
3.3.2October 1, 2006Optional 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.3January 26, 2007AJAX actions introduced in various places, democratic play, integrated Last-FM player, integrated Flash player and added HttpQ support
3.4May 10, 2008Complete re-write in PHP5, AJAX'd interface, active playlist, XML API, dynamic playlists added, vastly-improved browsing system introduced
3.5May 5, 2009Added support for Web 2.0 Style object tagging, video streaming, IPv6, additional dynamic playlist options and improved mobile device support [7]
3.5.1June 24, 2009Corrected issues with API and ‘tags’, as well as certain endless loops in audio tag reading code
3.5.2November 19, 2009Fixed multiple bugs in API, plus tag reading issues, added album "Unknown (Broken)" for any files malformed or damaged by Ampache
3.5.3December 20, 2009Security release—highly recommended upgrade
3.5.4February 2, 2010Fixed 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-alpha6May 30, 2013Completed tagging support, improved dynamic playlists
3.7.0May 26, 2014New theme, Subsonic API, Plex API, favorites and wanted features, iframed player (jPlayer), plus many user experience improvements
3.8.0June 12, 2015Ajax page loading, UPnP, DAAP, WebDAV
3.8.1December 8, 2015AGPL re-licensing, Composer dependency management
3.8.2February 4, 2016Added Podcast support, video playlists
3.8.3June 22, 2017Sort by disc number, edit song comments, LDAP class rewrite
3.8.4December 17, 2017Added seafile catalog module, added IPv6 addresses to user history,
3.8.5January 23, 2018Subsonic API improvements, playlist fixes
3.8.6March 1, 2018Subsonic remote catalog module version 2, download release packages from update alert
3.8.7May 16, 2018Added .ogv encoding for more efficient streaming of MKV files
3.8.8Jun 18, 2018Subsonic API improvements, guest accounts can stream songs and playlists
3.8.9September 10, 2018Bug fixes, artist info displays properly
3.9.0October 21, 2018Bug fixes and minor improvements
4.0.0November 24, 2019* GitHub 4.0.0 Changelog
4.1.0January 8, 2020* GitHub 4.1.0 Changelog
4.2.0August 6, 2020* GitHub 4.2.0 Changelog
4.3.0February 5, 2021* GitHub 4.3.0 Changelog
4.4.0March 3, 2021* GitHub 4.4.0 Changelog
4.4.3June 5, 2021This is the last stable 4.x.x release before Ampache 5.
5.0.0September 1, 2021* GitHub 5.0.0 Changelog
5.1.0October 25, 2021* GitHub 5.1.0 Changelog
5.2.0December 16, 2021* GitHub 5.2.0 Changelog
5.3.0April 20, 2022* GitHub 5.3.0 Changelog
5.4.0May 19, 2022* GitHub 5.4.0 Changelog
5.5.0August 23, 2022* GitHub 5.5.0 Changelog
5.6.0March 28, 2023* GitHub 5.6.0 Changelog
6.0.0August 28, 2023* GitHub 6.0.0 Changelog

Related Research Articles

<span class="mw-page-title-main">WebObjects</span> Java web application server and framework originally developed by NeXT Software

WebObjects was a Java web application server and a server-based web application framework originally developed by NeXT Software, Inc.

In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content. Group communication systems provide similar kinds of functionality.

Apache Cocoon, usually abbreviated as Cocoon, is a web application framework built around the concepts of Pipeline, separation of concerns, and component-based web development. The framework focuses on XML and XSLT publishing and is built using the Java programming language. Cocoon's use of XML is intended to improve compatibility of publishing formats, such as HTML and PDF. The content management systems Apache Lenya and Daisy have been created on top of the framework. Cocoon is also commonly used as a data warehousing ETL tool or as middleware for transporting data between systems.

REST is a software architectural style that was created to guide the design and development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of an Internet-scale distributed hypermedia system, such as the Web, should behave. The REST architectural style emphasises the scalability of interactions between components, uniform interfaces, independent deployment of components, and the creation of a layered architecture to facilitate caching of components to reduce user-perceived latency, enforce security, and encapsulate legacy systems.

The Web Services Invocation Framework (WSIF) supports a simple and flexible Java API for invoking any Web Services Description Language (WSDL)-described service.

Push technology or server push is a style of Internet-based communication where the request for a given transaction is initiated by the publisher or central server. It is contrasted with pull, or get, where the request for the transmission of information is initiated by the receiver or client.

<span class="mw-page-title-main">Web API</span> HTTP-based application programming interface used in web development

A web API is an application programming interface (API) for either a web server or a web browser. As a web development concept, it can be related to a web application's client side. A server-side web API consists of one or more publicly exposed endpoints to a defined request–response message system, typically expressed in JSON or XML by means of an HTTP-based web server. A server API (SAPI) is not considered a server-side web API, unless it is publicly accessible by a remote web application.

<span class="mw-page-title-main">Log4j</span> Java-based logging software

Apache Log4j is a Java-based logging utility originally written by Ceki Gülcü. It is part of the Apache Logging Services, a project of the Apache Software Foundation. Log4j is one of several Java logging frameworks.

<span class="mw-page-title-main">Apache Axis2</span> Web service engine

Apache Axis2 is a web service engine. It is a redesign and re-write of the widely used Apache Axis SOAP stack. Implementations of Axis2 are available in Java and C.

Microsoft SQL Server is a proprietary relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network. Microsoft markets at least a dozen different editions of Microsoft SQL Server, aimed at different audiences and for workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users.

<span class="mw-page-title-main">OpenSocial</span> Public specification aimed at social networking applications

OpenSocial is a public specification that defines a component hosting environment (container) and a set of common application programming interfaces (APIs) for web applications. Initially, it was designed for social network applications. It was developed by Google along with MySpace and several other social networks. Recently, it has been adopted as a general use runtime environment for allowing untrusted and partially trusted components from third parties to run in an existing web application. The OpenSocial Foundation moved to integrate or support numerous other Open Web technologies. This includes OAuth and OAuth 2.0, Activity Streams, and Portable Contacts, among others.

<span class="mw-page-title-main">Google Wave</span> Software framework for real-time collaborative editing online

Google Wave, later known as Apache Wave, is a discontinued software framework for real-time collaborative editing online. Originally developed by Google and announced on May 28, 2009, it was renamed to Apache Wave when the project was adopted by the Apache Software Foundation as an incubator project in 2010.

Distributed Access Control System (DACS) is a light-weight single sign-on and attribute-based access control system for web servers and server-based software. DACS is primarily used with Apache web servers to provide enhanced access control for web pages, CGI programs and servlets, and other web-based assets, and to federate Apache servers.

In computing, Open Data Protocol (OData) is an open protocol that allows the creation and consumption of queryable and interoperable REST APIs in a standard way. Microsoft initiated OData in 2007. Versions 1.0, 2.0, and 3.0 are released under the Microsoft Open Specification Promise. Version 4.0 was standardized at OASIS, with a release in March 2014. In April 2015 OASIS submitted OData v4 and OData JSON Format v4 to ISO/IEC JTC 1 for approval as an international standard. In December 2016, ISO/IEC published OData 4.0 Core as ISO/IEC 20802-1:2016 and the OData JSON Format as ISO/IEC 20802-2:2016.

<span class="mw-page-title-main">API</span> Software interface between computer programs

An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build or use such a connection or interface is called an API specification. A computer system that meets this standard is said to implement or expose an API. The term API may refer either to the specification or to the implementation.

Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources on a web page to be accessed from another domain outside the domain from which the first resource was served.

The following outline is provided as an overview of and topical guide to the Perl programming language:

Apache Attic is a project of Apache Software Foundation to provide processes to make it clear when an Apache project has reached its end-of-life. The Attic project was created in November 2008. Also the retired projects can be retained.

References

  1. "Streaming the Ampache Way - PHPSO Magazine Article". Archived from the original on 2007-10-17.
  2. "New Logo". Archived from the original on 2009-02-22.
  3. "ampache/ampache". GitHub.
  4. "Chelsea School Uses Ubuntu to Create VMampache".
  5. "GNU High School: Teaching Kids by Contributing to Open Source".
  6. "Open Sound Series: Part 3 - Ampache".
  7. "3.4 Stable Release". Archived from the original on 2009-02-22.