A tiny subsonic server api implementation with python + flask
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
mediamanager
scanner
test
transcoder
view
.gitignore
README.md
authorizer.py
iposonic.py
iposonicdb.py
main.py
runtest.py
webapp.py

README.md

iposonic

A tiny subsonic server api implementation with python + flask. Supports:

  • coverArt search on the web
  • playlist add / delete, 4 default dynamic meta - playlist(included starred and random)
  • simple and customizable authentication
  • mp3 down - sampling for streaming from GPRS / UMTS connections
  • rating and starring
  • full - text search songs and albums
  • optional database backends

It works nicely for listing and playing your files with a subsonic client.

  • Android client
  • MiniSub and Perisonic

quickstart

To run, just

  • install flask and the other dependencies with # pip install flask
  • configure your mp3 directory in webapp.py
  • run with # python main.py -c /music/folder
  • help yourself # python main.py --help

You can test methods adding some audio files in test / data / and messing with nose

prerequisites

Required

  • pip install flask
  • pip install mutagen
  • pip install simplejson
  • pip install argparse

Optional

  • pip install sqlalchemy # [optional if you want a permanent store]
  • pip install MySQL - python # [optional if you want MySQL support]
  • pip install pylast # [optional if you want to scrobble to last.fm]
  • pip install nose # [to test and develop]
  • [apt - get | yum] install lame # [optional if you want transcoding and down-sampling]

big collections

If you have big music collections, Iposonic supports local data indexing with

  • MySQL Embedded(library provided in this source, with full text search)
  • MySQL Server(configure it in MySQLIposonicDB class)
  • Sqlite(thru sqlalchemy, but does not support full text search)

scrobbling

Scrobbling is enabled on development branches: lastfm and fs_thread