Aether plays the audio files already present on the disk. Starting from a playlist — exported from a Spotify archive, read from an M3U file or given as a link — it compares the tracks against the local library and retrieves the missing ones from the free-access catalogues: Internet Archive and Audius. Since 2.4.0 those catalogues can also be searched directly, a phrase at a time, from Explore, and a track found there can be listened to without ever being written to disk. Every track acquired keeps the licence of the source it came from. Tracks unavailable in any free catalogue are collected in a purchase list, with links to the shops that pay the authors.
The screens on this page are a reproduction of the interface. The figures are those of the library used for the screenshots in the README: 935 albums, 1 465 tracks.
{{ p.b }}
On Audius the permission is determined by the artist for each individual track. There are three distinct controls: the download switch and two gates, which can make access conditional on following the artist or on holding a token. Aether checks all three and considers permission granted only in the absence of prohibitions.
The module is implemented and covered by tests, but disabled in this version. The cause is not technical: the API is free for non-commercial uses only, and the terms define commercial use as «any monetary compensation». The module is already arranged for streaming playback alone — the terms prohibit caching and offline access — through aether-net::FlussoHttp, which plays a track without writing it to disk.
No free-access source distributes the commercial catalogue. This is not a technical limit that can be worked around: it is the reason other programs carry out operations not permitted by the terms of the services they use. Aether covers what it can through lawful channels and, for the rest of the catalogue, indicates where to buy it.
{{ e.b }}
A skin is a validated data document, not a stylesheet: 73 tokens, 101 named parts, 12 effects with a declared cost and, since 3.0.0, motion on any part — ten states, five triggers, keyframes, and loops the compiler itself stops under reduced motion. The program parses it, reports its warnings and compiles it to deterministic CSS.
{{ p.b }}
Two questions require a written clarification before publication: whether donations constitute commercial use for the purposes of Jamendo's terms, and of the Deezer API used for metadata. In the absence of an answer the Jamendo module stays behind a Cargo feature that can be switched off.
{{ l.b }}