Releases: shazamio/ShazamIO
upd: Pydantic2, >= Python3.10
What's Changed
- Update pydantic by @danielamar101 in #124
New Contributors
- @danielamar101 made their first contribution in #124
Full Changelog: 0.6.0...0.7.0
Fix top tracks logic, fix tests, small code refactoring.
Shazam has changed the contract for obtaining top songs:
Top tracks in country by genre
Top tracks in country
Top tracks in city
Top tracks in world by genre
Top tracks in world
We managed to maintain this functionality, but the format of the responses has changed, as have the response models! Please make corrections, the data has changed significantly!!!
Added playlist and playlists methods for Serialize.
Minor fixes, corrected pydantic models, corrected song recognition test, because for some reason the song from dora.ogg disappeared from shazam (???).
Fix retry logic
It looks like the current timeout time is not enough, our end up in max attempts + max timeout 30 seconds and after 429 error.
A fix has been added to increase this max_timeout to 60 seconds.
And also if 60 seconds is not enough for you, you can override the wait timeout.
shazam = Shazam(
http_client=HTTPClient(
retry_options=ExponentialRetry(attempts=12, max_timeout=204.8, statuses={500, 502, 503, 504, 429}),
),
)
Big update 0.5.0!
-
All complex logic for song recognition has been moved to RUST (shazamio_core) (used pyo3).
- Wheel: windows [x86_64, amd64]
- Wheel: macos [x86_64, aarch64]
- Wheel: manylinux [x86_64, aarch64]
-
No more code blocking, true asynchronous code. See: #76 (comment)
-
recognize_song deprecated.
-
Added interface for custom HTTPClient.
-
Added the ability to use a proxy.
-
Added retry exponential.
-
Code refactoring.
-
The foundation has been laid to add logging to the project.
-
Added random device for recognize requests, previously there was only android.
A huge amount of time and effort was spent on assembling the kernel, since this was the first time I wrote CI to build pyo3 with manylinux.
shazamio-core is temporarily not in the organization, because I have exhausted the limit of 2000 minutes, next month it will be added to the organization.
The core is compiled for [windows, macos, manylinux x64, manylinux aarch64]
Tested:
windows
macos
manylinux
There is no way to check: aarch64, but the wheels are built for it.
0.4.0.1
0.4.0.0
0.3.1.1 - FIX CVE-2022-40897
Fix CVE-2022-40897