Releases: kipavy/spotube-plugin-hifi-tidal
Releases · kipavy/spotube-plugin-hifi-tidal
Release list
1.0.4
Replace release artifacts on re-run, and ship 1.0.4 Re-running the build for an existing tag left the old plugin.smplug in place, so the corrected 1.0.3 package never reached the release even though CI built it correctly. Set replacesArtifacts so a rebuild overwrites, and cut 1.0.4 with the bytecode actually included.
1.0.2
Declare HttpResponse so .then callbacks resolve at runtime matches() threw "Undefined identifier [HttpResponse]" on the first request. The runtime resolves the type of every .then callback parameter against the enclosing scope, so HttpResponse has to be declared in any file that defines one — even though it is never referenced by name. Compiling does not catch this, which is why CI was green. Both shipping reference plugins carry the same seemingly-unused declaration. Also fixes the identical latent failure in core.checkUpdate.
1.0.1
List the mp4 preset first so the default selection resolves Spotube's getStreamOfQuality filters sources to those whose container equals the selected preset's name and then reduces over them. An empty result throws instead of falling back, so advertising a container the instances never return makes every track fail silently. The instances currently serve AAC in mp4, so mp4 has to be index 0. flac stays listed for instances backed by a Hi-Fi tier account.
1.0.0
Add HiFi Tidal audio source plugin for Spotube Plays Tidal audio in Spotube through public hifi-api instances. - matches() searches /search/?s= and ranks an exact ISRC hit first, since Spotube passes the ISRC from the metadata provider and hifi-api returns one per result; that distinguishes remasters and radio edits which are otherwise identical by title - streams() decodes the base64 manifest /track/ returns, taking the URL from the vnd.tidal.bts variant and skipping the DASH variant an audio element cannot play - Endpoints are tried in order so a sleeping or account-blocked instance falls through to the next, with timeouts sized for free-tier cold starts The matching and manifest decoding were validated against the live instances before being ported to Hetu: ISRC-exact match ranked first and the resulting URL served real audio (HTTP 206, audio/mp4).