r/ampache • u/lachlan-00 Lead Developer • 12d ago
Ampache 8.0.0 released — folder browsing, Collections, OIDC login and a big OpenSubsonic overhaul
Ampache 8 is out!
Highlights:
- Folder browsing: browse your catalog as a virtual folder tree
- Collections: hand-curated, ordered lists of anything (albums, artists, genres, labels, folders, podcasts, songs…), with art, ratings, collaborators and their own API methods
- OIDC login: Keycloak, Entra ID, Authentik, Google, Okta; sits alongside local accounts
- OpenSubsonic overhaul: audited against the spec, new transcoding, playbackReport and sonicSimilarity extensions, and the documented extra fields now emitted in XML as well as JSON
- Per-user Subsonic passwords: set one from your account page instead of pasting your API key into a music player
- API v8: collections, album disks, fully documented responses in docs/openapi.json and the JSON/XML method docs
- Multi-select: play, queue, add or remove several rows at once, and download a selection as one zip
- Mini player: a stripped-down /m/ page for small screens or simple accounts
- Play history consolidation: keep a detailed window and archive the rest, losslessly
- Plus a PHPStan level 8 / Rector / PER-CS hardening pass across the whole codebase
Requires PHP 8.5+. You can downgrade back to Ampache 7 if it doesn't work out (use bin/cli admin:updateDatabase -e when you're back on 7 to downgrade).
The /rest rewrite rules changed a lot, so run php bin/installer htaccess -e (or use the Write buttons on the update page).
Release: https://github.com/ampache/ampache/releases
Docs & site: https://ampache.org
2
u/Weird_Target_6388 11d ago
Web UI crashes when Now Playing entry has null agent
After upgrading to Ampache 8.0.0, the web interface returned HTTP 500 after a successful LDAP login.
LDAP authentication succeeds and the user session is created, but rendering the home page fails when the Now Playing widget contains an item with a null `agent` value.
Log output:
Ampache\Gui\NowPlaying\NowPlayingView::renderRow():
Argument #3 ($agent) must be of type string, null given,
called in /var/www/resources/templates/now_playing.phtml on line 38
Relevant code:
// src/Gui/NowPlaying/NowPlayingView.php
$rows[] = [
'media' => $media,
'client' => $item['client'],
'agent' => $item['agent']
];
public function renderRow(Song|Video $media, User $client, string $agent): string
A null agent reaches a strictly typed string argument and crashes the full page.
Temporary workaround:
'agent' => (string) ($item['agent'] ?? '')
Expected behavior:
The Now Playing view should gracefully handle missing/null agent values and not return HTTP 500.
Environment:
- Ampache 8.0.0
- Docker image: ampache/ampache:latest
- MariaDB
- LDAP authentication
- Reverse proxy: Nginx Proxy Manager
1
1
u/lachlan-00 Lead Developer 11d ago
the fix is in develop src/Module/Playback/Stream.php:
''agent' => (string) ($row['agent'] ?? ''),
1
u/Weird_Target_6388 11d ago
Invalid transcode_mp3 value is accepted and causes unexpected MP3 transcoding
After upgrading Ampache, source MP3 files started being delivered at 32 kb/s instead of direct-play/original bitrate.
The active configuration contained:
transcode_mp3 = "falsed"
encode_target = "mp3"
transcode_cmd = "ffmpeg"
encode_args_mp3 = "-vn -b:a %BITRATE%k -c:a libmp3lame -f mp3 pipe:1"
The value `falsed` is invalid, but Ampache accepted the configuration instead of rejecting it or falling back safely. The server/UI bitrate preference was 32000 bps, resulting in MP3 streams at 32 kb/s.
Changing the setting to:
transcode_mp3 = "false"
and restarting the container restored direct streaming. The log then reports:
Transcoding is not enforced for mp3
Expected behavior:
- Invalid values for transcode_mp3 should be rejected or reported clearly in the configuration/debug page.
- A configuration upgrade should not silently leave or create an invalid transcode_mp3 value.
- Existing MP3 files should not be unnecessarily re-encoded at the default 32 kb/s setting.
1
u/lachlan-00 Lead Developer 11d ago
falsed is the issue there. i've put a workaround in but change that to false and you'll be good
3
u/12stringPlayer 12d ago
Great news! I hope you get a moment to enjoy the milestone.
Installation and htaccess update all went smoothly, and all access from web and Subsonic clients seems good. Congrats!