Changelog

  • FIXED: python 3.10 compatibility
  • FIXED: Make jPlayer work again in master branch (merge 0.41.1 into master)
  • FIXED: '--setup' now works for CherryPy 12 and upwards (thanks to TangoSierraAlfaVI)
  • FIXED: UnicodeError when transcoding non-ASCII URLs (thanks to evetsso)
  • IMPROVEMENT: Added Bandcamp album cover fetching (thanks to its-wednesday)
  • FIXED: reverted jPlayer update, because it broke everything
  • FIXED: Installing CherryMusic via pip (thanks to rjsberry)
  • IMPROVEMENT: updated jPlayer to 2.9.2, improved mobile compatibility (thansk to Max Leiter)
  • IMPROVEMENT: Increased List Directory Item Size (thansk to Max Leiter)
  • IMPROVEMENT: Made usernames case-insensitive (thanks to Max Leiter)
  • IMPROVEMENT: Changed download zip archive name (thanks to Max Leiter)
  • FEATURE: Added option to select Album Art Source for manual searches
  • FIXED: Server refused to start when not able to detect cherrypy version
  • FIXED: No more blinking page title in Chrome
  • FIXED: Corrected redirect after logout when for custom "server.rootpath"
  • IMPROVEMENT: Using iTunes as default method to fetch album art
  • IMPROVEMENT: Session duration can now be set in the config (thanks regisb)
  • FIXED: broken import
  • FEATURE: ... new feature here!
  • FIXED:
  • IMPROVEMENT:
  • FEATURE: Use file metadata when album art fetching (thanks mattss)
  • IMPROVEMENT: Switch to iTunes API for album art fetching (thanks mattss)
  • IMPROVEMENT: Better filtering of directory names when fetching album art (thanks mattss)
  • FIXED: more fixes for cherrypy detection (thanks Isgar)
  • FIXED: crash on start when not able to detect cherrypy version
  • FEATURE: support for reading MP4 tags
  • FIXED: unicode crash when using cherrypy > 5.4
  • FIXED: running the server directly on port 80
  • FIXED: transcoding of OGG files with other samplerates than 44khz
  • IMPROVEMENT: documented --deleteuser and --changepassword switches
  • IMPROVEMENT: don't show remaining time in shuffle mode
  • FIXED: *Security* CVE-2015-8309 Download of arbitrary files by logged in users (thanksfeedersec)
  • FIXED: *Security* CVE-2015-8310 XSS attack by logged-in users (thanks feedersec)
  • FIXED: OGA files are now correctly recognized as ogg-audio files
  • FIXED: Sorting tracks by track number correctly
  • FIXED: Cannot load playlists containing single quotes
  • FEATURE: allow reverse-sorting of playlists (thanks pando85)
  • FEATURE: Enabled support of ffmpeg to decode ALAC files
  • FEATURE: Added optional support for Pillow as Image Library
  • IMPROVEMENT: disabled confirm-to-quit message for playlist downloads
  • IMPROVEMENT: Updated TinyTag to version 0.10.1 (much faster ID3 parsing)
  • IMPROVEMENT: Predictable selection of album-art images (thanks lzh9102)
  • FIXED: Removed restrictions for passwords created in CLI
  • FIXED: server not starting on windows
  • FIXED: server not starting for python versions below 3.3
  • FEATURE: Opus transcoding support (thanks to qqueue)
  • FEATURE: Support for media keys (thanks to cheese83)
  • FIXED: File browser crash, when listing unreadable files (thanks to Tom Clegg)
  • FIXED: Album art fetching breaking for very file paths (thanks to Che-Huai Lin)
  • FIXED: Broken file listing if basedir does not end with a slash
  • FIXED: Proper cover art display in safari (thanks to yukip)
  • FIXED: Searching for terms ending in non ASCII-characters
  • FIXED: keyboard shortcut settings for unrecognized keys (thanks cheese83)
  • IMPROVEMENT: devel git version detection (thanks to MartijnRas)
  • IMPROVEMENT: More transcoding quality settings (thanks to Druneau)
  • IMPROVEMENT: Show first track after loading playlist
  • IMPROVEMENT: Allow indexing of symlinked files
  • FIXED: Queue not visible due to outdated jPlayer
  • FEATURE: sorting of queue and open playlists via dropdown menu
  • FEATURE: option to display active album art in player (thanks to @lzh9102)
  • FEATURE: enable intertial scroll on mobile (thanks to @tkafka)
  • FIXED: updated jPlayer to version 2.7.1 to fix playback on android
  • FIXED: workaround for CherryPy (>=3.3.0) bug when releasing session locks
  • FIXED: authentication for /serve resource (thanks to @susnux for spotting)
  • FIXED: album art search works with new amazon and bestbuy web sites
  • FIXED: udated tinytag to v0.7.2 to decode ID3 tags from latin1
  • FIXED: admin GUI can again create new users as admin
  • FIXED: restore "change password" functionality
  • FIXED: various problems when filecache entries no longer exist on disk
  • FIXED: some quirks in playlist age display were forcefully retired
  • FIXED: server handles bad basedir configuration gracefully
  • FIXED: updated jquery-ui to 1.11.1, does not ruin the js-compression anymore
  • FIXED: localhost_only bind address respects server.ipv6_enabled setting
  • IMPROVEMENT: transcoded tracks have a duration in player (thanks to @lzh9102)
  • IMPROVEMENT: "folder" items are now easier to click
  • IMPROVEMENT: request meta data for one track at a time to reduce server load
  • IMPROVEMENT: expand CI tests to include Python 3.4 and PyPy3
  • IMPROVEMENT: expand CI tests to more versions of CherryPy
  • IMPROVEMENT: easier pypi releases via auto-conversion of README.md -> .rst
  • FEATURE: showing audio meta-data in file browser
  • FEATURE: showing the number of files and folders inside each folder
  • IMPROVEMENT: automatically hiding notifications after 5 seconds
  • IMPROVEMENT: updated jplayer to version 2.6
  • IMPROVEMENT: sorting playlists by age by default
  • FIXED: mp3 playback on newer versions of chrome
  • FIXED: search engine bug that degraded search quality immensely
  • FIXED: incorrect length reported for long flac files
  • FIXED: special characters in playlist names (thanks to marianosimone)
  • FIXED: in browser setup not properly saving all the settings
  • FIXED: config and data location in OSX
  • FIXED: playback failure leading to too much recursion
  • FEATURE: built-in meta tag display in playlists for all platforms
  • FEATURE: playlist scrolls to follow added an newly playing tracks
  • FIXED: current track is always displayed in player area
  • FIXED: album art cache works reliably
  • IMPROVEMENT: better search for names containing umlauts
  • IMPROVEMENT: generally improved UI usability
  • IMPROVEMENT: stability and performance of album art fetching
  • IMPROVEMENT: faster playlist loading
  • IMPROVEMENT: faster loading of client through gzip compression
  • IMPROVEMENT: bump version number above 0.31.0
  • IMPROVEMENT: update changelog
  • FEATURE: display track metainfo in web client
  • FIXED: recover gracefully when update notifications can't be fetched
  • FIXED: display default image when no album art found
  • FEATURE: export all playlists at once in a zip file (pls or m3u)
  • FEATURE: force lower audio bitrate via transcoding (nice for mobile users)
  • FEATURE: switch between list and cover view of folders
  • FEATURE: Album art fetcher supports google image search (thanks to Lord-Simon!)
  • FEATURE: ready for tag support in python 2 using mutagen (thanks to endlesscoil!)
  • FEATURE: internationalization support for back-end
  • FEATURE: German translation for back-end
  • FEATURE: locate tracks from playlist in the file browser
  • FEATURE: showing current track title in title of the browser tab
  • FIXED: fixed zip export of playlist having wrong CRC (thanks to johnhe00!)
  • FIXED: playlists were always saved as public upon first save
  • FIXED: not showing hidden files anymore in file listings
  • FIXED: repeat mode now repeats the whole playlist, instead of last track
  • FIXED: album art fetcher works again with images from amazon
  • IMPROVEMENT: improved mobile layout (nav bar padding and cover size)
  • IMPROVEMENT: showing default folder image, when fetching album art fails
  • FEATURE: Change album art in media browser
  • FEATURE: Play WMA files via live transcoding (needs ffmpeg)
  • FEATURE: Update notifications for admins in web client config key `update_notifications = [True] | False`
  • FEATURE: `--version` switch for main script displays useful info
  • FIX: !!! SSL config: relative paths are now relative to location of config file
  • FIX: Resolve some unicode issues when playing tracks containing non-ASCII characters
  • FIX: autoplay when adding first track now works for all playlists
  • FIX: CherryMusic shuts down cleanly when parent process dies
  • FIX: `media.basedir` can now handle trailing path separator
  • FIX: Can change and delete playlists again
  • FIX: Can delete users again
  • FIX: Online indicator in admin dialog works again
  • IMPROVEMENT: online tracking of test coverage at https://coveralls.io/r/devsnd/cherrymusic
  • IMPROVEMENT: audioread failure no longer pretends to be a serious error
  • FEATURE: confirm dialog when closing browser while music is playing can be disabled in the options dialog
  • FEATURE: tracks names with a leading number are now always ordered correctly
  • FEATURE: update notifications for server admins
  • FIXED: resources not found after distutils install on debian based distros
  • FIXED: tracks playing accidentally after sorting a playlist
  • FIXED: playlists not being closed properly
  • FIXED: playlists public/private state not changable
  • FIXED: remove-played-tracks button resulting in jumping over tracks
  • IMPROVEMENT: more code documentation
  • FEATURE: playlists can be searched by title or contained tracks
  • FEATURE: playlists can be sorted by age, user or name
  • FIXED: playing track not bein highlighted in playlist
  • FIXED: in browser setup works with new bootstrap 3 layout
  • FIXED: message of the day is bein displayed again
  • FIXED: tray icon app crashing when displaying about dialog
  • IMPROVEMENT: logout button is disabled when using auto-login (less confusing)
  • UPDATE: man pages reflect recent changes
  • HOTFIX: fixed download button not working
  • FIX: shuffle and repeat buttons are visible now
  • FEATURE: brand new UI using bootstrap 3: panels can be scrolled independently
    redesigned media browser (unified playlist manager)
    unified navigation & search bar
  • IMPROVEMENT: faster client load times (less-css-compilation & js minification)
  • FEATURE: downloading all tracks of a playlists as zip file
  • IMPROVEMENT: limiting maximum size of downloadable playlists
  • FEATURE: creation of playlists containing random tracks
  • FEATURE: IPv6 support
  • FEATURE: improved search for non-ascii characters requires optional dependency "unidecode"
  • FEATURE: new tray icon program "cherrymusic-tray" to start/stop CM comfortably requires optional dependency "gobject-python"
  • IMPROVEMENT: browser setup now shows details for missing dependencies
  • UPDATE: updated jPlayer to version 2.4.0
  • FIX: playback problems when using firefox on windows
  • FIX: fetching of local album art works now as it should
  • FIX: playback works now when CM is run with another rootpath but '/'
  • FIX: playback in chrome randomly stopped, works now + a lot of other stuff, as always!
  • IMPROVEMENT: search quality, rare words are considered more important
  • FEATURE: M4A transcoding support
  • FEATURE: playlist saving menu
  • FIX: playlist backward compability
  • FIX: audioread path backward compability fix
  • FIX: Error on first startup when not using the browser setup
  • FIX: serving files with non-ASCII names (CherryPy monkey-patch)
  • FEATURE: database versioning support
  • FEATURE: busy indicator only occupies busy parts of the interface
  • IMPROVEMENT: warn user about database updates before perfoming them
  • FEATURE: CLI configuration override: --conf KEY=VALUE
  • FEATURE: --port switch for overriding server port on start-up
  • FEATURE: autoplay on adding first track to playlist (optional)
  • FIX: minor corrections for various messages and help files
  • FIX: correctly adding tracks to playlist after clearing it before
  • FIX: preventing python 3 module stagger to be imported in python 2
  • FIX: automatically indexing music on first start after setup
  • FIX: playlist deletion button only visible for admins and owners
  • FIX: track transcoding is determined on the fly (playlist portablity)
  • IMPROVEMENT: switched to nosetest for automatic testing
  • CHANGE: removed open search plugin + a bunch of internal changes, clean-up & stability
  • FIX: logout works also with previous request containing post-data
  • FEATURE: reworked UI using bootstrap (pretty & shiny!)
  • FEATURE: new --setup switch enables first configuration in browser
  • FEATURE: album art resizing (requires opt-depend ImageMagick)
  • FEATURE: man pages!
  • FEATURE: backward compatibility down to python 2.6 supporting now python 2.6, 2.7, 3.0+ and pypy
  • FEATURE: users can change their password in the option menu
  • IMPROVEMENT: search speed *and* quality greatly improved
  • IMPROVEMENT: rewrite of transcoding module (works more reliably now)
  • IMPROVEMENT: using HTML5 & Flash at the same time to reduce need to transcode
  • IMPROVEMENT: playlist visibility can be changed in playlist browser
  • IMPROVEMENT: users can change their passwords in the option menu
  • IMPROVEMENT: flash block detection for opera
  • IMPROVEMENT: better IPv6 support
  • CHANGE: honoring XDG Base Directory Specification, move the files like this to migrate:
    $ mv ~/.cherrymusic/config $XDG_CONFIG_HOME/cherrymusic/cherrymusic.conf
    $ mv ~/.cherrymusic/* $XDG_DATA_HOME/cherrymusic
  • CHANGE: M3U & PLS download buttons hidden by default, can be reactivated in options
  • CHANGE: removed unidecode from package, is now opt-depend
  • FIX: Album art fetching doesn't stall interface anymore
  • FIX: user online time display is now correct independent of the client time
  • FIX: Loading or creating a playlist no longer interrupts playback
  • FIX: Workaround for older cherrypy version on python 3.3
  • FIX: users can no longer modify other user's public playlists
  • FIX: invalidating session of deleted users
  • FIX: local autologin works again + a lot more (like every time)!
  • FEATURE: New 2 Column Layout (Search and Playlists side by side)
  • FEATURE: Manage multiple playlists in tabs
  • FEATURE: OpenSearch for adding cherrymusic to browser search bar
  • FEATURE: user changeable colors for the interface
  • FEATURE: responsive design for mobiles (switch between playlist and search view)
  • FEATURE: display remaining time for playlists
  • FEATURE: added --dropfiledb switch for reinitialization of file db
  • FEATURE: local cover art is loaded automatically
  • FEATURE: remotely fetched cover art is now cached in ~/.cherrymusic/albumart
  • FEATURE: customizable keyboard shortcuts
  • FEATURE: advanced search syntax: prefixes "!f" and "!d" only files or directories respectively
  • CHANGE: --update only performs an update anb does not start the server anymore
  • CHANGE: renaming of config options: dyndns_address -> dynamic_dns_address
    enable_ssl -> ssl_enabled
  • FIXED: execution from another work dir lead to not finding local resources
  • FIXED: fixed jerky control buttons in webkit browsers
  • FIXED: API accessible when not authenticated
  • FIXED: SSL not working due to wrong IP parsing
  • FIXED: symlinks being resolved not correctly
  • FIXED: flashblock taken into account, users can activate player on demand
  • FIXED: playlist duration longer than one hour not properly displayed
  • FIXED: admin tab not visible anymore for non-admin users
  • FIXED: being able to create new admin users from the GUI
  • FIXED current track not being highlighted after changing anything in playlist
  • UPDATE: updated jQuery to version 1.8.3
  • DEPRECATED: Themes aren't used anymore + many more internal changes (dynamic db layout, decreased verbosity, etc.)
  • FEATURE: drag'n'drop sortable playlist
  • FEATURE: partial updates. cherrymusic --update /path/to/changed/directory
  • FEATURE: python 3.1 downward compatibility for debian users
  • FEATURE: cherrymusic tries to automatically fetch album covers
  • FEATURE: new layout for mobile devices
  • FEATURE: --update switch now runs in background, immediate server start
  • FEATURE: compactly listed folder paths are now autocompleted if listed directory names overlap for more than one letter
  • FEATURE: Added dependency installer, so that cherrymusic can be run on any system without any preinstalled dependencies
  • FEATURE: see online users in the admin panel
  • FEATURE: delete users
  • IMPROVEMENT: shuffle uses algorithm to play possibly unplayed tracks first
  • IMPROVEMENT: Configuration interface overhaul. new or deprecated options are now listed on startup
  • IMPROVEMENT: search speed
  • FIXED: removed configdb, proved to be unnecessary
  • FIXED: jPlayer doesn't play mp3s when no codecs installed on server
  • EXPERIMENTAL: cherrymusic can be started as a daemon using cherrymusicd
  • UPDATE: jPlayer updated to version 2.2.0
  • IMPROVEMENT: updates run smoother, better progress report (server startup doesn't trigger update anymore)
  • IMPROVEMENT: playlists remembered in session retain track order
  • FEATURE: updates are triggered using the --update switch
  • FEATURE: --newconfig switch creates a new config file (config.new) in the home dir
  • FEATURE: show playtime of tracks and of playlist (requires ffmpeg)
  • FEATURE: unfinished search terms also yield results
  • IMPROVEMENT: search result weight algorithm takes partial matches into account
  • FEATURE: auto-login on localhost
  • EXPERIMENTAL: live transcoding of flac, ogg, mp3
  • FIX: cherrypy not shutting down cleanly
  • FIX: being able to create duplicate playlist names
  • FEATURE: Made playlists deletable
  • FEATURE: Added "update database" button in admin panel
  • FEATURE: Added "remove played tracks" button
  • FIX: browser showing compact entries multiple times
  • FIX: bug that prevents listening to music when no codec is installed on host
  • FEATURE: exporting playlists as PLS or M3U (take this, edna!)
  • + MANY MORE...
  • FEATURE: https encryption support
  • FEATURE: option to listen only on localhost
  • FIX: config and databases now reside in the user's home directory
  • FEATURE: savable playlists
  • FIX: added GPL license
  • FEATURE: salted user passwords
  • FEATURE: admin user can be created inside web-interface on first start
  • FEATURE: playlists are periodically saved in the session, so they're not lost when browser or tabs are closed etc.
  • FEATURE: theming support
  • FEATURE: configurable server port
  • FEATURE: admin panel for creating new users
  • FEATURE: welcome screen for CLI and web-interface
  • Initial Release

CherryMusic © 2012 - 2015