KraXen72 / shira

Download music from YouTube, YouTube Music and Soundcloud, with great metadata and little effort.
MIT License
48 stars 3 forks source link

Fails when metadata is not matched #11

Open 2V3EvG4LMJFdRe opened 1 month ago

2V3EvG4LMJFdRe commented 1 month ago

I've been able to download 2 URL fine with the default settings, but this album is giving me trouble: https://music.youtube.com/playlist?list=OLAK5uy_m6xLbQhGzPacGHgXExtMTl3Z5TnZG2dxI

Last login: Fri Aug  2 00:01:20 on ttys001
redacted@redacted-iMac ~ % shiradl "https://music.youtube.com/playlist?list=OLAK5uy_m6xLbQhGzPacGHgXExtMTl3Z5TnZG2dxI"
[INFO     00:01:49] Downloading "Number One in America" (track 1/12 from URL 1/1)
[ERROR    00:01:50] Failed to download "Number One in America" (track 1/12 from URL 1/1)
[ERROR    00:01:50] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:50] Downloading "The Marching Dream" (track 2/12 from URL 1/1)
[ERROR    00:01:51] Failed to download "The Marching Dream" (track 2/12 from URL 1/1)
[ERROR    00:01:51] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:51] Downloading "I Need You" (track 3/12 from URL 1/1)
[ERROR    00:01:51] Failed to download "I Need You" (track 3/12 from URL 1/1)
[ERROR    00:01:51] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:51] Downloading "Godzilla" (track 4/12 from URL 1/1)
[ERROR    00:01:52] Failed to download "Godzilla" (track 4/12 from URL 1/1)
[ERROR    00:01:52] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:52] Downloading "Bawdy Songs: A Love Song / A Travel Tale / A Line on Brotherhood (medley)" (track 5/12 from URL 1/1)
[ERROR    00:01:52] Failed to download "Bawdy Songs: A Love Song / A Travel Tale / A Line on Brotherhood (medley)" (track 5/12 from URL 1/1)
[ERROR    00:01:52] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:52] Downloading "Three Flights Up" (track 6/12 from URL 1/1)
[ERROR    00:01:53] Failed to download "Three Flights Up" (track 6/12 from URL 1/1)
[ERROR    00:01:53] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:53] Downloading "Before You Sing" (track 7/12 from URL 1/1)
[ERROR    00:01:53] Failed to download "Before You Sing" (track 7/12 from URL 1/1)
[ERROR    00:01:53] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:53] Downloading "Somebody to Do That For" (track 8/12 from URL 1/1)
[ERROR    00:01:54] Failed to download "Somebody to Do That For" (track 8/12 from URL 1/1)
[ERROR    00:01:54] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:54] Downloading "The World Turned Up-Side Down" (track 9/12 from URL 1/1)
[ERROR    00:01:54] Failed to download "The World Turned Up-Side Down" (track 9/12 from URL 1/1)
[ERROR    00:01:54] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:54] Downloading "Problem Child" (track 10/12 from URL 1/1)
[ERROR    00:01:54] Failed to download "Problem Child" (track 10/12 from URL 1/1)
[ERROR    00:01:54] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:54] Downloading "Losers" (track 11/12 from URL 1/1)
[ERROR    00:01:55] Failed to download "Losers" (track 11/12 from URL 1/1)
[ERROR    00:01:55] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:55] Downloading "Down the Highway" (track 12/12 from URL 1/1)
[ERROR    00:01:55] Failed to download "Down the Highway" (track 12/12 from URL 1/1)
[ERROR    00:01:55] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 106, in nav
    root = root[k]
           ~~~~^^^
KeyError: 'navigationEndpoint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 156, in cli
    tags = dl.get_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 119, in get_tags
    return self.__collect_tags(ytmusic_watch_playlist, track)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/dl.py", line 129, in __collect_tags
    ytmusic_album: dict = self.ytmusic.get_album(ytmusic_watch_playlist["tracks"][0]["album"]["id"])
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/mixins/browsing.py", line 521, in get_album
    album = parse_album_header_2024(response)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/albums.py", line 54, in parse_album_header_2024
    album_info["artists"] = [parse_base_header(header)["author"]]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/parsers/podcasts.py", line 67, in parse_base_header
    "id": nav(strapline, ["runs", 0, *NAVIGATION_BROWSE_ID]),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/ytmusicapi/navigation.py", line 110, in nav
    raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'navigationEndpoint' using path ['runs', 0, 'navigationEndpoint', 'browseEndpoint', 'browseId'] on {'text': 'Various Artists'}, exception: 'navigationEndpoint'"
[INFO     00:01:55] Done (12 error(s))
redacted@redactediMac ~ % 

edit: I've found another album. I've tested again with mainstream albums and they download fine. It seems if the matadata fails to match the whole process is halted:

redacted@redacted-iMac ~ % shiradl "https://soundcloud.com/alognaibiman/sets/kokeshi-anime-openings"
[INFO     00:05:25] Downloading "Kokeshi - Anime Openings" (track 1/1 from URL 1/1)
[INFO     00:05:25] No results on YTMusic API, using Tigerv2 to extract metadata
[ERROR    00:05:25] Failed to download "Kokeshi - Anime Openings" (track 1/1 from URL 1/1)
[ERROR    00:05:25] 
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/cli.py", line 151, in cli
    tags = smart_metadata(tag_track, temp_path, "JPEG" if dl.cover_format == "jpg" else "PNG", cover_crop)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/metadata.py", line 180, in smart_metadata
    thumbnail = get_youtube_maxres_thumbnail(info)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/shiradl/metadata.py", line 148, in get_youtube_maxres_thumbnail
    thumbs = list(reversed(info["thumbnails"]))
                           ~~~~^^^^^^^^^^^^^^
KeyError: 'thumbnails'
[INFO     00:05:25] Done (1 error(s))
redacted@ redacted-iMac ~ %