Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/BinaryBrain/Beetstream
Beets.io plugin that expose SubSonic API endpoints, allowing you to stream your music everywhere.
https://github.com/BinaryBrain/Beetstream
airsonic beets beets-plugin hacktoberfest music subsonic subsonic-server
Last synced: 9 days ago
JSON representation
Beets.io plugin that expose SubSonic API endpoints, allowing you to stream your music everywhere.
- Host: GitHub
- URL: https://github.com/BinaryBrain/Beetstream
- Owner: BinaryBrain
- License: mit
- Created: 2020-12-24T16:39:58.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-07T14:45:17.000Z (7 months ago)
- Last Synced: 2024-11-25T16:23:56.090Z (18 days ago)
- Topics: airsonic, beets, beets-plugin, hacktoberfest, music, subsonic, subsonic-server
- Language: Python
- Homepage:
- Size: 198 KB
- Stars: 36
- Watchers: 4
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - BinaryBrain/Beetstream - Beets.io plugin that expose SubSonic API endpoints, allowing you to stream your music everywhere. (Python)
README
# Beetstream
Beetstream is a [Beets.io](https://beets.io) plugin that exposes [SubSonic API endpoints](http://www.subsonic.org/pages/api.jsp), allowing you to stream your music everywhere.
## Motivation
I personally use Beets to manage my music library on a Raspberry Pi but when I was looking for a way to stream it to my phone I couldn't find any comfortable, suitable and free options.
I tried [AirSonic](https://airsonic.github.io) and [SubSonic](http://www.subsonic.org), [Plex](https://www.plex.tv) and some other tools but a lot of these solutions want to manage the library as they need (but I prefer Beets) and AirSonic/SubSonic were quite slow and CPU intensive and seemed to have a lot of overhead just to browse albums and send music files. Thus said, SubSonic APIs are good and implemented by a lot of different [clients](#supported-clients), so I decided to re-implement the server side but based on Beets database (and some piece of code).## Install & Run
Requires Python 3.8 or newer.
1) First of all, you need to [install Beets](https://beets.readthedocs.io/en/stable/guides/main.html):
2) Install the dependancies with:
```
$ pip install beetstream
```3) Enable the plugin for Beets in your config file `~/.config/beets/config.yaml`:
```yaml
plugins: beetstream
```4) **Optional** You can change the host and port in your config file `~/.config/beets/config.yaml`.
You can also chose to never re-encode files even if the clients asks for it with the option `never_transcode: True`. This can be useful if you have a weak CPU or a lot of clients.Here are the default values:
```yaml
beetstream:
host: 0.0.0.0
port: 8080
never_transcode: False
```5) Run with:
```
$ beet beetstream
```## Clients Configuration
### Authentication
There is currently no security whatsoever. You can put whatever user and password you want in your favorite app.
### Server and Port
Currently runs on port `8080`. i.e: `https://192.168.1.10:8080`. You can configure it in `~/.config/beets/config.yaml`. Defaults are:
```yaml
beetstream:
host: 0.0.0.0
port: 8080
```## Supported Clients
All clients below are working with this server. By "working", it means one can use most of the features, browse library and most importantly play music!
### Android
- [Subsonic](https://play.google.com/store/apps/details?id=net.sourceforge.subsonic.androidapp) (official app)
- [DSub](https://play.google.com/store/apps/details?id=github.daneren2005.dsub)
- [Audinaut](https://play.google.com/store/apps/details?id=net.nullsum.audinaut)
- [Ultrasonic](https://play.google.com/store/apps/details?id=org.moire.ultrasonic)
- [GoSONIC](https://play.google.com/store/apps/details?id=com.readysteadygosoftware.gosonic)
- [Subtracks](https://play.google.com/store/apps/details?id=com.subtracks)
- [Music Stash](https://play.google.com/store/apps/details?id=com.ghenry22.mymusicstash)
- [substreamer](https://play.google.com/store/apps/details?id=com.ghenry22.substream2)### Desktop
- [Clementine](https://www.clementine-player.org)
### Web
- [Jamstash](http://jamstash.com) ([Chrome App](https://chrome.google.com/webstore/detail/jamstash/jccdpflnecheidefpofmlblgebobbloc))
- [SubFire](http://subfireplayer.net)_Currently supports a subset of API v1.16.1, avaiable as Json, Jsonp and XML._
## Contributing
There is still some [missing endpoints](missing-endpoints.md) and `TODO` in the code.
Feel free to create some PR!