A tiny subsonic server api implementation with python + flask
Python Shell
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