Releases: sigma67/ytmusicapi
Releases · sigma67/ytmusicapi
v0.20.0
v0.20.0 to ring in the new year! A new release with many bugfixes and contributions from the community. Happy new year to all!
Features ✨
- localization:
zh_CN
is now supported for Chinese language support. Thanks @BruceZhang1993 ! (#244) duration_seconds
is now provided as an additional field for tracks with aduration
key. It is equivalent to theduration
key parsed to an integer value in seconds. For albums and playlists, the top levelduration_seconds
key contains the sum of the durations of all songs in seconds
Fixes 🐞
- header keys are now case insensitive, this should prevent some issues during setup
- authuser defined in headers json is now used when uploading a song (#241, thanks @hibby50 )
get_watch_playlist
: fix for albums with many titles, which now no longer throw an error during continuations- fixed special playlists like the recap playlist (#243, thanks @kenbier )
isExplicit
key should now always be parsed correctly, even with localization on- requests session is now also used for
get
requests, which avoids stalling on initialization (#240) get_history
now correctly raises an exception if a user's watch history is disabled
v0.19.5
Fixes 🐞
search
: fixed error if result thumbnail is missingget_watch_playlist
: fixed results if only videoid is provided. Only a single result was being returned, now the video's radio playlist parameter is being passed by defaultget_library_playlists
: playlistcount
variable is now returned
v0.19.4
Changes 🛠
- added a request timeout of 30s to the default session. Refer to the documentation for how to adjust this timeout: https://ytmusicapi.readthedocs.io/en/latest/reference.html#ytmusicapi.YTMusic.__init__
search
: addedcategory
property to search results, which indicates the shelf that the result is a part of. Can be used to identify "top result" type search results
Fixes 🐞
- some housekeeping, removed some deprecated code
v0.19.3
v0.19.2
v0.19.1
v0.19.0
Features ✨
search
: Support the new library search that was rolled out globally this week. For this purpose, a newscope
parameter was introduced forsearch
. It can takeuploads
orlibrary
values depending on the alternative search scope intended. Consequentially,uploads
is no longer passed using thefilter
argument. Thefilter
argument can be used without a scope (global YouTube Music catalogue search, as previously), or with the new library search. All existing filters work with the library search except the videos filter, as you cannot add videos to your library (only to liked playlist)get_charts
: get latest chart data from YouTube Music. This further contributes to ytmusicapi's implementation of the Explore tab in YouTube Music, after the moods and genres implementation in 0.18.0. The function retrieves all data shown on the/charts
page and takes a country code as parameter, orZZ
for global charts.
Changes ⚒
- BREAKING: to improve consistency across the project, the key
artists
is now used whenever a list of artists with (name,id) dictionary is provided (instead ofartist
). This affectsget_album
,get_library_upload_songs
,get_library_upload_album
,get_library_upload_artist
. See #215
Fixes 🐞
get_library_upload_albums
: a key in the data structure was changed in a recent YouTube update, the function should now work again without issue
v0.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_genresget_mood_playlists
: Fetch the playlists offered for a specific mood/genre returned byget_mood_categories
.
Fixes 🐞
- updated
setup
behavior to not include bad headers that might corrupt requests (#199)
v0.17.3
Fixes 🐞
- added
get_signatureTimestamp
: can be used to retrieve the current signatureTimestamp for correct streaming links fromget_song
. (thanks @impliedchaos )
v0.17.2
Fixes 🐞
get_song
: added optionalsignatureTimestamp
parameter. This parameter is needed to get correct streaming links in thestreamingData
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 thesignatureTimestamp
from YouTube and provide it as a parameter. For more information on how to retrieve it, see here: #196 (comment)
Thanks to @KoljaWindeler, @impliedchaos and @Simo for helping debug this issue