Skip to content

nightly-b13a4fa7-ls272

Pre-release
Pre-release

Choose a tag to compare

@LinuxServer-CI LinuxServer-CI released this 20 Apr 20:40
· 2 commits to nightly since this release
66bf953

CI 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
  • candidate and item_candidates lookup
  • 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