Commit Graph
31 Commits
Author SHA1 Message Date
owenandClaude Sonnet 5 e48f063f03 Add structured lyrics storage and indexing (line/word timing, byte offsets)
Adds database.InsertLyrics/GetSongStructuredLyrics storing multiple
lyrics entries per song with per-line start times and, when the
source provides it, word-level cues carrying precomputed UTF-8 byte
offsets. library.IndexLyrics wires this into the scanner: embedded
plain-text tags are stored unsynced, and a same-basename sidecar .lrc
(plain or Enhanced) is parsed and stored synced, with word cues when
present. IndexFile now takes the media file's absolute path so lyrics
indexing can locate sidecar files.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014r98AtcBbevpscWLsfwVvv
2026-08-23 08:16:42 -05:00
owen efedf1a6bf Add LRC/Enhanced LRC parser (line and word-level timing, UTF-8 safe) 2026-08-23 08:10:06 -05:00
owen 4a5add80b6 OpenSubsonic: playbackReport extension (reportPlayback), integrated with now-playing/history 2026-08-23 08:08:35 -05:00
owen d3074ab6fe OpenSubsonic: indexBasedQueue (getPlayQueueByIndex, savePlayQueueByIndex) with real duplicate-song support 2026-08-23 08:07:16 -05:00
owen e88f4e040c OpenSubsonic: getPodcastEpisode, topSongsByArtistId, transcodeOffset (real ffmpeg seek) 2026-08-23 08:06:12 -05:00
owen e38d31d384 Phase 3: OpenSubsonic core (response envelope, error codes 42-44, getOpenSubsonicExtensions) and apiKeyAuthentication extension with tokenInfo, web API key management 2026-08-23 08:04:01 -05:00
owen 3b4883780b Fix test-leaked HLS cache directory tracked in repo; give subsonic tests a real DataDir 2026-08-23 00:38:57 -05:00
owen 6ac50994b8 Phase 2: exhaustive Subsonic 1.16.1 compatibility matrix, README/config/Docker updates 2026-08-23 00:38:09 -05:00
owen f1fdd8d2c2 Web UI: podcasts, radio, shares, bookmarks pages; admin podcast/jukebox management; per-user Subsonic permission editor 2026-08-23 00:34:58 -05:00
owen 2e222bd193 Subsonic: jukeboxControl endpoint wired to real mpv-backed controller 2026-08-23 00:29:59 -05:00
owen 12eb4b9d01 Add real mpv-backed jukebox controller (JSON IPC), tested against real mpv 2026-08-23 00:27:59 -05:00
owen c2166fa7d4 Subsonic: podcast endpoints (getPodcasts, getNewestPodcasts, refreshPodcasts, createPodcastChannel, deletePodcastChannel/Episode, downloadPodcastEpisode) 2026-08-23 00:26:14 -05:00
owen fce44a2ffd Add real podcast subsystem: RSS feed refresh, bounded background downloads, restart recovery 2026-08-23 00:24:43 -05:00
owen 8d93bea384 Subsonic: user management endpoints (getUser, getUsers, createUser, updateUser, deleteUser, changePassword) with full permission model mapping 2026-08-23 00:22:44 -05:00
owen d92a25b141 Subsonic: internet radio, chat, bookmarks, play queue, scanner status endpoints 2026-08-23 00:21:13 -05:00
owen c6e0131984 Subsonic: sharing (getShares, createShare, updateShare, deleteShare) plus real public share web pages and stream route 2026-08-23 00:18:51 -05:00
owen b77ccd242a Subsonic: annotation endpoints (star, unstar, setRating, scrobble) 2026-08-23 00:15:58 -05:00
owen c7b472ab99 Subsonic: media retrieval endpoints (stream, download, getCoverArt, getLyrics, getAvatar, hls, getCaptions) with real transcoding, embedded lyrics extraction, and folder permission enforcement 2026-08-23 00:15:00 -05:00
owen b6ec06f272 Add real ffmpeg-backed transcoding subsystem (bounded concurrency, streaming, HLS segmenting) 2026-08-23 00:10:55 -05:00
owen 6e2b875eaa Subsonic: playlist endpoints (getPlaylists, getPlaylist, createPlaylist, updatePlaylist, deletePlaylist) 2026-08-23 00:09:36 -05:00
owen a297454065 Subsonic: album/song lists (getAlbumList/2, getRandomSongs, getSongsByGenre, getNowPlaying, getStarred/2) and search (search, search2, search3) 2026-08-23 00:08:06 -05:00
owen f40a011c46 Subsonic: browsing endpoints (getMusicFolders, getIndexes, getMusicDirectory, getGenres, getArtists/Artist, getAlbum, getSong, getVideos/VideoInfo, getArtistInfo/2, getAlbumInfo/2, getSimilarSongs/2, getTopSongs) 2026-08-23 00:06:08 -05:00
owen b5e2bf01e2 Phase 2: Subsonic REST API framework (auth, response formatting, error handling, routing) plus user permission model 2026-08-22 23:58:54 -05:00
owen f81c8704a5 go mod tidy 2026-08-22 23:45:46 -05:00
owen 89e46bf539 Fix open-redirect via next parameter, remove dead code 2026-08-22 23:45:39 -05:00
owen b4b1ba8470 Add Docker/systemd deployment, documentation, extauth logout URL wiring 2026-08-22 23:44:46 -05:00
owen 40e1cfb630 Add web-layer route/auth tests 2026-08-22 23:42:52 -05:00
owen e0bd8bc3cb Web UI: setup wizard, auth pages, library browsing, player, admin, streaming, cover art 2026-08-22 23:42:09 -05:00
owen aa29f13846 Streaming with range requests and path safety, cover art discovery/resize cache 2026-08-22 23:33:00 -05:00
owen 49dbee617a Library indexing and filesystem scanner with incremental rescans 2026-08-22 23:31:17 -05:00
owen d4ea7a4ca9 Foundation: config, schema/migrations, auth, stable IDs, metadata probing 2026-08-22 23:29:16 -05:00