Releases: sigma67/ytmusicapi
v0.11.0
Features ✨
- support continuations for
search
andsearch_uploads
with newlimit
parameter (#95, thanks @natumbri ) - add option to ignore spelling correction for
search
(#91, thanks @osum4est ) - added sort order option to library functions
get_library_songs
,get_library_albums
,get_library_artists
,get_library_subscriptions
,get_library_upload_songs
,get_library_upload_albums
,get_library_upload_artists
(#102, thanks @ide-an ) - new
get_streaming_data
call to get authenticated AAC stream data for subscribed users (#108, thanks @corrmaan )
Fixes 🐞
- Small documentation fix for
get_library_artists
v0.10.2
Features ✨
- added isAvailable flag for songs in playlists (thanks @czifumasa )
- added duration for uploaded items
Changes 🛠
- The origin header is now used instead of x-origin. This should not break existing setups
- 3PAPISID is now used instead of SAPISID for authorization, assuming that they are always equal. If not, please create an issue
- added X-Goog-AuthUser to required headers (for users with multiple Google accounts)
Fixes 🐞
- fixed uploads search (server-side changes)
- updated default headers to fix get_artist_albums and get_user_playlists for non-authenticated users
- remove_playlist_items: invalid items are now removed from the provided list
- fixed possible key error in get_continuations if YouTube does not provide data as requested
v0.10.1
Changes ⚒
- potentially breaking: changed
get_library_albums
returned artists key to dict with name/id
Fixes 🐞
- update
get_library_albums
parsing to new YT Web display format - the values now correspond to the keys get_playlist
: parse setVideoId for unplayable items (allows removing unplayable items from playlists)
v0.10.0
Features ✨
- validated requests are now available for
get_library_songs
(#52, thanks @czifumasa ). This opt-in behavior allows requests to be repeated up to 3 times since the API is often unreliable and provides less than the expected 25 items search
now supports an "uploads" filter to search your uploads- added support for Python's with statements (@alexmercerind). Usage:
from ytmusicapi import YTMusic
with YTMusic() as ytmusic:
print(ytmusic.search('NoCopyrightSounds'))
- (since 0.9.2) new method
remove_history_items
allows removing items from history - (since 0.9.2)
add_playlist_items
now supports source playlists, duplicate check
Fixes 🐞
get_library_songs
,get_library_upload_songs
,get_library_artists
now return an empty list if the library is empty (instead of an error)- fixed an error that would occur when continuation_contents were missing from a continuation (sometimes occurs for
get_library_songs
) - unauthenticated requests to
get_album
now always contain all tracks (#75, thanks @alexmercerind ) - using
upload_song
no longer pollutes the YTMusic instance headers - it should be fine now to reuse the instance after uploading a song (#79) - potentially breaking: fixed
get_watch_playlist
, which was broken by server-side lyrics update
v0.9.2
Features ✨
add_playlist_items
now supports source playlists, duplicate check- new method
remove_history_items
: Remove items from your account's play history (must be retrieved withget_history
before)
Fixes 🐞
- Fix
watch_playlist
byline argument - broken by YouTube Music update (#54) - Fix
get_song
if release/production missing - Local setup fixed on MacOS (en_US.UTF-8)
- lowercase is used when parsing headers for better compability with users copying headers from Chromium
v0.9.1
This release fixes a packaging issue with v0.9.0 and makes the package usable again. Below the changes for the 0.9.0 release.
Features ✨
get_watch_playlist
,get_watch_playlist_shuffle
: You can now get watch playlists. Watch playlists are the the playlists of suggested songs that appear in YouTube Music when you press play on a songget_user
,get_user_playlists
: You can now get information about other users and their uploaded videos and playlists- Song metadata is now available via
get_song
- Additional languages are supported since v0.8.1 (fr,it,es,de,ja)
Changes ⚒
- Potentially breaking:
get_playlist
now returns a dictionary instead of a string for theauthor
key. It contain's the author's channel id along and the name it previously provided in separate keysid
andname
Fixes 🐞
- Many fixes for
get_artist
to work with more artists (thanks @grray )- Fix exception when album has no year (on artist page)
- Fix exception when artist has no thumbnail
- Fix for albums without publication year
- Fix for artist page, if it has no buttons
- Fixed: KeyError when artist doesn't have subscribers count
- Fix continuations to always retrieve at least the specified limit, even if YTMusic returns less than per_page. The get_library_songs endpoint is currently unreliable on YouTube's end, so the behavior of continuations was changed to always fetch more than
limit
songs, even if the API returns less than expected - User-provided headers are no longer rejected. Previously only the cookie would be kept, which meant users using a non-primary Google Account with YouTube Music were unable to use the API (#46)
v0.9.0
v0.8.1
Some quality of life features and fixes for playlist interaction are featured in this minor release.
Features ✨
- Proxy support (thanks @OzymandiasTheGreat )
- ytmusicapi now support localization! You can get song data in one of 6 languages: en, de, fr, it, es, ja
Fixes 🐞
v0.8.0
Features ✨
-
Support for getting private artists and albums:
get_library_upload_artist
,get_library_upload_album
-
Like status is now reported for tracks, when it is provided by YouTube Music. This includes the following methods:
get_history
,get_library_songs
,get_playlist
get_artist
,get_album
get_library_upload_songs
,get_library_upload_artist
,get_library_upload_album
-
Thumbnails are now provided for tracks, albums and artists where available. This applies to the same methods as for like status above and additionally
search
get_library_upload_artists
,get_library_upload_albums
-
collaborative playlists are now supported (thanks @nforro )
-
delete uploaded albums in addition to individual songs with
delete_upload_entity
Changes ⚒
- BREAKING
delete_uploaded_song
renamed todelete_upload_entity
to reflect new behavior get_uploaded_songs
now returns ids for uploaded song artist/album, orNone
if not available- song and view counts are now returned as
int
(get_artist
,get_playlist
) - raw headers can be passed as a string with linebreaks to the
setup
function with the new optional parameterheaders_raw
Fixes 🐞
- Fix key error for
get_artist
caused by server-side removal of video title link - Fix
get_artist
for artists without description or with few songs - Fix
get_playlist
for playlists with more than 1,000 songs - Fixed some errors for unplayable playlist items
v0.7.1
Some quality of life features and fixes for playlist interaction are featured in this minor release.
Features ✨
create_playlist
supports video_ids and source_playlist parametersedit_playlist
allows moving playlist items (thanks @nforro )edit_playlist
allows adding a playlist to another playlist
Fixes 🐞
create_playlist
now returns the full response if there was an error (i.e. the quota may be exhausted, check #19)get_playlist
no longer returns deleted songsget_playlist
no longer throws an error if playlist has no description (thanks @hematogender )