Skip to content

Changelog

Version 28.11 - 2025-01-26

  • fix: retrieval of artwork from online sources
  • fix: mpd speaker selection
  • fix: autoconf warnings
  • fix: Apple Music/iTunes not working on Airplay host
  • web UI: Now Playing does not stop play progress updates when pausing
  • web UI: add ability to access the server externally
  • new: internet radio "Streamurl" options
  • new: support libevent as WS server instead of libwebsockets
  • new: template for VSCode
  • new: mpd updates, version 0.23.0, e.g. getvol, readpicture, albumart
  • new: API for setting skip_count and play_count directly

Version 28.10 - 2024-09-12

  • fix: playlist scanner ignoring lines starting with non-ascii chars
  • fix: last seconds of a track sometimes being skipped
  • fix: Apple Music password-based auth
  • fix: missing file scan when modified multiple times within a second
  • fix: Roku M1001 crash
  • fix: speakers changing IP addresses (error "Got RR type A size 16")
  • fix: playlist rename not registered
  • fix: problems with DAAP and old dates ("Integer value too large")
  • fix: compability with ffmpeg 7 (fixes build error)
  • web UI: many smaller improvements, e.g. sort by release date
  • web UI: traditional Chinese translation
  • new: ALAC transcoding for RSP/DAAP streaming
  • new: ability to save id3 metadata
  • config: change "trusted_networks" to have new value "lan" as default
  • config: new option to announce a MPD httpd plugin (stream from server)
  • config: set ipv6 to disabled by default due to unknown Airplay issue
  • config: deprecate "cache_path", replaced by "cache_dir"
  • dependency: libxml2 instead of mxml

Version 28.9 - 2024-01-18

  • web UI improvements:
    • display lyrics metadata
    • toggle Spotify on/off in some views
    • many minor improvements
  • use compressed ALAC for Airplay for bandwidth + fixes esp32 issue
  • don't merge Spotify albums with local albums
  • handle playlist with Unicode BOM
  • json API add tracks to queue returns info on added tracks
  • replace syscall with gettid, syscall deprecated on MacOS
  • fix issue where m3u genre doesn't override despite m3u_override = true
  • fix possible crash from use-after-free
  • fix FreeBSD possible crash
  • fix crash when keys of incorrect length are used for legacy pairing

Version 28.8

  • fix MacOS bind error: "Protocol wrong type for socket"
  • fix BSD build error (no SYS_gettid)
  • fix ALAC missing end tag causing ffmpeg decoder warnings
  • fix crash if Spotify AP resolver is unavailable
  • fix duplicates if file within library is replaced
  • fix fatal error due to mutex being zeroed

Version 28.7

  • fix compability with ffmpeg 6
  • web UI improvements:
    • easier volume sliders
    • incorrect display of genre
    • Chinese translation
    • fix removing RSS podcasts
    • sort by rating for composer, genre and artist tracks
    • (and much more)
  • changes to artwork search orders (easier static artwork for pipes)
  • major refactor of the http server improving mp3 streaming
  • support for m3u8 playlist files
  • allow mixed ipv4/ipv6 mdns
  • fix issue with device name capitalization (TuneAero issue)
  • drop support for libevent < 2.1.4

Version 28.6

  • German translation of web UI
  • web UI: fix error messages not displaying
  • fix low resolution Spotify artwork
  • fix incorrect display of date released pre 1970
  • fix for Denon speakers when pausing
  • support password authentication for Airplay 2
  • support for user config ffmpeg audio filters

Version 28.5

  • French translation of web UI
  • improved web UI loading of images
  • add support for Airplay 2 password based auth
  • fix some Airplay speakers turning on by themselves
  • fix parsing of CRLF and NOT in smart playlists and allow larger sizes
  • fix possible crash after Avahi restart
  • fix for Remote - play item from 'up next' when stopped
  • use configured bind_address to set mdns network interface

Version 28.4

  • fix broken Spotify after libspotify sunset
  • remove antlr3 dependency, use bison/flex instead
  • improve search by supporting diacritics and Unicode case folding
  • add support for new output: Roku/Soundbridge RCP
  • switch to MkDocs for documentation
  • smart playlists fixups and new "this week" param
  • fix 'add next' when in queue shuffle mode
  • web UI improvements:
    • migration to Vue 3 and Vite
    • honor "radio_playlists" config setting
    • display of search results for composers and playlists
    • add album / track count to genre and composer pages
    • fix incorrect sorting of album/artist searches
    • minor UI fixes
  • fix for Spotify config option album_override
  • improved Spotify scan performance
  • generic browse endpoints for the json api
  • fix slow shutdown with some libwebsocket versions

Version 28.3

  • web UI improvements, e.g.:
    • composer views
    • partial scan (e.g. only update RSS feeds)
    • fix http stream button not clickable in mobile view
    • fix Spotify playlists not showing
    • handling of not playable Spotify tracks
    • handling of podcast play counts
  • support for Spotify podcasts
  • updates for ffmpeg 5
  • better Spotify logout
  • user "usermark" field for user flagging of various track states
  • fix for 0-byte files crashing ffmpeg
  • fix metadata pipe deadlock and artwork memleak-on-error
  • better handling of Spotify disconnects
  • fix rare Airplay pairing error
  • many minor error handling fixes

Version 28.2

  • add Spotify integration that doesn't depend on libspotify
  • partial support for AirPlay events (Homepod buttons)
  • web UI upgraded, now 1.1.0:
    • show "comment" field in track details
    • drop double login to Spotify when not using libspotify
  • easier install by letting 'make install' add user and service files
  • preserve existing conf file when running 'make install'
  • support for "comment" field when making smart playlists
  • fix support for dacp device-volume
  • fix issue where source file sort tags where ignored
  • fix for Roku (RSP) artist display issue
  • fix bug when 'bind_address' option is used
  • fix for CVE-2021-38383
  • fix some minor time-of-check time-of-use bugs

Version 28.1

  • fix incompability in 28.0 with Debian Buster's libwebsockets 2.0

Version 28.0

  • rename forked-daapd to OwnTone + new logo
  • fix web UI slow updates due to websockets 3.x changes
  • support for ALAC sort tags
  • support for remote pls/m3u with https streams
  • add /api/queue?id=now_playing json API shortcut
  • fix possible crash on Pulseaudio error callback
  • fix possible segfault-on-exit
  • fix websockets not working on FreeBSD
  • refactor how the server binds to sockets (use dual stack ipv4/6)
  • configurable interface/address binding

Version 27.4

  • fix web server path traversal vulnerability

Version 27.3

  • support for AirPlay 2 speakers, incl. compressed ALAC
  • web UI upgraded, now v0.8.5:
    • new design/layout
    • optimize "Recently added"
    • Spotify search dialogue improvements
    • drop separate admin web page, now integrated in main web
    • podcast deletion
    • make Radio a top level item
    • show release dates
    • new sorting options
    • prevent browser caching of playlists
    • additional settings
  • improved Chromecast streaming (retransmisson, adaptive etc.)
  • JSON api support for updating metadata of queue items
  • JSON api new fields, e.g. time_added, time_played and seek
  • fix for some Chromecasts disconnecting
  • new algorithm for more natural ALSA volume adjustments
  • new nickname option for AirPlay and Chromecast
  • mpd fixes (nextsong, multiple commands)
  • charset flexibility when getting ICY metadata from streams
  • adaptive probing of radio streams
  • libplist and libsodium now required
  • fixes for library update events
  • fixes to speaker selection and unintentional volume changes
  • fix some minor memleaks
  • support shairport-sync metadata pipe flush event
  • misc logging fixup

Version 27.2

  • web UI upgraded to v0.7.2:
    • show cover artwork in album pages and lazy loading of artwork
    • show playlist folders
    • use sass/scss for css files
    • add "Radio" tab to the music section
    • add settings for artwork sources
    • add pop up dialog for Remote pairing requests
    • support adding/removing podcast subscriptions
    • support marking all new podcast episodes/all episodes as played
    • support searching by smart pl queries
    • skip buttons for audiobooks and podcasts
    • show localized times/dates
    • generate colored placeholder image if cover artwork is missing
    • show "cast" icon for Chromecast outputs
    • styling changes of the navbars and moving the volume controls
  • new speaker selection logic (persist user choice even after failure)
  • speaker autoselect no longer enabled by default
  • removed old admin page, not necessary any more
  • fix/workaround for Apple TV's and HomePods that disconnect
  • support for RSS feeds
  • support for nested smart playlists (playlist folders)
  • support for online artwork sources e.g. Discogs, Coverartarchive
  • support for radio StreamUrl's that point to json with metadata
  • fix incorrect artwork shown for unknown album/artists
  • fix issue parsing shairport-sync progress metadata
  • fix missing Spofity logout option
  • fix for embedded artwork not working with ffmpeg 4.3+
  • some smart PL improvements, e.g. support for more tags
  • config option for Airplay timing/control ports (eases firewalling)
  • quicker loading of radio streams (smaller probing)
  • workaround for mxml 2.10 significant memleak
  • some fixes for Roku (RSP)
  • drop libspotify for artwork, doesn't work any more
  • documentation improvements

Version 27.1

  • web UI upgraded to v0.6.0: settings page, display more Spotify data
  • support for volumeup, volumedown and mutetoggle DACP commands
  • support for multiple ALSA devices
  • suppress repeated logging of same message to avoid log file bloat
  • fix opening too many files due to looping with shairport-sync
  • fix for genres with single quotes in name
  • fix for incorrect update of time_added metadata
  • fix some small memleaks and missing cleanup

Version 27.0

  • no fixed resampling to 44100/16, play source quality if possible
  • Chromecast: quick start, better quality (48000/16 Opus encoded)
  • performance enhancements: Remote and iTunes will load quicker
  • alsa sync with variable sample rate, avoiding audible "clicks"
  • web UI upgraded to v0.5.6, e.g. play non-library tracks, saving queue
  • fix for Pebble mpd client (and possibly others)
  • fix issue with some HLS radio stations
  • support for https streams
  • fix for artwork showing dithered
  • ICY metadata in forked-daapd's mp3 stream
  • support for Spotify collaborative playlists
  • support for Shairport artwork via pipe
  • configurable mp3 streaming quality
  • json api improvements, e.g. for toggling speakers
  • json api/web ui: Relative seeking
  • support for some http seeking
  • fix for macOS Catalina’s Apple Music

Version 26.5

  • json api/web ui: file view
  • web ui: artwork support
  • web ui: "Add next" and genre tab
  • Airplay connection test improvements
  • support for https streams in m3u's
  • use Spotify web api for artwork instead of libspotify
  • option to make Airplay devices permanent or excluded
  • support for tracks and disc items in smart playlists
  • db refactor, fix issues with play count, time played etc
  • json api: more options available when adding items to the queue
  • json api: player/toggle
  • mpd version 0.20 support + support for "listfiles" command
  • fix double http auth decline issue

Version 26.4

  • automatic rating
  • fix issue in 26.3 causing invalid time_skipped values in the db
  • improved fallback to ipv4 if ipv6 fails
  • fix issue returning too many queue items to clients
  • fix missing prompt for library password

Version 26.3

  • fix AirPlay 2 devices (e.g. Sonos Beam and Airport Express)
  • fix mdns problems with ATV4 and ipv6
  • fix possible segfault if null user-agent
  • new metadata: Skip Count and Times Skipped (incl iTunes XML mapping)
  • iTunes XML mapping of Play Count and Play Date
  • fix for crashes when client provides no User-Agent
  • logging improvements

Version 26.2

  • fix for db indexes not being used on fresh installs

Version 26.1

  • player web interface
  • support for Airplay speaker control commands
  • add non-library items (e.g. radio stations) to the queue
  • fix for keeping connection alive towards some devices e.g. old ApEx's
  • extension of the JSON API
  • under-the-hood improvements of Spotify integration
  • fix for Android "Remote for iTunes"
  • fix ffmpeg segfault when jpeg encoding
  • performance improvements + misc

Version 26.0

  • added web interface
  • added JSON API
  • new mpd commands (e.g. sticker, urlhandlers, playlistfind)
  • support for adding non-library urls to the playback queue
  • support for id3 grouping tags
  • support for filesystems with ACL's
  • use Spotify web api to load all playlists
  • improved client authentication options
  • only rescan playlists if changed -> faster startup
  • fix bug related to dacp/daap client revision number handling
  • fix bugs related to import of iTunes XML playlists
  • restore ATV4/tvOS11 support by removing requirement for timing_port
  • fixes for Hyperfine Remote
  • improve database performance
  • make sure daemons listen on both ipv4 and ipv6 (for BSD)
  • ffmpeg/transcoding refactored for new ffmpeg API
  • and more...

Version 25.0

  • improved playback resilience
  • substitute packet skipping (producing audio "clicks") with start/stop
  • support for MacOSX with macports and Bonjour mDNS
  • Airplay device verification for Apple TV 4 w/tvOS 10.2 (uses libsodium)
  • support for Spotify web api (saved tracks/albums + Discover Weekly)
  • automatic playback of pipes + support for Shairport metadata pipes
  • added pipe audio output (fifo)
  • persistent queues (queue remains across server restart)
  • support for browser based clients
  • mpd sendmessage: set individual speaker volume, remote pairing
  • mpd add http://path-to-radiostream (i.e. add non-library items)
  • new options, e.g. exclude speakers from list
  • fix for shuffle mode
  • fix broken PNG artwork rescaling
  • use friendly Chromecast name in speaker list
  • support for libav/ffmpeg dual installs
  • refactoring - added the input and library interface
  • performance improvements
  • and other fixing up...

Version 24.2

  • Pulseaudio support (can be used for Bluetooth speakers)
  • new pipe/"fifo" audio output
  • fix misc Chromecast audio bugs
  • fix for Apple tvOS10 disconnecting after some minutes
  • enable CORS headers
  • LastFM scrobbling during regular DAAP streaming
  • smart playlist support for file modification time
  • misc MPD improvements, e.g. new outputsvolume command
  • ignore ipv6 link-local addresses (announced by e.g. ATV4)
  • better inter-thread command handling
  • improved cache performance and use of gzip
  • fix possible segfault on http timeouts
  • fix possible segfault when adding items during playback

Version 24.1

  • support for Monkey's audio
  • fix build problems on some platforms (e.g. OpenWrt)

Version 24.0

  • support for Chromecast audio
  • support more idv3 tags (eg. date released)
  • support more DAAP tags (eg. datereleased, hasbeenplayed)
  • fix problem with playlists not shown in correct order in Remote
  • autoselect devices based on priorities + keep devices selected
  • fix multiple FreeBSD filescanner bugs (like too many open files)
  • ALSA audio refurbished (prevent underrun/overrun, better AirPlay sync)
  • improved mpd command support (eg. lsinfo, move, queue autoplay start)
  • better mpd performance
  • timing changes to keep input and output in sync with player timer
  • prevent cache bloat (unscaled artwork or artwork for deleted tracks)
  • more intelligent Spotify artwork retrieval
  • artwork handling refactored
  • add generic output interface
  • add systemd service file
  • support for OSS4 dropped
  • support for old ffmpeg dropped
  • misc minor bugfixing

Version 23.4

  • fix freeze problem on network stream disconnects
  • support for mp3 streaming
  • better ipv6 handling
  • option to hide singles from album/artist lists
  • misc MPD improvements, incl. new commands and zeroconf support
  • queue handling and transcoding refactored
  • libavresample/libswresample dependency changed to libavfilter
  • improved pairinghelper.sh script

Version 23.3

  • fix issue where volume gets set to -1 on startup of raop devices
  • plug various minor memleaks
  • audiobook improvements, eg resuming playback from saved position
  • live icy metadata
  • libevent 1 support removed
  • LastFM performance improvement
  • drop legacy ffmpeg stuff
  • drop legacy flac, musepack and wma scanner

Version 23.2

  • fix db lock, m3u and Windows Phone bugs
  • improvements for Spotify and mpd
  • fixing bugs as always
  • sorting of genres and composers

Version 23.1

  • support for more mpd commands

Version 23.0

  • add support for the mpd protocol
  • add support for smart playlists
  • playlist and internet stream overhaul

Version 22.2

  • fix for iTunes 12.1
  • fix misc bugs

Version 22.1

  • artwork cache
  • some Spotify fixing up

Version 22.0

  • queue handling improvements
  • added DAAP cache, good for low-power devices like the RPi
  • support for LastFM scrobbling
  • support for .pls playlists
  • added compability with ffmpeg libswresample
  • added options to modify the operation of the SQLite database
  • stop init-rescan/full-rescan from running twice
  • fix misc local audio problems
  • fix some FreeBSD sound timing problems
  • fix segfault on invalid utf8 while sorting
  • fix misc bugs

Version 21.0

  • filescanner performance enhancements (db transactions)
  • support for queue editing
  • support for showing history
  • compability with libevent 2
  • compability with libav 10
  • support for Spotify
  • fix for Seafile libraries
  • support for permission changes in a library (IN_ATTRIB)
  • some DAAP changes to align with iTunes
  • properly show media kind shares in iTunes
  • support for named pipes/fifos
  • natural sorting and better handling of capitalization
  • introduce .init-rescan and .full-rescan triggers
  • fix for XBMC (libshairplay) crash
  • fix missing songartistid (fixes some remotes)
  • fix bug in m3u scanner
  • ICY metadata fixes

Version 20.0

  • includes patch against timeouts
  • configurable artwork file names
  • support for Remote 3 and 4
  • preference for album artist if it is available
  • bug fix for certain Airport Express models
  • bug fix for AirFoil Speakers
  • added support for internet radio with m3u
  • fixed fatal error when stopping player
  • m3u and iTunes playlist scanner improvements
  • improved compability with Hyperfine Remote for Android
  • speaker selection and m3u bug fixes
  • Shoutcast (icy) metadata support for internet radio
  • fix for Apple TV update 6.0
  • fix artwork memory leak
  • basic support for podcasts, compilations and audiobooks
  • user can tell file scanner to ignore certain file types
  • fix for metadata on non-Apple airplay devices
  • configurable library names
  • sorting changes, ignore The/A/An
  • fix for TunesRemote SE
  • force library rescan with .force-rescan
  • fix for the Retune remote on Android
  • fix for AirBubble speakers (shairport)
  • support for artwork in iTunes
  • fixed ffmpeg/libav logging
  • logging and documentation adjustments
  • autoselect AirPlay device if none selected
  • support for embedded artwork
  • config option to disable startup scan
  • config option for max volume for AirPlay devices
  • support for embedded platforms without hi-res timers
  • fix for WMA files
  • fixes for video playback
  • other fixes: non apple players, ffmpeg/libav updates...

Version 0.19

  • more libav 0.7 updates.
  • database speedups.
  • fix for iTunes 30-minute timeout.
  • fixes, big and small.

Version 0.18

  • add config knob for ALSA mixer channel name.
  • do not elevate privileges for reopening the log file; log file will now be owned by the user forked-daapd runs as.
  • fixes, big and small.

Version 0.17

  • support for libav 0.7
  • fixes, big and small.

Version 0.16

  • fix issue with non-UTF-8 metadata while scanning.
  • use proper file size in HTTP streaming code.
  • fix DAAP songlist bug with sort tags.
  • small code fixes.

Version 0.15

  • add support for sending metadata to AppleTV during AirTunes streaming.
  • support DOS-encoded Remote pairing files.
  • rework album_artist_sort handling.
  • enable RAOP to queue RTSP requests.
  • speedup DAAP & RSP filters processing.
  • speedup DAAP songlist generation.
  • artwork can handle and send out both PNG and JPEG.
  • fixes, big and small.

Version 0.14

  • sort headers/tags handling improvements.
  • better handling of tags for TV shows.
  • better handling of DRM-afflicted files.
  • configurable IPv6 support.
  • fix scanning of URL files.
  • fixes, big and small.

Version 0.13

  • add Remote v2 support; Remote v1 is not supported anymore.
  • add per-speaker volume support.
  • implement RAOP retransmission.
  • implement per-device quirks in RAOP.
  • improve compatibility with 802.11g AirPort Express.
  • improve mDNS address resolution, making IPv4 usable again.
  • fix Murmur Hash bug on 32bit platforms.
  • add support for JPEG artwork and alternative filenames.
  • disable session expiration that was causing issues.
  • FFmpeg 0.6 support.
  • fixes, big and small.

Version 0.12

  • add AirTunes v2 streaming.
  • add Remote support.
  • add gzipped replies.
  • add IPv6 support.
  • check for UTF-8 correctness of metadata.
  • fixes, big and small.

Version 0.11

  • support iTunes 9.
  • add iTunes XML playlist scanner.
  • add support for TV shows.
  • add FreeBSD and GNU/kFreeBSD support.
  • add support for DAAP groups.
  • add support for artwork.
  • rework metdata extraction, better support for ID3 tags.
  • database code rework.
  • preliminary support for Remote (pairing, browsing).
  • fixes, big and small.

Version 0.10

  • initial release.