Page 1 of 1

Meet Sonar, a Python3 CLI for Subsonic

PostPosted: Mon Feb 24, 2014 12:03 am
by nicke
Hi all,

I have been using Subsonic for a year or so. I have been tinkering with a Python CLI for Subsonic for a while. It started out as a weekend project -- just for funsies. After having spent a little time fleshing out some features I found myself one day realizing that using Sonar had become my primary way of consuming music.

Head over to github and check it out: https://github.com/n1ck3/sonar.
Bug reports, feature requests, and general praise are always welcome. Go nuts with the github issues. :)

Some things to know about Sonar:
  • Sonar needs Python3 to work
  • Sonar uses a forked and slightly modified version (to play nice with Python3) of the awesome Python Subsonic API Wrapper `py-sonic` written by `crustymonkey@github` https://github.com/crustymonkey/py-sonic. Without py-sonic doing the heavy lifting, Sonar would never have been created.
  • Sonar plays mp3s by way of mplayer (unfortunatey). It was the best way of ensuring cross platformability. I would love to switch this audio backend to be a Python module. I've been looking around for one but haven't been impressed enought with any of the existing ones to make the swith. Suggestions are most welcome.
  • Sonar uses `mplayer.py` written by `baudm@github` https://github.com/baudm/mplayer.py to interface with mplayer. Without `mplayer.py`, Sonar would not have been created (most likely. :wink: )
  • While Sonar only has a subset of the great features that Subsonic have, it does have the basics and it works pretty well.

Some Sonar features:
  • Search for artist, albums, or songs
  • List your playlists (New)
  • List random albums or songs
  • Limiting returned results at will
  • Queue songs on server
  • Play queue
  • Clear queue
  • Shuffle / sort queue
  • Play/Pause player
  • Stop player
  • Seek forward backward in currently playing song (with optional timedelta argument).
  • Showing player status (verbose, short, or json (appropriate for statusbars))
  • Cache the so you don't have to download it again next time you want to listen to dat Bieber tune.
  • Prefetch next song in queue for fast playback (New)

Cheers,
Nicke