Version 1.2.0.0
What's Changed
New Features
-
Get max available items for each collection download (Resolves #32)
There are multiple (nested) collections of items that can be downloaded.
An album and a playlist have a collection of tracks and an artist and label have a collection of albums.
In previous versions, for each type of collection, only 500 items were fetched and downloaded.
Now for each type of collection, the maximum number of items that can be requested from the Qobuz API is retrieved for download.
This means:- Get max number of tracks per album allowed by API
- Get max number of tracks per playlist allowed by API
- Get max number of albums per artist allowed by API
- Get max number of albums per label allowed by API
- Get max number of tracks from favorites allowed by API
- Get max number of albums from favorites allowed by API
- Get max number of artists from favorites allowed by API
At the moment of this release, the maxima seem to be capped server-side at 10000 items.
-
After downloading a playlist, a .m3u8 file is created (Resolves #33)
When a playlist is downloaded, a playlist file
<PlaylistName>.m3u8
is created in the playlist root folder. This playlist file allows playback of the tracks in their original order.
A.m3u8
file is used because the UTF-8 encoding seems to offer maximum compatibility.
Bugfix / Improvement
-
Support 2 types of tracklist delivery by API for playlists
Sigh... Technical API stuff, but will add it here for reference.
Turns out the Qobuz API can return 2 different object types for the Playlist track_ids field:- track_ids can be a list of numbers in JSON (most common)
e.g.:track_ids":[19512577, 36681027]
Example playlist: https://play.qobuz.com/playlist/5887115 - track_ids can also be a list of string:number combination in JSON
e.g.:track_ids":{"0":63353139,"1":53197054,"2":53207301}
Example playlist: https://play.qobuz.com/playlist/14888891
This has now been solved in the latest release of QobuzApiSharp and both types of playlists are correctly parsed and downloaded.
- track_ids can be a list of numbers in JSON (most common)