This website requires JavaScript.
9a3f1e4a24
Make the now-playing bar's title/artist clickable and add a cover art lightbox
master
owen and Claude Sonnet 5
2026-08-23 22:04:36 -05:00
866f243f1b
weee
owen
2026-08-23 14:13:18 -05:00
789bf91eed
Complete Phase 4: security hardening, player/playlist/admin UI, docs
owen and Claude Sonnet 5
2026-08-23 09:18:17 -05:00
933ed31550
Add a web player lyrics panel with active-line highlighting and click-to-seek
owen and Claude Sonnet 5
2026-08-23 08:39:22 -05:00
238cf0d4a0
Update docs/subsonic-compatibility.md with the OpenSubsonic extension matrix
owen and Claude Sonnet 5
2026-08-23 08:36:48 -05:00
a921f9e2bc
Add optional MusicBrainz/Cover Art Archive metadata enrichment
owen and Claude Sonnet 5
2026-08-23 08:35:40 -05:00
2a69f6dc33
Blend real sonic distance into classic getSimilarSongs ranking
owen and Claude Sonnet 5
2026-08-23 08:31:54 -05:00
b6acd63c2d
Implement sonicSimilarity extension with real audio feature analysis
owen and Claude Sonnet 5
2026-08-23 08:30:20 -05:00
6fb46a989e
Implement the OpenSubsonic transcoding extension (getTranscodeDecision/getTranscodeStream)
owen and Claude Sonnet 5
2026-08-23 08:23:08 -05:00
ec28053d36
Implement songLyrics extension: getLyricsBySongId with real word/syllable cues
owen and Claude Sonnet 5
2026-08-23 08:19:41 -05:00
e48f063f03
Add structured lyrics storage and indexing (line/word timing, byte offsets)
owen and Claude Sonnet 5
2026-08-23 08:16:42 -05:00
efedf1a6bf
Add LRC/Enhanced LRC parser (line and word-level timing, UTF-8 safe)
owen
2026-08-23 08:10:06 -05:00
4a5add80b6
OpenSubsonic: playbackReport extension (reportPlayback), integrated with now-playing/history
owen
2026-08-23 08:08:35 -05:00
d3074ab6fe
OpenSubsonic: indexBasedQueue (getPlayQueueByIndex, savePlayQueueByIndex) with real duplicate-song support
owen
2026-08-23 08:07:16 -05:00
e88f4e040c
OpenSubsonic: getPodcastEpisode, topSongsByArtistId, transcodeOffset (real ffmpeg seek)
owen
2026-08-23 08:06:12 -05:00
e38d31d384
Phase 3: OpenSubsonic core (response envelope, error codes 42-44, getOpenSubsonicExtensions) and apiKeyAuthentication extension with tokenInfo, web API key management
owen
2026-08-23 08:04:01 -05:00
3b4883780b
Fix test-leaked HLS cache directory tracked in repo; give subsonic tests a real DataDir
owen
2026-08-23 00:38:57 -05:00
6ac50994b8
Phase 2: exhaustive Subsonic 1.16.1 compatibility matrix, README/config/Docker updates
owen
2026-08-23 00:38:09 -05:00
f1fdd8d2c2
Web UI: podcasts, radio, shares, bookmarks pages; admin podcast/jukebox management; per-user Subsonic permission editor
owen
2026-08-23 00:34:58 -05:00
2e222bd193
Subsonic: jukeboxControl endpoint wired to real mpv-backed controller
owen
2026-08-23 00:29:59 -05:00
12eb4b9d01
Add real mpv-backed jukebox controller (JSON IPC), tested against real mpv
owen
2026-08-23 00:27:59 -05:00
c2166fa7d4
Subsonic: podcast endpoints (getPodcasts, getNewestPodcasts, refreshPodcasts, createPodcastChannel, deletePodcastChannel/Episode, downloadPodcastEpisode)
owen
2026-08-23 00:26:14 -05:00
fce44a2ffd
Add real podcast subsystem: RSS feed refresh, bounded background downloads, restart recovery
owen
2026-08-23 00:24:43 -05:00
8d93bea384
Subsonic: user management endpoints (getUser, getUsers, createUser, updateUser, deleteUser, changePassword) with full permission model mapping
owen
2026-08-23 00:22:44 -05:00
d92a25b141
Subsonic: internet radio, chat, bookmarks, play queue, scanner status endpoints
owen
2026-08-23 00:21:13 -05:00
c6e0131984
Subsonic: sharing (getShares, createShare, updateShare, deleteShare) plus real public share web pages and stream route
owen
2026-08-23 00:18:51 -05:00
b77ccd242a
Subsonic: annotation endpoints (star, unstar, setRating, scrobble)
owen
2026-08-23 00:15:58 -05:00
c7b472ab99
Subsonic: media retrieval endpoints (stream, download, getCoverArt, getLyrics, getAvatar, hls, getCaptions) with real transcoding, embedded lyrics extraction, and folder permission enforcement
owen
2026-08-23 00:15:00 -05:00
b6ec06f272
Add real ffmpeg-backed transcoding subsystem (bounded concurrency, streaming, HLS segmenting)
owen
2026-08-23 00:10:55 -05:00
6e2b875eaa
Subsonic: playlist endpoints (getPlaylists, getPlaylist, createPlaylist, updatePlaylist, deletePlaylist)
owen
2026-08-23 00:09:36 -05:00
a297454065
Subsonic: album/song lists (getAlbumList/2, getRandomSongs, getSongsByGenre, getNowPlaying, getStarred/2) and search (search, search2, search3)
owen
2026-08-23 00:08:06 -05:00
f40a011c46
Subsonic: browsing endpoints (getMusicFolders, getIndexes, getMusicDirectory, getGenres, getArtists/Artist, getAlbum, getSong, getVideos/VideoInfo, getArtistInfo/2, getAlbumInfo/2, getSimilarSongs/2, getTopSongs)
owen
2026-08-23 00:06:08 -05:00
b5e2bf01e2
Phase 2: Subsonic REST API framework (auth, response formatting, error handling, routing) plus user permission model
owen
2026-08-22 23:58:54 -05:00
f81c8704a5
go mod tidy
owen
2026-08-22 23:45:46 -05:00
89e46bf539
Fix open-redirect via next parameter, remove dead code
owen
2026-08-22 23:45:39 -05:00
b4b1ba8470
Add Docker/systemd deployment, documentation, extauth logout URL wiring
owen
2026-08-22 23:44:46 -05:00
40e1cfb630
Add web-layer route/auth tests
owen
2026-08-22 23:42:52 -05:00
e0bd8bc3cb
Web UI: setup wizard, auth pages, library browsing, player, admin, streaming, cover art
owen
2026-08-22 23:42:09 -05:00
aa29f13846
Streaming with range requests and path safety, cover art discovery/resize cache
owen
2026-08-22 23:33:00 -05:00
49dbee617a
Library indexing and filesystem scanner with incremental rescans
owen
2026-08-22 23:31:17 -05:00
d4ea7a4ca9
Foundation: config, schema/migrations, auth, stable IDs, metadata probing
owen
2026-08-22 23:29:16 -05:00