- Responsive design that works equally well on desktop and mobile browsers.
- Browse content provided by any Mopidy backend extension.
- Add one or more tracks or entire albums to the queue.
- Save the current queue to an easily accessible playlist.
- Search for tracks, albums, or artists from specific backends or all of Mopidy.
- Shows detailed track and album information during playback, with album cover retrieval from Last.fm.
- Support for all of the Mopidy playback controls (consume mode, repeat, shuffle, etc.)
- Deep integration with, and additional features for, the Pi MusicBox.
- Fullscreen mode.
- MMW has been tested on the major browsers (Chrome, IE, Firefox, Safari, iOS). It may also work on other browsers
- Mopidy >= 1.1.0. An extensible music server that plays music from local disk, Spotify, SoundCloud, Google
Play Music, and more.
Install by running:
pip install mopidy-musicbox-webclient
Alternatively, clone the repository and run sudo python setup.py install from within the project directory. e.g.
$ git clone https://github.com/pimusicbox/mopidy-musicbox-webclient
$ cd mopidy-musicbox-webclient
$ sudo python setup.py install
MMW is shipped with default settings that should work straight out of the box for most users:
enabled = true
musicbox = false
on_track_click = PLAY_ALL
The following configuration values are available should you wish to customize your installation further:
- musicbox_webclient/enabled: If the MMW extension should be enabled or not. Defaults to true.
- musicbox_webclient/musicbox: Set this to true if you are connecting to a Mopidy instance running on a
Pi Musicbox. Expands the MMW user interface to include system control/configuration functionality.
- musicbox_webclient/websocket_host: Optional setting to specify the target host for Mopidy websocket connections.
- musicbox_webclient/websocket_port: Optional setting to specify the target port for Mopidy websocket connections.
- musicbox_webclient/on_track_click: The action performed when clicking on a track. Valid options are:
PLAY_ALL (default), PLAY_NOW, PLAY_NEXT, ADD_THIS_BOTTOM, ADD_ALL_BOTTOM, and DYNAMIC (repeats last action).
- Now displays album and artist info when browsing tracks. (Addresses: #99).
- Now remembers which backend was searched previously, and automatically selects that backend as the default search target.
- Upgrade Media Progress Timer to version 3.0.0.
- Now retrieves album cover and artist images using MusicBrainzID, if available.
- New configuration parameter on_track_click can be used to customize the action that is performed when the
user clicks on a track in a list. Valid options are: PLAY_NOW, PLAY_NEXT, ADD_THIS_BOTTOM,
ADD_ALL_BOTTOM, PLAY_ALL (default), and DYNAMIC (repeats last action).
- Optimized updating of ‘now playing’ icons in tracklists.
- Optimized rendering of large lists of tracks to make UI more responsive.
- Added ‘Folder’ FontAwesome icon on the Browse pane for browsing the filesystem.
- New icons for ‘PLAY’ and ‘PLAY_ALL’ actions. In general, icons with an empty background will perform an action only
on the selected track, while icons with a filled background will apply the action to all tracks in the list.
- Standardize popup dialog layout convention: Sentence fragments have no punctuation, buttons that confirm a
destructive action go on the left.
- Don’t create Mopidy models manually. (Fixes: #172).
- Context menu is now available for all tracks in browse pane. (Fixes: #126).
- last.fm artist image lookups should now always return the correct image for similarly named artists.
- Ensure that browsed tracks are always added to the queue using the track URI rather than the track’s position in the folder.
- Fixed an issue where searches would be performed as soon as the user switches to the ‘Search’ pane,
instead of waiting for the ‘Search!’ button to be clicked.
- Fixed an issue where the last track in an album was not grouped properly with the rest of the results, and would have
a small divider rendered above it. (Fixes: #196).
- Clearing the queue should no longer trigger an album cover image lookup.
- Update icons and labels for podcast, podcast-gpodder, and podcast-itunes backends.
- Upgrade Font-Awesome libraries to version 4.5.0.
- Upgrade jQuery libraries to version 1.12.0.
- Mopidy-Musicbox-Webclient is now distributed with a vendor copy of Mopidy.js. (Addresses: #175).
- Remove unused iScroll libraries and references.
- Remove unused jQuery.Mobile.iScrollView libraries and references.
- Remove unused jQuery.Truncate libraries and references.
- Avoid polling for current track and time changes. (Fixes: #40).
- Prevent mobile devices from scaling when used in landscape mode. (Fixes: #157).
- Scrolling now works in full screen mode for Chrome and Safari as well. (Fixes: #53).
- No longer interferes with changes to Mopidy’s volume levels that are triggered externally. (Fixes: #162).
- Volume slider now works with Mopidy-ALSAMixer again. (Fixes: #168).
- Now falls back to track artist if album artist is not available for rendering cover art. (Fixes: #128).
- Fix playlist refresh button. (Fixes: #173).
- Update save queue functionality to use ‘m3u’ format. (Fixes: #177).
Enhancements and improvements
- Added optional websocket_host and websocket_port config settings.
- Added link to Alarm Clock (if present).
- Added ability to save Queue as local Playlist. (Addresses: #106).
- Add support for static_dir configurations.
- Added ability to manually initiate refresh of Playlists.
- Now updates the track name when the stream title changes.
- Adding a browsed radio station to the tracklist now also starts playback of the station.
- Increase volume slider handle by 30% to make it easier to grab on mobile devices.
- Add application cache manifest file for quicker loads and to allow client devices to detect when local caches should
- Use standard Mopidy mixer methods to mute / un-mute playback.
- Streams are now saved to the ‘[Radio Streams].m3u’ playlist and are accessible from all clients.
Users with existing streamUris stored as browser cookies will be prompted to convert them to the new m3u backed scheme.
- Mopidy-Musicbox-Webclient now requires at least Mopidy v1.1.0 or greater to be installed.
- Ensure that only the currently playing track is highlighted in the queue.
- Fixed slow to start playing from a large tracklist of browsed tracks.
- Mopidy 1.1.0 compatibility fixes. (Fixes: #109,
- Fix incorrect identification of user’s Spotify starred playlist.
- Initiating track playback from a folder that contains subfolders now correctly identifies the tracks that should be
played. (Fixes: #112).
- Adding search results to tracklist now works as expected.
(Fixes: #49 and
- Fix vertical alignment of playback control buttons in footer.
- Increase width of header so that more text can be rendered in the title bar.
- Re-align the menu and search buttons in the title bar.
- Use explicit Mopidy.js calling convention. (Fixes: #79).
- Added event handling for ‘muteChanged’ event. (Fixes: #141).
- Remove support for defunct Grooveshark service.
- Pausing a stream will now actually stop it.
- Fix keyboard shortcuts in some browsers.
- Use relative path for script files to fix proxy support.
- Description text for control icons.
- Added consume and single playback modes.
- Changed from a static webclient to a dynamic webapp.
- New musicbox config setting to hide Musicbox specific content.
- Added popup tracks menu to the Browse interface.
- Fixed wrong jQuery version on some pages.
- Added AudioAddict icon.
- Bugfixes of course.
- A friendlier welcome with a home page with buttons to the most used functions.
- Converted Radio Stations to Streams, so user can add streams for youtube, spotify, soundcloud, podcasts.
- Enhanced radio/streams interface.
- Search: select service to search.
- Fixed single quote bug. (Fixes: #39).
- Better handling of coverart.
- Youtube icons added.
- Bugfixes (search, popups, etc.).
- Small fixes for PyPI distro.
- Compatible with Mopidy v0.19.
- Made pip installable.
- A lot of fixes.
- Works with mopidy-websettings extension.
- Compatible with Mopidy 0.14+.
- More ways to add a song to the Queue (play next, add to bottom, etc).
- Better Queue popup.
- Button to clear the Queue.
- A bit more speed.
- Local files show up in search.
- Bugs fixed.
- New instructions in the read me.
TODO: Brief introduction on what you do with files - including link to relevant help section.