Commit Graph

173 Commits

Author SHA1 Message Date
2bb754b245 Fix: Pass through full query string for browse requests
Recently added, recently played, and frequently played sections use
different query parameters (SortBy, SortOrder, Filters, etc) that we
weren't forwarding. Now we pass the complete query string to Jellyfin.
2026-01-30 02:15:48 -05:00
8d8c0892a2 Fix: Handle decimal duration values from LRCLIB API
LRCLIB returns duration as a decimal/float, not int. Convert to int using Math.Round.
2026-01-30 02:13:10 -05:00
e12851e9ca Fix: Handle nullable Duration in lyrics endpoint 2026-01-30 02:10:25 -05:00
f8969bea8d Add LRCLIB lyrics integration for Jellyfin
- Create LrclibService to fetch lyrics from lrclib.net API
- Add LyricsInfo model for lyrics data
- Add /Audio/{itemId}/Lyrics and /Items/{itemId}/Lyrics endpoints
- Support both local and external songs
- Cache lyrics for 30 days in Redis
- Return lyrics in Jellyfin format with synced/plain lyrics
2026-01-30 02:09:27 -05:00
aebb1c14dd Fix multiple Jellyfin proxy issues and improvements
- Fix playback progress reporting by wrapping POST bodies in required field names
- Fix cache cleanup by updating last access time when streaming files
- Fix Artists/{id}/Similar endpoint proxying to correct Jellyfin endpoint
- Add ' - SW' suffix to external albums and artists for better identification
- Register SquidWTFSettings configuration to enable quality settings
- Remove unused code and improve debugging logs
2026-01-30 01:58:10 -05:00
ceaa17f018 Fix: Register SquidWTFSettings configuration in Program.cs
The SquidWTF quality setting from .env was not being loaded because
SquidWTFSettings wasn't registered with the DI container.
2026-01-30 00:50:34 -05:00
9aa7ceb138 Remove unused _preferredQuality field from SquidWTFDownloadService
The quality setting is already being used correctly via _squidwtfSettings.Quality
2026-01-30 00:49:41 -05:00
72b1ebc2eb Fix: Wrap playback request bodies in required field names for Jellyfin
Jellyfin expects playback endpoints to have bodies wrapped:
- /Sessions/Playing -> {"playbackStartInfo": {...}}
- /Sessions/Playing/Progress -> {"playbackProgressInfo": {...}}
- /Sessions/Playing/Stopped -> {"playbackStopInfo": {...}}

This fixes the 'field is required' validation errors.
2026-01-30 00:48:38 -05:00
48a0351862 Improve POST body debugging for playback endpoints
- Better logging to show what client sends vs what we forward
- Log all headers when body is empty to help diagnose issues
2026-01-30 00:45:16 -05:00
4b95f9910c Fix: Ensure POST requests always send body content to Jellyfin
- Always send body content for POST requests, even if empty (send '{}')
- Update TODO.md to mark tasks 2 and 3 as done
- Improve logging for POST body debugging
2026-01-30 00:44:39 -05:00
80424a867d Fix: Update last access time for cached files to enable proper cleanup 2026-01-30 00:41:17 -05:00
4afd769602 Fix: Proxy Artists/{id}/Similar to correct Jellyfin endpoint 2026-01-30 00:29:56 -05:00
b47a5f9063 Add ' - SW' suffix to external albums and artists
Makes it easy to distinguish external content from local Jellyfin library
2026-01-30 00:21:37 -05:00
457a5b7582 Fix reauthentication and artist song counts
- Fixed reauthentication: Pass through 401 responses to client instead of hiding them with empty results
- Fixed artist song counts: Artists now show correct song count instead of total library count (1290)
- Fixed external artist Similar endpoint to prevent errors
- Improved auth header forwarding with case-insensitive detection
2026-01-30 00:09:44 -05:00
e10b4408ba Forgot to pass artistID for artist searching 2026-01-29 18:52:27 -05:00
28d14a0006 remove changes patch 2026-01-29 17:40:26 -05:00
e18840cddf feat: Fork octo-fiestarr as allstarr with Jellyfin proxy improvements
Major changes:
- Rename project from octo-fiesta to allstarr
- Add Jellyfin proxy support alongside Subsonic/Navidrome
- Implement fuzzy search with relevance scoring and Levenshtein distance
- Add POST body logging for debugging playback progress issues
- Separate local and external artists in search results
- Add +5 score boost for external results to prioritize larger catalog(probably gonna reverse it)
- Create FuzzyMatcher utility for intelligent search result scoring
- Add ConvertPlaylistToJellyfinItem method for playlist support
- Rename keys folder to apis and update gitignore
- Filter search results by relevance score (>= 40)
- Add Redis caching support with configurable settings
- Update environment configuration with backend selection
- Improve external provider integration (SquidWTF, Deezer, Qobuz)
- Add tests for all services
2026-01-29 17:36:53 -05:00
Branson
ed9cec1cde Update SquidWTF quality and storage settings
Set default quality and storage mode for SquidWTF.
2026-01-17 11:29:05 -05:00
Branson
d9c1086564 Rename service from octo-fiesta to octo-fiestarr 2026-01-17 11:19:58 -05:00
Branson
9563eb8868 Revise README with updated configuration options
Updated configuration details for SquidWTF, Deezer, and Qobuz. Changed default SUBSONIC_URL and added new settings for audio quality and storage mode.
2026-01-17 11:12:37 -05:00
Branson
2e08b4c562 Update environment variables in docker-compose.yml
Removed Deezer ARL tokens and quality settings, added SquidWTF quality setting.
2026-01-17 11:07:21 -05:00
Branson
b1a0718acc Add SquidWTF configuration to .env.example
Added configuration options for SquidWTF service.
2026-01-17 11:05:19 -05:00
Branson
bd8971835e Update MUSIC_SERVICE option in .env.example
Make SquidWTF default option
2026-01-17 11:03:01 -05:00
Branson
aa8fdb4aca Update README
Updated README to reflect the new name 'Octo-Fiestarr' and added SquidWTF support details.
2026-01-17 11:01:29 -05:00
Branson
e04c254f04 Update docker-compose.yml 2026-01-17 08:35:19 -05:00
Branson
17a991a4fd Update octo-fiesta image reference 2026-01-16 20:33:46 -05:00
Branson
488cd64d25 Fix syntax error 2026-01-16 19:40:45 -05:00
Branson
f931a86129 Add new playlist search/parsing implementations from upstream for SquidWTF 2026-01-16 19:40:11 -05:00
Branson
8c67f4acce Update constructor with new parameter from upstream 2026-01-16 19:39:16 -05:00
bransoned
bfcb78b0b4 fix: merge conflicts and upstream changes merged 2026-01-16 22:45:04 +00:00
Vickes
4fde5a6db4 feat: add HTTP Range header support for iOS streaming clients (#48) 2026-01-15 23:47:03 +01:00
V1ck3s
1bf3e17d78 docs: add external playlists feature documentation 2026-01-15 23:32:31 +01:00
V1ck3s
e8e385b770 fix: resolve circular dependency and fix failing tests 2026-01-15 23:32:31 +01:00
V1ck3s
ebe6e90f39 feat: playlist implementation 2026-01-15 23:32:31 +01:00
Branson
0f93862cc2 Fix syntax error 2026-01-13 17:10:29 -05:00
bransoned
ce9689daa2 Change repeated array allocation into predefined constant 2026-01-13 17:10:11 -05:00
V1ck3s
d31a380176 fix: add HTTP Range header forwarding for iOS clients 2026-01-13 17:09:56 -05:00
Branson
c4e62cdeab Fix syntax error 2026-01-13 16:56:51 -05:00
bransoned
183f59993f Change repeated array allocation into predefined constant 2026-01-13 21:39:42 +00:00
bransoned
8a66db915d Remove debug prints, fix Artist search, implement GetArtistAlbumsAsync 2026-01-12 16:10:02 -05:00
V1ck3s
2c5daeefed docs: add Narjo to iOS compatible clients section 2026-01-12 19:50:46 +01:00
V1ck3s
c8c4fd8322 fix: add HTTP Range header forwarding for iOS clients 2026-01-12 19:35:29 +01:00
V1ck3s
7a08f15523 fix: prevent duplicate downloads from concurrent stream requests 2026-01-12 18:43:47 +01:00
V1ck3s
1d4c46b4f3 fix: use album artist for folder organization in Album download mode 2026-01-12 18:43:47 +01:00
V1ck3s
62246cc48f fix: prevent duplicate downloads in album mode 2026-01-12 18:43:47 +01:00
bransoned
428b7f06c4 #31 (upstream) Add http context handling to tests 2026-01-12 01:30:18 +00:00
bransoned
ad4a3af41e #31 (upstream) Fix iOS client local streaming issues 2026-01-12 01:30:14 +00:00
bransoned
bdac8ac132 #31 (upstream) Add http context handling to tests 2026-01-11 19:03:56 -05:00
bransoned
7ed4212b53 Merge branch 'dev' of github.com:bransoned/octo-fiesta into dev 2026-01-11 18:48:25 -05:00
bransoned
12598d17e2 #31 (upstream) Fix iOS client local streaming issues 2026-01-11 18:47:13 -05:00