[GH-ISSUE #532] get_library_upload_artists method not returning all artists for uploaded songs #379

Closed
opened 2026-02-27 23:00:29 +03:00 by kerem · 1 comment
Owner

Originally created by @robtekky on GitHub (Jan 27, 2024).
Original GitHub issue: https://github.com/sigma67/ytmusicapi/issues/532

Describe the bug
The get_library_upload_artists method does not seem to be returning all artists for uploaded songs.
It seems it is considering the artist Zombies to be the same as The Zombies

To Reproduce
Steps to reproduce the behavior:

  1. In my case, I have two songs, each from a different artist (Zombies Vs The Zombies):
  • SONG 1: Time of the season (title), The Zombies (artist)
  • SONG 2: Groenlandia (title), Zombies (artist)
  1. When calling get_library_upload_artists, only the artists Zombies is included. See the "Additional context" provided for a python repl session showing the problem.

Additional context
Using the python repl:

In [20]: from ytmusicapi import YTMusic
In [21]: artists = client.get_library_upload_artists(limit=5000)
In [22]: len(artists)
Out[22]: 401
In [23]: songs = client.get_library_upload_songs(limit=5000)
In [24]: len(songs)
Out[24]: 975
In [25]: song1 = [s for s in songs if s['title'] == 'Time of the Season']
In [26]: song1
Out[26]:
[{'entityId': 't_po_XXX_____AQ',
  'videoId': 'k-xxx',
  'title': 'Time of the Season',
  'duration': '3:30',
  'duration_seconds': 210,
  'artists': [{'name': 'The Zombies',
    'id': 'FEmusic_library_privately_owned_artist_detaila_po_XXX'}],
  'album': {'name': 'Odessey and Oracle',
   'id': 'FEmusic_library_privately_owned_release_detailb_po_XXX'},
  'likeStatus': 'INDIFFERENT',
  'thumbnails': [{'url': 'https://i9.ytimg.com/vi_locker/k-bTHRp2UUk/locker.png?sqp=-xxx&rs=XXX__Ltg',
    'width': 60,
    'height': 60},
   {'url': 'https://i9.ytimg.com/vi_locker/k-bTHRp2UUk/locker.png?sqp=-xxx&rs=XXX',
    'width': 120,
    'height': 120}]}]
In [27]: song2 = [s for s in songs if s['title'] == 'Groenlandia']
In [28]: song2
Out[28]:
[{'entityId': 't_po_XXX',
  'videoId': 'xxxx',
  'title': 'Groenlandia',
  'duration': '3:46',
  'duration_seconds': 226,
  'artists': [{'name': 'Zombies',
    'id': 'FEmusic_library_privately_owned_artist_detaila_po_XXX'}],
  'album': {'name': 'La Edad De Oro Del Pop Español (1978-1990)',
   'id': 'FEmusic_library_privately_owned_release_detailb_po_XXX'},
  'likeStatus': 'INDIFFERENT',
  'thumbnails': [{'url': 'https://i9.ytimg.com/vi_locker/5NjOsq7kxiQ/locker.png?sqp=-xxx&rs=XXXX',
    'width': 60,
    'height': 60},
   {'url': 'https://i9.ytimg.com/vi_locker/5NjOsq7kxiQ/locker.png?sqp=-xxx&rs=XXX',
    'width': 120,
    'height': 120}]}]
In [29]: zombies_list = [a for a in artists if 'ombies' in a['artist']]
In [30]: zombies_list
Out[30]:
[{'browseId': 'FEmusic_library_privately_owned_artist_detaila_po_XXX',
  'artist': 'Zombies',
  'shuffleId': 'MLPAa_po_XXXX',
  'radioId': 'MLPAa_po_XXX',
  'subscribers': '2',
  'thumbnails': [{'url': 'https://i9.ytimg.com/vi_locker/5NjOsq7kxiQ/locker.png?sqp=-xxx&rs=XXX',
    'width': 60,
    'height': 60},
   {'url': 'https://i9.ytimg.com/vi_locker/5NjOsq7kxiQ/locker.png?sqp=-xxx&rs=XXX',
    'width': 120,
    'height': 120}]}]
In [31]: len(zombies_list)
Out[31]: 1
Originally created by @robtekky on GitHub (Jan 27, 2024). Original GitHub issue: https://github.com/sigma67/ytmusicapi/issues/532 **Describe the bug** The **get_library_upload_artists** method does not seem to be returning all artists for uploaded songs. It seems it is considering the artist _Zombies_ to be the same as _The Zombies_ **To Reproduce** Steps to reproduce the behavior: 1. In my case, I have two songs, each from a different artist (_Zombies_ Vs _The Zombies_): - SONG 1: **Time of the season** (title), **The Zombies** (artist) - SONG 2: **Groenlandia** (title), **Zombies** (artist) 2. When calling **get_library_upload_artists,** only the artists _Zombies_ is included. See the "Additional context" provided for a python repl session showing the problem. **Additional context** Using the python repl: ``` In [20]: from ytmusicapi import YTMusic In [21]: artists = client.get_library_upload_artists(limit=5000) In [22]: len(artists) Out[22]: 401 In [23]: songs = client.get_library_upload_songs(limit=5000) In [24]: len(songs) Out[24]: 975 In [25]: song1 = [s for s in songs if s['title'] == 'Time of the Season'] In [26]: song1 Out[26]: [{'entityId': 't_po_XXX_____AQ', 'videoId': 'k-xxx', 'title': 'Time of the Season', 'duration': '3:30', 'duration_seconds': 210, 'artists': [{'name': 'The Zombies', 'id': 'FEmusic_library_privately_owned_artist_detaila_po_XXX'}], 'album': {'name': 'Odessey and Oracle', 'id': 'FEmusic_library_privately_owned_release_detailb_po_XXX'}, 'likeStatus': 'INDIFFERENT', 'thumbnails': [{'url': 'https://i9.ytimg.com/vi_locker/k-bTHRp2UUk/locker.png?sqp=-xxx&rs=XXX__Ltg', 'width': 60, 'height': 60}, {'url': 'https://i9.ytimg.com/vi_locker/k-bTHRp2UUk/locker.png?sqp=-xxx&rs=XXX', 'width': 120, 'height': 120}]}] In [27]: song2 = [s for s in songs if s['title'] == 'Groenlandia'] In [28]: song2 Out[28]: [{'entityId': 't_po_XXX', 'videoId': 'xxxx', 'title': 'Groenlandia', 'duration': '3:46', 'duration_seconds': 226, 'artists': [{'name': 'Zombies', 'id': 'FEmusic_library_privately_owned_artist_detaila_po_XXX'}], 'album': {'name': 'La Edad De Oro Del Pop Español (1978-1990)', 'id': 'FEmusic_library_privately_owned_release_detailb_po_XXX'}, 'likeStatus': 'INDIFFERENT', 'thumbnails': [{'url': 'https://i9.ytimg.com/vi_locker/5NjOsq7kxiQ/locker.png?sqp=-xxx&rs=XXXX', 'width': 60, 'height': 60}, {'url': 'https://i9.ytimg.com/vi_locker/5NjOsq7kxiQ/locker.png?sqp=-xxx&rs=XXX', 'width': 120, 'height': 120}]}] In [29]: zombies_list = [a for a in artists if 'ombies' in a['artist']] In [30]: zombies_list Out[30]: [{'browseId': 'FEmusic_library_privately_owned_artist_detaila_po_XXX', 'artist': 'Zombies', 'shuffleId': 'MLPAa_po_XXXX', 'radioId': 'MLPAa_po_XXX', 'subscribers': '2', 'thumbnails': [{'url': 'https://i9.ytimg.com/vi_locker/5NjOsq7kxiQ/locker.png?sqp=-xxx&rs=XXX', 'width': 60, 'height': 60}, {'url': 'https://i9.ytimg.com/vi_locker/5NjOsq7kxiQ/locker.png?sqp=-xxx&rs=XXX', 'width': 120, 'height': 120}]}] In [31]: len(zombies_list) Out[31]: 1 ```
kerem 2026-02-27 23:00:29 +03:00
  • closed this issue
  • added the
    yt-error
    label
Author
Owner

@sigma67 commented on GitHub (Jan 27, 2024):

The data returned is what is shown on YouTube. Server side issue, nothing we can do there

<!-- gh-comment-id:1913080159 --> @sigma67 commented on GitHub (Jan 27, 2024): The data returned is what is shown on YouTube. Server side issue, nothing we can do there
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ytmusicapi#379
No description provided.