Giter VIP home page Giter VIP logo

airsonic's Introduction

Airsonic

Build Status Coverity scan Language grade: JavaScript Language grade: Java codecov.io coverage

What is Airsonic?

Airsonic is a free, web-based media streamer, providing ubiquitous access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room.

Airsonic is designed to handle very large music collections (hundreds of gigabytes). Although optimized for MP3 streaming, it works for any audio or video format that can stream over HTTP, for instance AAC and OGG. By using transcoder plug-ins, Airsonic supports on-the-fly conversion and streaming of virtually any audio format, including WMA, FLAC, APE, Musepack, WavPack and Shorten.

If you have constrained bandwidth, you may set an upper limit for the bitrate of the music streams. Airsonic will then automatically resample the music to a suitable bitrate.

In addition to being a streaming media server, Airsonic works very well as a local jukebox. The intuitive web interface, as well as search and index facilities, are optimized for efficient browsing through large media libraries. Airsonic also comes with an integrated Podcast receiver, with many of the same features as you find in iTunes.

Based on Java technology, Airsonic runs on most platforms, including Windows, Mac, Linux and Unix variants.

Screenshot

History

The original Subsonic is developed by Sindre Mehus. Subsonic was open source through version 6.0-beta1, and closed-source from then onwards.

Libresonic was created and maintained by Eugene E. Kashpureff Jr. It originated as an unofficial("Kang") of Subsonic which did not contain the Licensing code checks present in the official builds. With the announcement of Subsonic's closed-source future, a decision was made to make a full fork and rebrand to Libresonic.

Around July 2017, it was discovered that Eugene had different intentions/goals for the project than some contributors had. Although the developers were hesitant to create a fork as it would fracture/confuse the community even further, it was deemed necessary in order to preserve a community-focused fork. To reiterate this more clearly:

Airsonic's goal is to provide a full-featured, stable, self-hosted media server based on the Subsonic codebase that is free, open source, and community driven.

Pull Requests are always welcome. Keep in mind that we strive to balance stability with new features. As such, all Pull Requests are reviewed before being merged to ensure we continue to meet our goals.

License

Airsonic is free software and licensed under the GNU General Public License version 3. The code in this repository (and associated binaries) are free of any "license key" or other restrictions. If you wish to thank the maintainer of this repository, please consider a donation to the Electronic Frontier Foundation.

The Subsonic source code was released under the GPLv3 through version 6.0-beta1. Beginning with 6.0-beta2, source is no longer provided. Binaries of Subsonic are only available under a commercial license. There is a Subsonic Premium service which adds functionality not available in Airsonic. Subsonic also offers RPM, Deb, Exe, and other pre-built packages that Airsonic currently does not.

The cover zooming feature is provided by jquery.fancyzoom, released under MIT License.

The icons are from the amazing feather project, and are licensed under MIT license.

Usage

Airsonic can be downloaded from GitHub.

Please use the Airsonic documentation for instructions on running Airsonic.

Community

We have several places outside of github for community discussion, questions, etc:

Note that the Matrix room and IRC channel are bridged together.

airsonic's People

Contributors

akpdw avatar alexfornuto avatar bajansen avatar bfkelsey avatar chetan avatar comradekingu avatar csobsidian avatar davis-a avatar dependabot-preview[bot] avatar eharris avatar eugenekay avatar eusmilis avatar fxthomas avatar g-regl avatar harawata avatar heyarne avatar ibmibmibm avatar jooola avatar jvoisin avatar muff1nman avatar nvllsvm avatar plastikman avatar prschopf avatar randomnicode avatar sindremehus avatar tari avatar tesshucom avatar weblate avatar yetangitu avatar zifnab06 avatar

Watchers

 avatar

airsonic's Issues

Locale is not reflected

Problem description

Request may or may not pass through LocaleResolver.
As a result, the setting of Locale intended by User may not be reflected.

Steps to reproduce

For example, Biography of LastFM.

Rest access to LastFM refers only to the language setting of "Personal".
Therefore, depending on the setting of "General", even users who are displaying other than English, there is an operation case "Display only in LastFM in English".

This can be avoided by explicitly specifying the locale by "Personal".

Additional notes

Incorporated in Jpsonic.

Japanese people are not good at other than Japanese language and have a strong rejection reaction (· _ ·,)
In order to make Japanese understand good software, support of a native language becomes essential.

Running with jetty container

I recognize that this correspondence is for developers.

There is almost no difference between tomcat and jetty in normal use.
For example, jetty operates faster in processing overcrowded requests that programmably recursively expand directory.

Since several problems occurred in a complex manner, we will make corrections for each point.

There are three perspectives, which need to be resolved in order.

  1. Resolving dependencies that are barriers
  2. StreamController initialization other than Tomcat
  3. Avoid Spring overlapping load

CVE hotfix

Airsonic is taking countermeasures against CVE.
However, there is a blank period during which automated compilation on travis can not be performed during the period from problem occurrence to correspondence.
Temporary response to avoid this.

The history in travis is the following URL.
https://travis-ci.org/tesshucom/airsonic/branches

Since Airsonic will take appropriate measures, the fixes made here will eventually disappear.

Update Lucene to use Japanese

Problem description

Because lucene version is old, Japanese can not be used.

Strictly speaking, effective Japanese morpheme analysis can not be performed because Japanese libraries necessary for additional processing can not be used.

I can not sort using Japanese reading.
Also, since ngram is effectively a 1-gram, mis-retrieval becomes very numerous.

System information

Airsonic : 10.2.0-SNAPSHOT
lucene-core : 3.0.3

Additional notes

I recognize that Lucene's update is mainly a sensitive issue in terms of performance.

Since Japanese morpheme analysis is special, development is slower than multilingual.
Specifically, Japanese processing library requires at least Lucene 4.x or later (· _ ·,)
It is better if it is new.

Jpsonic has already built in lucene 7.4 and has a track record.
It will be upgraded to lucene 7.6 soon.
(It does not measure large-scale performance, but it is practically used)

Extract lucene updates and autovacuum update difference (excluding Japanese processing) and create branch.
(In the case of pure performance measurement of lucene, since a phase that eliminates processing related to Japanese is necessary)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.