Ytmusicapi

Latest version: v1.7.1

Safety actively analyzes 629765 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 13

0.18.0

Features ✨
---------
**Moods & genres** feature contributed by impliedchaos (205 , 210 ). See the two new methods below.
- `get_mood_categories`: Fetch “Moods & Genres” categories from YouTube Music. Results are clustered by category. Equivalent to what's shown here: https://music.youtube.com/moods_and_genres
- `get_mood_playlists`: Fetch the playlists offered for a specific mood/genre returned by `get_mood_categories`.

Fixes 🐞
-----------
- updated `setup` behavior to not include bad headers that might corrupt requests (199)

0.17.3

Fixes 🐞
-----------
- added `get_signatureTimestamp`: can be used to retrieve the current signatureTimestamp for correct streaming links from `get_song`. (thanks impliedchaos )

0.17.2

Fixes 🐞
-----------
- `get_song`: added optional `signatureTimestamp` parameter. This parameter is needed to get correct streaming links in the `streamingData` key. The correct value of this parameter changes daily. If not provided, a default value is used, which is usually correct but could be wrong for some hours late in the day. Therefore, if you notice issues with the streaming links, retrieve the `signatureTimestamp` from YouTube and provide it as a parameter. For more information on how to retrieve it, see here: https://github.com/sigma67/ytmusicapi/issues/196#issuecomment-846157100

Thanks to KoljaWindeler, impliedchaos and simo for helping debug this issue

0.17.1

Fixes 🐞
-----------
- `get_streaming_data` was merged into `get_song` (no longer available)
- `get_song` now uses a different YouTube Music endpoint due to a server side change. As a result, different data is returned. Please check the documentation [here](https://ytmusicapi.readthedocs.io/en/latest/reference.html#ytmusicapi.YTMusic.get_song)

0.17.0

Features ✨
---------
- `get_playlist_suggestions`: for playlists with less than 100 items, YouTube Music suggests additional songs to add to the playlist. You can now retrieve these suggestions with ytmusicapi by first calling `get_playlist`, and passing the `suggestions_token` to `get_playlist_suggestions`
- `search`: now supports the recently introduced featured_playlists, community_playlists filters

Changes ⚒
-----------
- **POSSIBLY BREAKING** `setup` procedure has changed. Instead of taking only one or two headers from the user input, now most of the user headers are used for actual requests. This should hopefully make requests match browser requests more closely
- `init`: `x-goog-visitor-id` header is now retrieved dynamically on instantiation if it is not provided in the authentication headers. Therefore, to avoid an extra request on initialization, you should include the `x-goog-visitor-id` in your `headers_auth.json`. The purpose of this change was that previously a fixed id was used for the entire project, which would cause errors when that id was no longer recognized as valid by Google

Fixes 🐞
-----------
- `get_artist`, `get_user`: fail silently if playlistId or thumbnails are missing for video
- `get_library_artists`, `get_library_subscriptions`: fix error if artist thumbnail is missing
- `get_watch_playlist`: some tracks were wrapped and therefore missing in the returned results. this is now fixed
- `search`: make uploads search more error proof (193)
- `search`: fix missing duration for unavailable videos

0.16.0

Features ✨
---------
- `get_album_browse_id`: get an album's `browseId` based on it's `audioPlaylistId` (`OLAK...`). This is based on the redirect that happens when you open a link in YouTube Music with an `audioPlaylistId`

Changes ⚒
-----------
- **BREAKING** `get_album` endpoint has changed for some users due to an ongoing YouTube beta (173). With this release, `get_album` will always work, but the format of the data might look different from the documentation if you have the update. Please check if this applies to your account. The documentation will be updated for the new format once the beta is released to all users. For reference, an example of the new format is provided below. A big thanks to jake-g for providing access to his account to test this update ahead of time.

Fixes 🐞
---------
- `search`: fixed a crash if the playlist author was missing for a playlist
- `search`: for songs with artists without browseId, these artists are now also returned in the result. This also applies to `get_watch_playlist`
- `get_artist_albums`: fixed an exception for singles missing a release year (188, thanks grray )
- `get_artist`: fix crash if related artist is missing subscriber number
- fixed `feedbackTokens`, which were incorrectly `None` when a song was already in the library. Now the correct tokens are returned regardless of the current library status


***************
**New `get_album` format**


json
{
"title": "Revival",
"type": "Album",
"thumbnails": [
{
"url": "https://lh3.googleusercontent.com/b-euORTq-_MSzc3SyI0QOjLqnCBJbWuMmH1YlyJKAVvJfOpPqv3bFH-KSDoQwV9e8Xey1X2NRo9xZ2U=w60-h60-l90-rj",
"width": 60,
"height": 60
}
],
"description": "Revival is the ninth studio ...",
"artists": [
{
"name": "Eminem",
"id": "UCedvOgsKFzcK3hA5taf3KoQ"
}
],
"year": "2017",
"trackCount": 19,
"duration": "1 hour, 17 minutes",
"audioPlaylistId": "OLAK5uy_nMr9h2VlS-2PULNz3M3XVXQj_P3C2bqaY",
"tracks": [
{
"videoId": "iKLU7z_xdYQ",
"title": "Walk On Water (feat. Beyoncé)",
"artists": [
{
"name": "Eminem",
"id": "UCedvOgsKFzcK3hA5taf3KoQ"
}
],
"album": null,
"likeStatus": "INDIFFERENT",
"thumbnails": null,
"isAvailable": true,
"isExplicit": true,
"duration": "5:03",
"feedbackTokens": {
"add": "AB9zfpJC...",
"remove": "AB9zfpJT..."
}
}
]
}

Page 7 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.