nightly-b13a4fa7-ls272
Pre-releaseCI Report:
https://ci-tests.linuxserver.io/linuxserver/beets/nightly-b13a4fa7-ls272/index.html
LinuxServer Changes:
No changes
Remote Changes:
Tidal Metadata Plugin (#6520)
Description
This PR introduces tidal as metadatasource. It add both an minimal api
layer and the typical metadata source plugin capabilities.
Details
The implementation provides a small API layer consisting of TidalAPI
for high-level album and track fetching, and TidalSession which
extends requests.Session with token authentication, automatic rate
limiting (~4 req/s via RateLimitAdapter), and pagination resolution
following the JSON:API spec.
Authentication is handled through an OAuth2 PKCE flow accessible via
beet tidal --auth, with automatic token refresh when the access token
expires.
Metadata parsing handles Tidal's JSON:API response format, extracting
album and track information including ISO 8601 duration conversion,
artist relationships, and copyright/label data.
Input wanted
The API layer currently lacks comprehensive test coverage. Setting up
proper tests would require either mocking all outgoing requests or
creating a dedicated test token (which necessitates an account and might
require read/write to github secrets).
Are we comfortable with the current approach of unit testing the plugin
itself while mocking all requests?
TODOs
- Documentation
-
candidateanditem_candidateslookup - It should be possible to optimize batched lookups
- Add tests for candidates and item_candidates
- Implement batching for more than 20 filters
Refs
thanks to @jcjordyn130 for his initial implementations in #5637 and
#4641