BeatPrints
BeatPrints copied to clipboard
feature: Add support for YouTube Music API
This PR aims to add support for the YT Music API.
Example track poster created from the YT Music API
(In this screenshot, the artist's name goes over the icons, but I believe it's not relevant to this PR)
Example album poster created from the YT Music API
BREAKING CHANGES This PR brings multiple breaking changes:
- The client is now interrogated through the class
ApiClient, which contains either aYtMusicofSpotifyinstance. - The Spotify API credentials are now optional, as the default client is the
YTMusicone. - The CLI will switch to the Spotify API client if the credentials are present in the config.
LIMITATIONS
- The label information is not stored in YouTube Music, instead it gets replaced by the artist.
- The release date is not always correct, and can sometimes be the video's upload date.
- I would have preferred the YT Music logo's color replacement to be inverted, but I somehow can't get it to work properly.
WHAT'S LEFT
- ~~Update the docs, especially for the breaking changes~~
IDEAS
- We could add a third "API" client to get metadata from id3 tags (suggested by u/AccForTooRiskyStuff on this Reddit thread
- Add a third poster type for a user's tracklist (their playlists, their favorite album, or whatever)
I'm really happy with how the results turned out! I’ll be reviewing the updates after June 10th, as I got some events to complete :>