Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CLI] cannot download any tracks at high or hi_res quality. #1

Closed
wjbeckett opened this issue Dec 20, 2023 · 1 comment
Closed

[CLI] cannot download any tracks at high or hi_res quality. #1

wjbeckett opened this issue Dec 20, 2023 · 1 comment
Labels
bug Something isn't working

Comments

@wjbeckett
Copy link

When attemtping to download tracks using CLI in either high or hi_res quality, the following error occurs.

tidal-dl-ng dl https://listen.tidal.com/mix/0161bc50700b85c9c9d68d4da0147d
Let us check, if you are already logged in... Yep, looks good! You are logged in.
╭───────────────────────────── Download Progress ─────────────────────────────╮
│                                                                             │
│                                                                             │
│  List 'My Daily Discovery' ⠋ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0%  │
│  Item 'Paint The Town Red'   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100%  │
│                                                                             │
│                                                                             │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /usr/local/lib/python3.11/site-packages/tidal_dl_ng/cli.py:192 in download                       │
│                                                                                                  │
│   189 │   │   │   │   │   file_template = settings.data.format_mix                               │
│   190 │   │   │   │   │   media_type = MediaType.Mix                                             │
│   191 │   │   │   │                                                                              │
│ ❱ 192 │   │   │   │   dl.list(                                                                   │
│   193 │   │   │   │   │   id_media=id_item,                                                      │
│   194 │   │   │   │   │   media_type=media_type,                                                 │
│   195 │   │   │   │   │   path_base=settings.data.download_base_path,                            │
│                                                                                                  │
│ ╭───────────────────────────────────── locals ──────────────────────────────────────╮            │
│ │            ctx = <click.core.Context object at 0x112a45a50>                       │            │
│ │             dl = <tidal_dl_ng.download.Download object at 0x112a86cd0>            │            │
│ │  file_template = 'Mix/{mix_name}/{artist_name} - {track_title}'                   │            │
│ │      fn_logger = <tidal_dl_ng.helper.wrapper.WrapperLogger object at 0x112b0e310> │            │
│ │        id_item = '0161bc50700b85c9c9d68d4da0147d'                                 │            │
│ │           item = 'https://listen.tidal.com/mix/0161bc50700b85c9c9d68d4da0147d'    │            │
│ │      list_urls = None                                                             │            │
│ │     media_name = 'mix'                                                            │            │
│ │     media_type = <MediaType.Mix: 'mix'>                                           │            │
│ │       progress = <rich.progress.Progress object at 0x112a86e90>                   │            │
│ │ progress_table = <rich.table.Table object at 0x112b0e290>                         │            │
│ │       settings = <tidal_dl_ng.config.Settings object at 0x112a460d0>              │            │
│ │    urls_or_ids = ['https://listen.tidal.com/mix/0161bc50700b85c9c9d68d4da0147d']  │            │
│ ╰───────────────────────────────────────────────────────────────────────────────────╯            │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/tidal_dl_ng/download.py:285 in list                      │
│                                                                                                  │
│   282 │   │   │   for media in items:                                                            │
│   283 │   │   │   │   Progress()                                                                 │
│   284 │   │   │   │   # TODO: Handle return value of `track` method.                             │
│ ❱ 285 │   │   │   │   self.item(                                                                 │
│   286 │   │   │   │   │   path_base=path_file,                                                   │
│   287 │   │   │   │   │   file_template=file_name_relative,                                      │
│   288 │   │   │   │   │   media=media,                                                           │
│                                                                                                  │
│ ╭─────────────────────────────────────── locals ────────────────────────────────────────╮        │
│ │     download_delay = True                                                             │        │
│ │ file_name_relative = 'Mix/My Daily Discovery/{artist_name} - {track_title}'           │        │
│ │      file_template = 'Mix/{mix_name}/{artist_name} - {track_title}'                   │        │
│ │          fn_logger = <tidal_dl_ng.helper.wrapper.WrapperLogger object at 0x112b0e310> │        │
│ │           id_media = '0161bc50700b85c9c9d68d4da0147d'                                 │        │
│ │              items = [                                                                │        │
│ │                      │   <tidalapi.media.Track object at 0x112a47f90>,                │        │
│ │                      │   <tidalapi.media.Track object at 0x112a6d2d0>,                │        │
│ │                      │   <tidalapi.media.Track object at 0x112b24190>,                │        │
│ │                      │   <tidalapi.media.Track object at 0x112b27990>,                │        │
│ │                      │   <tidalapi.media.Track object at 0x112b247d0>,                │        │
│ │                      │   <tidalapi.media.Track object at 0x112b47e10>,                │        │
│ │                      │   <tidalapi.media.Track object at 0x112b50110>,                │        │
│ │                      │   <tidalapi.media.Track object at 0x112b504d0>,                │        │
│ │                      │   <tidalapi.media.Track object at 0x112b50650>,                │        │
│ │                      │   <tidalapi.media.Track object at 0x112b507d0>                 │        │
│ │                      ]                                                                │        │
│ │         list_media = <tidalapi.mix.Mix object at 0x112b0e590>                         │        │
│ │    list_media_name = 'My Daily Discovery'                                             │        │
│ │              media = <tidalapi.media.Track object at 0x112a47f90>                     │        │
│ │         media_type = <MediaType.Mix: 'mix'>                                           │        │
│ │            p_task1 = 0                                                                │        │
│ │          path_base = './download/'                                                    │        │
│ │          path_file = './download/'                                                    │        │
│ │           progress = <rich.progress.Progress object at 0x112a86e90>                   │        │
│ │       progress_gui = None                                                             │        │
│ │    progress_stdout = True                                                             │        │
│ │               self = <tidal_dl_ng.download.Download object at 0x112a86cd0>            │        │
│ │     video_download = True                                                             │        │
│ ╰───────────────────────────────────────────────────────────────────────────────────────╯        │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/tidal_dl_ng/download.py:167 in item                      │
│                                                                                                  │
│   164 │   │   │   │   │   else:                                                                  │
│   165 │   │   │   │   │   │   tmp_path_file_decrypted = tmp_path_file                            │
│   166 │   │   │   │   │                                                                          │
│ ❱ 167 │   │   │   │   │   self.metadata_write(media, tmp_path_file_decrypted)                    │
│   168 │   │   │   │   elif isinstance(media, Video):                                             │
│   169 │   │   │   │   │   tmp_path_file_decrypted = self._video(media, tmp_path_file)            │
│   170                                                                                            │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │              block_size = 4096                                                               │ │
│ │                    data = b'P*\x012@\xc9@)QBf\xe4\xc2$<0\x84\x94\x0f&J\x05\xa0d\xf8I\x92I\x… │ │
│ │           download_skip = False                                                              │ │
│ │                       f = <_io.BufferedWriter                                                │ │
│ │                           name='/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x… │ │
│ │          file_extension = '.flac'                                                            │ │
│ │      file_name_relative = 'Mix/My Daily Discovery/Doja Cat - Paint The Town Red'             │ │
│ │           file_template = 'Mix/My Daily Discovery/{artist_name} - {track_title}'             │ │
│ │               fn_logger = <tidal_dl_ng.helper.wrapper.WrapperLogger object at 0x112b0e310>   │ │
│ │                      id = None                                                               │ │
│ │                   media = <tidalapi.media.Track object at 0x112a47f90>                       │ │
│ │              media_type = None                                                               │ │
│ │        needs_decryption = False                                                              │ │
│ │                  p_task = 1                                                                  │ │
│ │               path_base = './download/'                                                      │ │
│ │               path_file = '/Users/will/Code/personal-auto-radio-main/download/Mix/My Daily   │ │
│ │                           Discovery/Doja C'+28                                               │ │
│ │                progress = <rich.progress.Progress object at 0x112a86e90>                     │ │
│ │            progress_gui = None                                                               │ │
│ │         progress_stdout = True                                                               │ │
│ │                       r = <Response [200]>                                                   │ │
│ │                    self = <tidal_dl_ng.download.Download object at 0x112a86cd0>              │ │
│ │                  stream = <tidalapi.media.Stream object at 0x112ae2990>                      │ │
│ │         stream_manifest = {                                                                  │ │
│ │                           │   'mimeType': 'audio/flac',                                      │ │
│ │                           │   'codecs': 'flac',                                              │ │
│ │                           │   'encryptionType': 'NONE',                                      │ │
│ │                           │   'urls': [                                                      │ │
│ │                           │   │                                                              │ │
│ │                           'https://sp-pr-cf.audio.tidal.com/mediatracks/CAEaKRInZmEzZWFiMmE… │ │
│ │                           │   ]                                                              │ │
│ │                           }                                                                  │ │
│ │              stream_url = 'https://sp-pr-cf.audio.tidal.com/mediatracks/CAEaKRInZmEzZWFiMmE… │ │
│ │            tmp_path_dir = '/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_'     │ │
│ │           tmp_path_file = '/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/932… │ │
│ │ tmp_path_file_decrypted = '/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/932… │ │
│ │     total_size_in_bytes = 25605975                                                           │ │
│ │       validation_result = False                                                              │ │
│ │          video_download = True                                                               │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/tidal_dl_ng/download.py:227 in metadata_write            │
│                                                                                                  │
│   224 │   │   │   url_cover=self.cover_url(track.album.cover),                                   │
│   225 │   │   )                                                                                  │
│   226 │   │                                                                                      │
│ ❱ 227 │   │   m.save()                                                                           │
│   228 │   │                                                                                      │
│   229 │   │   result = True                                                                      │
│   230                                                                                            │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │   copy_right = ''                                                                            │ │
│ │       lyrics = 'By\nWalk on by\nWalk on by\nWalk on by\nWalk on by\n\nYeah, bitch, I said    │ │
│ │                what I said\n'+3299                                                           │ │
│ │            m = <tidal_dl_ng.metadata.Metadata object at 0x112b61090>                         │ │
│ │    path_file = '/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/9327cdc8-727b-… │ │
│ │ release_date = '2023-08-04'                                                                  │ │
│ │       result = False                                                                         │ │
│ │         self = <tidal_dl_ng.download.Download object at 0x112a86cd0>                         │ │
│ │        track = <tidalapi.media.Track object at 0x112a47f90>                                  │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/tidal_dl_ng/metadata.py:114 in save                      │
│                                                                                                  │
│   111 │   │   │   self.set_mp4()                                                                 │
│   112 │   │                                                                                      │
│   113 │   │   self._cover()                                                                      │
│ ❱ 114 │   │   self.m.save()                                                                      │
│   115 │   │                                                                                      │
│   116 │   │   return True                                                                        │
│   117                                                                                            │
│                                                                                                  │
│ ╭─────────────────────────── locals ───────────────────────────╮                                 │
│ │ self = <tidal_dl_ng.metadata.Metadata object at 0x112b61090> │                                 │
│ ╰──────────────────────────────────────────────────────────────╯                                 │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/mutagen/_util.py:185 in wrapper                          │
│                                                                                                  │
│    182 │   │   @wraps(func)                                                                      │
│    183 │   │   def wrapper(*args, **kwargs):                                                     │
│    184 │   │   │   try:                                                                          │
│ ❱  185 │   │   │   │   return func(*args, **kwargs)                                              │
│    186 │   │   │   except exc_dest:                                                              │
│    187 │   │   │   │   raise                                                                     │
│    188 │   │   │   except exc_src as err:                                                        │
│                                                                                                  │

│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/mutagen/_util.py:156 in wrapper                          │
│                                                                                                  │
│    153 │   │   │   │   convert_file_args(args, kwargs)                                           │
│    154 │   │   │   with _openfile(self, filething, filename, fileobj,                            │
│    155 │   │   │   │   │   │      writable, create) as h:                                        │
│ ❱  156 │   │   │   │   return func(self, h, *args, **kwargs)                                     │
│    157 │   │                                                                                     │
│    158 │   │   @wraps(func)                                                                      │
│    159 │   │   def wrapper_func(*args, **kwargs):                                                │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │              args = ()                                                                       │ │
│ │ convert_file_args = <function loadfile.<locals>.convert_file_args at 0x111e75440>            │ │
│ │            create = False                                                                    │ │
│ │          filename = None                                                                     │ │
│ │           fileobj = None                                                                     │ │
│ │         filething = None                                                                     │ │
│ │              func = <function FLAC.save at 0x111e75580>                                      │ │
│ │                 h = FileThing(                                                               │ │
│ │                     │   fileobj=<_io.BufferedRandom                                          │ │
│ │                     name='/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/9327… │ │
│ │                     │                                                                        │ │
│ │                     filename='/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/… │ │
│ │                     │                                                                        │ │
│ │                     name='/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/9327… │ │
│ │                     )                                                                        │ │
│ │            kwargs = {}                                                                       │ │
│ │              self = {'album': ['Paint The Town Red'], 'artist': ['Doja Cat'], 'disctotal':   │ │
│ │                     ['1'], 'albumartist': ['Doja Cat'], 'title': ['Paint The Town Red'],     │ │
│ │                     'date': ['2023-08-04'], 'composer': [''], 'tracktotal': ['1'],           │ │
│ │                     'copyright': [''], 'tracknumber': ['1'], 'isrc': [None], 'lyrics':       │ │
│ │                     ["By\nWalk on by\nWalk on by\nWalk on by\nWalk on by\n\nYeah, bitch, I   │ │
│ │                     said what I said\nI'd rather be famous instead (walk on by)\nI let all   │ │
│ │                     that get to my head\nI don't care, I paint the town red (walk on         │ │
│ │                     by)\nBitch, I said what I said\nI'd rather be famous instead (walk on    │ │
│ │                     by)\nI let all that get to my head\nI don't care, I paint the town red   │ │
│ │                     (walk on by)\n\nMm, she the devil\nShe a bad lil' bitch, she a rebel     │ │
│ │                     (walk on by)\nShe put her foot to the pedal\nIt'll take a whole lot for  │ │
│ │                     me to settle (walk on by)\nMm, she the devil\nShe a bad lil' bitch, she  │ │
│ │                     a rebel (walk on by)\nShe put her foot to the pedal\nIt'll take a whole  │ │
│ │                     lot for me (yeah) to settle (walk on by)\n\nYeah, said my happiness is   │ │
│ │                     all of your misery\nI put good dick all in my kidneys (walk on by)\nThis │ │
│ │                     Margiel' don't come with no jealousy\nMy illness don't come with no      │ │
│ │                     remedy (walk on by)\nI am so much fun without Hennessy\nThey just want   │ │
│ │                     my love and my energy (walk on by)\nYou can't talk no shit without       │ │
│ │                     penalties\nBitch, I'm in yo' shit if you send for me (walk on by)\n\nI'm │ │
│ │                     going to glow up one more time\nTrust me, I have magical foresight (walk │ │
│ │                     on by)\nYou gon' see me sleepin' in courtside\nYou gon' see me eatin'    │ │
│ │                     ten more times (walk on by)\nUgh, you can't take that bitch              │ │
│ │                     nowhere\nUgh, I look better with no hair (walk on by)\nUgh, ain't no     │ │
│ │                     sign I can't smoke here\nUgh (yeah), gimme the chance and I'll go there  │ │
│ │                     (walk on by)\n\nYeah, bitch, I said what I said\nI'd rather be famous    │ │
│ │                     instead (walk on by)\nI let all that get to my head\nI don't care, I     │ │
│ │                     paint the town red (walk on by)\nBitch, I said what I said\nI'd rather   │ │
│ │                     be famous instead (walk on by)\nI let all that get to my head\nI don't   │ │
│ │                     care, I paint the town red (walk on by)\n\nMm, she the devil\nShe a bad  │ │
│ │                     lil' bitch, she a rebel (walk on by)\nShe put her foot to the            │ │
│ │                     pedal\nIt'll take a whole lot for me to settle (walk on by)\nMm, she the │ │
│ │                     devil\nShe a bad lil' bitch, she a rebel (walk on by)\nShe put her foot  │ │
│ │                     to the pedal\nIt'll take a whole lot (yeah) for me to settle (walk on    │ │
│ │                     by)\n\nYeah, said pop make money, now you try, bitch\nYou could use a    │ │
│ │                     revamp with a new vibe, sis (walk on by)\nI don't need a big feature or  │ │
│ │                     a new sidekick\nI don't need a new fan 'cause my boo like it (walk on    │ │
│ │                     by)\nI don't need to wear a wig to make you like it\nI'm a two-time      │ │
│ │                     bitch, you ain't knew I'd win? (Walk on by)\nThrow a shot like you tryna │ │
│ │                     have a food fight then\nAll my opps waitin' for me to be you, I bet      │ │
│ │                     (walk on by)\n\nSaid I got drive, I don't need a car\nMoney really all   │ │
│ │                     that we fiendin' for (walk on by)\nI'm doin' things they ain't seen      │ │
│ │                     before\nFans ain't dumb, but extremists are (walk on by)\nI'm a demon    │ │
│ │                     lord\nFall off what? I ain't seen the horse (walk on by)\nCalled your    │ │
│ │                     bluff, better cite the source\nFame ain't somethin' that I need no more  │ │
│ │                     (walk on by)\n\n'Cause, bitch, I said what I said\nI'd rather be famous  │ │
│ │                     instead (walk on by)\nI let all that get to my head\nI don't care, I     │ │
│ │                     paint the town red (walk on by)\nBitch, I said what I said\nI'd rather   │ │
│ │                     be famous instead (walk on by)\nI let all that get to my head\nI don't   │ │
│ │                     care, I paint the town red (walk on by)\n\nMm, she the devil\nShe a bad  │ │
│ │                     lil' bitch, she a rebel (walk on by)\nShe put her foot to the            │ │
│ │                     pedal\nIt'll take a whole lot for me to settle (walk on by)\nMm, she the │ │
│ │                     devil\nShe a bad lil' bitch, she a rebel (walk on by)\nShe put her foot  │ │
│ │                     to the pedal\nIt'll take a whole lot for me to settle (walk on           │ │
│ │                     by)\n\nWalk on by\nWalk on by\nWalk on by\nWalk on by"], 'discnumber':   │ │
│ │                     ['1']}                                                                   │ │
│ │          writable = True                                                                     │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/mutagen/flac.py:859 in save                              │
│                                                                                                  │
│   856 │   │   │   │   raise ValueError("Invalid seektable object type!")                         │
│   857 │   │   │   self.metadata_blocks.append(self.seektable)                                    │
│   858 │   │                                                                                      │
│ ❱ 859 │   │   self._save(filething, self.metadata_blocks, deleteid3, padding)                    │
│   860 │                                                                                          │
│   861 │   def _save(self, filething, metadata_blocks, deleteid3, padding):                       │
│   862 │   │   f = StrictFileObject(filething.fileobj)                                            │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ deleteid3 = False                                                                            │ │
│ │ filething = FileThing(                                                                       │ │
│ │             │   fileobj=<_io.BufferedRandom                                                  │ │
│ │             name='/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/9327cdc8-727… │ │
│ │             │                                                                                │ │
│ │             filename='/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/9327cdc8… │ │
│ │             │                                                                                │ │
│ │             name='/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/9327cdc8-727… │ │
│ │             )                                                                                │ │
│ │   padding = None                                                                             │ │
│ │      self = {'album': ['Paint The Town Red'], 'artist': ['Doja Cat'], 'disctotal': ['1'],    │ │
│ │             'albumartist': ['Doja Cat'], 'title': ['Paint The Town Red'], 'date':            │ │
│ │             ['2023-08-04'], 'composer': [''], 'tracktotal': ['1'], 'copyright': [''],        │ │
│ │             'tracknumber': ['1'], 'isrc': [None], 'lyrics': ["By\nWalk on by\nWalk on        │ │
│ │             by\nWalk on by\nWalk on by\n\nYeah, bitch, I said what I said\nI'd rather be     │ │
│ │             famous instead (walk on by)\nI let all that get to my head\nI don't care, I      │ │
│ │             paint the town red (walk on by)\nBitch, I said what I said\nI'd rather be famous │ │
│ │             instead (walk on by)\nI let all that get to my head\nI don't care, I paint the   │ │
│ │             town red (walk on by)\n\nMm, she the devil\nShe a bad lil' bitch, she a rebel    │ │
│ │             (walk on by)\nShe put her foot to the pedal\nIt'll take a whole lot for me to    │ │
│ │             settle (walk on by)\nMm, she the devil\nShe a bad lil' bitch, she a rebel (walk  │ │
│ │             on by)\nShe put her foot to the pedal\nIt'll take a whole lot for me (yeah) to   │ │
│ │             settle (walk on by)\n\nYeah, said my happiness is all of your misery\nI put good │ │
│ │             dick all in my kidneys (walk on by)\nThis Margiel' don't come with no            │ │
│ │             jealousy\nMy illness don't come with no remedy (walk on by)\nI am so much fun    │ │
│ │             without Hennessy\nThey just want my love and my energy (walk on by)\nYou can't   │ │
│ │             talk no shit without penalties\nBitch, I'm in yo' shit if you send for me (walk  │ │
│ │             on by)\n\nI'm going to glow up one more time\nTrust me, I have magical foresight │ │
│ │             (walk on by)\nYou gon' see me sleepin' in courtside\nYou gon' see me eatin' ten  │ │
│ │             more times (walk on by)\nUgh, you can't take that bitch nowhere\nUgh, I look     │ │
│ │             better with no hair (walk on by)\nUgh, ain't no sign I can't smoke here\nUgh     │ │
│ │             (yeah), gimme the chance and I'll go there (walk on by)\n\nYeah, bitch, I said   │ │
│ │             what I said\nI'd rather be famous instead (walk on by)\nI let all that get to my │ │
│ │             head\nI don't care, I paint the town red (walk on by)\nBitch, I said what I      │ │
│ │             said\nI'd rather be famous instead (walk on by)\nI let all that get to my        │ │
│ │             head\nI don't care, I paint the town red (walk on by)\n\nMm, she the devil\nShe  │ │
│ │             a bad lil' bitch, she a rebel (walk on by)\nShe put her foot to the pedal\nIt'll │ │
│ │             take a whole lot for me to settle (walk on by)\nMm, she the devil\nShe a bad     │ │
│ │             lil' bitch, she a rebel (walk on by)\nShe put her foot to the pedal\nIt'll take  │ │
│ │             a whole lot (yeah) for me to settle (walk on by)\n\nYeah, said pop make money,   │ │
│ │             now you try, bitch\nYou could use a revamp with a new vibe, sis (walk on by)\nI  │ │
│ │             don't need a big feature or a new sidekick\nI don't need a new fan 'cause my boo │ │
│ │             like it (walk on by)\nI don't need to wear a wig to make you like it\nI'm a      │ │
│ │             two-time bitch, you ain't knew I'd win? (Walk on by)\nThrow a shot like you      │ │
│ │             tryna have a food fight then\nAll my opps waitin' for me to be you, I bet (walk  │ │
│ │             on by)\n\nSaid I got drive, I don't need a car\nMoney really all that we         │ │
│ │             fiendin' for (walk on by)\nI'm doin' things they ain't seen before\nFans ain't   │ │
│ │             dumb, but extremists are (walk on by)\nI'm a demon lord\nFall off what? I ain't  │ │
│ │             seen the horse (walk on by)\nCalled your bluff, better cite the source\nFame     │ │
│ │             ain't somethin' that I need no more (walk on by)\n\n'Cause, bitch, I said what I │ │
│ │             said\nI'd rather be famous instead (walk on by)\nI let all that get to my        │ │
│ │             head\nI don't care, I paint the town red (walk on by)\nBitch, I said what I      │ │
│ │             said\nI'd rather be famous instead (walk on by)\nI let all that get to my        │ │
│ │             head\nI don't care, I paint the town red (walk on by)\n\nMm, she the devil\nShe  │ │
│ │             a bad lil' bitch, she a rebel (walk on by)\nShe put her foot to the pedal\nIt'll │ │
│ │             take a whole lot for me to settle (walk on by)\nMm, she the devil\nShe a bad     │ │
│ │             lil' bitch, she a rebel (walk on by)\nShe put her foot to the pedal\nIt'll take  │ │
│ │             a whole lot for me to settle (walk on by)\n\nWalk on by\nWalk on by\nWalk on     │ │
│ │             by\nWalk on by"], 'discnumber': ['1']}                                           │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/mutagen/flac.py:875 in _save                             │
│                                                                                                  │
│   872 │   │                                                                                      │
│   873 │   │   content_size = get_size(f) - audio_offset                                          │
│   874 │   │   assert content_size >= 0                                                           │
│ ❱ 875 │   │   data = MetadataBlock._writeblocks(                                                 │
│   876 │   │   │   metadata_blocks, available, content_size, padding)                             │
│   877 │   │   data_size = len(data)                                                              │
│   878                                                                                            │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │    audio_offset = 478                                                                        │ │
│ │       available = 474                                                                        │ │
│ │    content_size = 25605497                                                                   │ │
│ │       deleteid3 = False                                                                      │ │
│ │               f = <mutagen.flac.StrictFileObject object at 0x112b64750>                      │ │
│ │       filething = FileThing(                                                                 │ │
│ │                   │   fileobj=<_io.BufferedRandom                                            │ │
│ │                   name='/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/9327cd… │ │
│ │                   │                                                                          │ │
│ │                   filename='/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/93… │ │
│ │                   │                                                                          │ │
│ │                   name='/var/folders/t6/zwqptyxx6k1ggnvyf4fjvf7h0000gn/T/tmp_wxo00x_/9327cd… │ │
│ │                   )                                                                          │ │
│ │          header = 4                                                                          │ │
│ │ metadata_blocks = [                                                                          │ │
│ │                   │   <mutagen.flac.StreamInfo object at 0x112b74110>,                       │ │
│ │                   │   <SeekTable seekpoints=[(0, 0, 4096), (442368, 682783, 4096), (884736,  │ │
│ │                   1448766, 4096), (1327104, 2566497, 4096), (1769472, 3743395, 4096),        │ │
│ │                   (2211840, 5029764, 4096), (2654208, 6301888, 4096), (3096576, 7392502,     │ │
│ │                   4096), (3538944, 8475871, 4096), (3981312, 9559462, 4096), (4423680,       │ │
│ │                   10677017, 4096), (4866048, 11822337, 4096), (5308416, 13027215, 4096),     │ │
│ │                   (5750784, 14314076, 4096), (6193152, 15533291, 4096), (6635520, 16683240,  │ │
│ │                   4096), (7077888, 17799734, 4096), (7520256, 18910079, 4096), (7962624,     │ │
│ │                   20036396, 4096), (8404992, 21190777, 4096), (8847360, 22454406, 4096),     │ │
│ │                   (9289728, 23751243, 4096), (9732096, 24704583, 4096), (10174464, 25601407, │ │
│ │                   4096)]>,                                                                   │ │
│ │                   │   [                                                                      │ │
│ │                   │   │   ('title', 'Paint The Town Red'),                                   │ │
│ │                   │   │   ('album', 'Paint The Town Red'),                                   │ │
│ │                   │   │   ('albumartist', 'Doja Cat'),                                       │ │
│ │                   │   │   ('artist', 'Doja Cat'),                                            │ │
│ │                   │   │   ('copyright', ''),                                                 │ │
│ │                   │   │   ('tracknumber', '1'),                                              │ │
│ │                   │   │   ('tracktotal', '1'),                                               │ │
│ │                   │   │   ('discnumber', '1'),                                               │ │
│ │                   │   │   ('disctotal', '1'),                                                │ │
│ │                   │   │   ('date', '2023-08-04'),                                            │ │
│ │                   │   │   ... +3                                                             │ │
│ │                   │   ],                                                                     │ │
│ │                   │   <Picture 'image/jpeg' (10402 bytes)>                                   │ │
│ │                   ]                                                                          │ │
│ │         padding = None                                                                       │ │
│ │            self = {'album': ['Paint The Town Red'], 'artist': ['Doja Cat'], 'disctotal':     │ │
│ │                   ['1'], 'albumartist': ['Doja Cat'], 'title': ['Paint The Town Red'],       │ │
│ │                   'date': ['2023-08-04'], 'composer': [''], 'tracktotal': ['1'],             │ │
│ │                   'copyright': [''], 'tracknumber': ['1'], 'isrc': [None], 'lyrics':         │ │
│ │                   ["By\nWalk on by\nWalk on by\nWalk on by\nWalk on by\n\nYeah, bitch, I     │ │
│ │                   said what I said\nI'd rather be famous instead (walk on by)\nI let all     │ │
│ │                   that get to my head\nI don't care, I paint the town red (walk on           │ │
│ │                   by)\nBitch, I said what I said\nI'd rather be famous instead (walk on      │ │
│ │                   by)\nI let all that get to my head\nI don't care, I paint the town red     │ │
│ │                   (walk on by)\n\nMm, she the devil\nShe a bad lil' bitch, she a rebel (walk │ │
│ │                   on by)\nShe put her foot to the pedal\nIt'll take a whole lot for me to    │ │
│ │                   settle (walk on by)\nMm, she the devil\nShe a bad lil' bitch, she a rebel  │ │
│ │                   (walk on by)\nShe put her foot to the pedal\nIt'll take a whole lot for me │ │
│ │                   (yeah) to settle (walk on by)\n\nYeah, said my happiness is all of your    │ │
│ │                   misery\nI put good dick all in my kidneys (walk on by)\nThis Margiel'      │ │
│ │                   don't come with no jealousy\nMy illness don't come with no remedy (walk on │ │
│ │                   by)\nI am so much fun without Hennessy\nThey just want my love and my      │ │
│ │                   energy (walk on by)\nYou can't talk no shit without penalties\nBitch, I'm  │ │
│ │                   in yo' shit if you send for me (walk on by)\n\nI'm going to glow up one    │ │
│ │                   more time\nTrust me, I have magical foresight (walk on by)\nYou gon' see   │ │
│ │                   me sleepin' in courtside\nYou gon' see me eatin' ten more times (walk on   │ │
│ │                   by)\nUgh, you can't take that bitch nowhere\nUgh, I look better with no    │ │
│ │                   hair (walk on by)\nUgh, ain't no sign I can't smoke here\nUgh (yeah),      │ │
│ │                   gimme the chance and I'll go there (walk on by)\n\nYeah, bitch, I said     │ │
│ │                   what I said\nI'd rather be famous instead (walk on by)\nI let all that get │ │
│ │                   to my head\nI don't care, I paint the town red (walk on by)\nBitch, I said │ │
│ │                   what I said\nI'd rather be famous instead (walk on by)\nI let all that get │ │
│ │                   to my head\nI don't care, I paint the town red (walk on by)\n\nMm, she the │ │
│ │                   devil\nShe a bad lil' bitch, she a rebel (walk on by)\nShe put her foot to │ │
│ │                   the pedal\nIt'll take a whole lot for me to settle (walk on by)\nMm, she   │ │
│ │                   the devil\nShe a bad lil' bitch, she a rebel (walk on by)\nShe put her     │ │
│ │                   foot to the pedal\nIt'll take a whole lot (yeah) for me to settle (walk on │ │
│ │                   by)\n\nYeah, said pop make money, now you try, bitch\nYou could use a      │ │
│ │                   revamp with a new vibe, sis (walk on by)\nI don't need a big feature or a  │ │
│ │                   new sidekick\nI don't need a new fan 'cause my boo like it (walk on by)\nI │ │
│ │                   don't need to wear a wig to make you like it\nI'm a two-time bitch, you    │ │
│ │                   ain't knew I'd win? (Walk on by)\nThrow a shot like you tryna have a food  │ │
│ │                   fight then\nAll my opps waitin' for me to be you, I bet (walk on           │ │
│ │                   by)\n\nSaid I got drive, I don't need a car\nMoney really all that we      │ │
│ │                   fiendin' for (walk on by)\nI'm doin' things they ain't seen before\nFans   │ │
│ │                   ain't dumb, but extremists are (walk on by)\nI'm a demon lord\nFall off    │ │
│ │                   what? I ain't seen the horse (walk on by)\nCalled your bluff, better cite  │ │
│ │                   the source\nFame ain't somethin' that I need no more (walk on              │ │
│ │                   by)\n\n'Cause, bitch, I said what I said\nI'd rather be famous instead     │ │
│ │                   (walk on by)\nI let all that get to my head\nI don't care, I paint the     │ │
│ │                   town red (walk on by)\nBitch, I said what I said\nI'd rather be famous     │ │
│ │                   instead (walk on by)\nI let all that get to my head\nI don't care, I paint │ │
│ │                   the town red (walk on by)\n\nMm, she the devil\nShe a bad lil' bitch, she  │ │
│ │                   a rebel (walk on by)\nShe put her foot to the pedal\nIt'll take a whole    │ │
│ │                   lot for me to settle (walk on by)\nMm, she the devil\nShe a bad lil'       │ │
│ │                   bitch, she a rebel (walk on by)\nShe put her foot to the pedal\nIt'll take │ │
│ │                   a whole lot for me to settle (walk on by)\n\nWalk on by\nWalk on by\nWalk  │ │
│ │                   on by\nWalk on by"], 'discnumber': ['1']}                                  │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/mutagen/flac.py:153 in _writeblocks                      │
│                                                                                                  │
│   150 │   │   for block in blocks:                                                               │
│   151 │   │   │   if isinstance(block, Padding):                                                 │
│   152 │   │   │   │   continue                                                                   │
│ ❱ 153 │   │   │   data += cls._writeblock(block)                                                 │
│   154 │   │   blockssize = len(data)                                                             │
│   155 │   │                                                                                      │
│   156 │   │   # take the padding overhead into account. we always add one                        │
│                                                                                                  │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │    available = 474                                                                           │ │
│ │        block = [                                                                             │ │
│ │                │   ('title', 'Paint The Town Red'),                                          │ │
│ │                │   ('album', 'Paint The Town Red'),                                          │ │
│ │                │   ('albumartist', 'Doja Cat'),                                              │ │
│ │                │   ('artist', 'Doja Cat'),                                                   │ │
│ │                │   ('copyright', ''),                                                        │ │
│ │                │   ('tracknumber', '1'),                                                     │ │
│ │                │   ('tracktotal', '1'),                                                      │ │
│ │                │   ('discnumber', '1'),                                                      │ │
│ │                │   ('disctotal', '1'),                                                       │ │
│ │                │   ('date', '2023-08-04'),                                                   │ │
│ │                │   ... +3                                                                    │ │
│ │                ]                                                                             │ │
│ │       blocks = [                                                                             │ │
│ │                │   <mutagen.flac.StreamInfo object at 0x112b74110>,                          │ │
│ │                │   <SeekTable seekpoints=[(0, 0, 4096), (442368, 682783, 4096), (884736,     │ │
│ │                1448766, 4096), (1327104, 2566497, 4096), (1769472, 3743395, 4096), (2211840, │ │
│ │                5029764, 4096), (2654208, 6301888, 4096), (3096576, 7392502, 4096), (3538944, │ │
│ │                8475871, 4096), (3981312, 9559462, 4096), (4423680, 10677017, 4096),          │ │
│ │                (4866048, 11822337, 4096), (5308416, 13027215, 4096), (5750784, 14314076,     │ │
│ │                4096), (6193152, 15533291, 4096), (6635520, 16683240, 4096), (7077888,        │ │
│ │                17799734, 4096), (7520256, 18910079, 4096), (7962624, 20036396, 4096),        │ │
│ │                (8404992, 21190777, 4096), (8847360, 22454406, 4096), (9289728, 23751243,     │ │
│ │                4096), (9732096, 24704583, 4096), (10174464, 25601407, 4096)]>,               │ │
│ │                │   [                                                                         │ │
│ │                │   │   ('title', 'Paint The Town Red'),                                      │ │
│ │                │   │   ('album', 'Paint The Town Red'),                                      │ │
│ │                │   │   ('albumartist', 'Doja Cat'),                                          │ │
│ │                │   │   ('artist', 'Doja Cat'),                                               │ │
│ │                │   │   ('copyright', ''),                                                    │ │
│ │                │   │   ('tracknumber', '1'),                                                 │ │
│ │                │   │   ('tracktotal', '1'),                                                  │ │
│ │                │   │   ('discnumber', '1'),                                                  │ │
│ │                │   │   ('disctotal', '1'),                                                   │ │
│ │                │   │   ('date', '2023-08-04'),                                               │ │
│ │                │   │   ... +3                                                                │ │
│ │                │   ],                                                                        │ │
│ │                │   <Picture 'image/jpeg' (10402 bytes)>                                      │ │
│ │                ]                                                                             │ │
│ │          cls = <class 'mutagen.flac.MetadataBlock'>                                          │ │
│ │    cont_size = 25605497                                                                      │ │
│ │         data = bytearray(b'\x00\x00\x00"\x10\x00\x10\x00\x00\x00\x0e\x005M\n\xc4B\xf0\x00\x… │ │
│ │                \x8b\x7f\x10\x00\x00\x00\x00\x00\x00y\x80\x00\x00\x00\x00\x00\x011\xbb,\x10\… │ │
│ │ padding_func = None                                                                          │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/mutagen/flac.py:125 in _writeblock                       │
│                                                                                                  │
│   122 │   │                                                                                      │
│   123 │   │   data = bytearray()                                                                 │
│   124 │   │   code = (block.code | 128) if is_last else block.code                               │
│ ❱ 125 │   │   datum = block.write()                                                              │
│   126 │   │   size = len(datum)                                                                  │
│   127 │   │   if size > cls._MAX_SIZE:                                                           │
│   128 │   │   │   if block._distrust_size and block._invalid_overflow_size != -1:                │
│                                                                                                  │
│ ╭──────────────────── locals ────────────────────╮                                               │
│ │   block = [                                    │                                               │
│ │           │   (                                │                                               │
│ │           │   │   'title',                     │                                               │
│ │           │   │   'Paint The Town Red'         │                                               │
│ │           │   ),                               │                                               │
│ │           │   (                                │                                               │
│ │           │   │   'album',                     │                                               │
│ │           │   │   'Paint The Town Red'         │                                               │
│ │           │   ),                               │                                               │
│ │           │   ('albumartist', 'Doja Cat'),     │                                               │
│ │           │   ('artist', 'Doja Cat'),          │                                               │
│ │           │   ('copyright', ''),               │                                               │
│ │           │   ('tracknumber', '1'),            │                                               │
│ │           │   ('tracktotal', '1'),             │                                               │
│ │           │   ('discnumber', '1'),             │                                               │
│ │           │   ('disctotal', '1'),              │                                               │
│ │           │   ('date', '2023-08-04'),          │                                               │
│ │           │   ... +3                           │                                               │
│ │           ]                                    │                                               │
│ │     cls = <class 'mutagen.flac.MetadataBlock'> │                                               │
│ │    code = 4                                    │                                               │
│ │    data = bytearray(b'')                       │                                               │
│ │ is_last = False                                │                                               │
│ ╰────────────────────────────────────────────────╯                                               │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/mutagen/flac.py:356 in write                             │
│                                                                                                  │
│   353 │   │   super(VCFLACDict, self).load(data, errors=errors, framing=framing)                 │
│   354 │                                                                                          │
│   355 │   def write(self, framing=False):                                                        │
│ ❱ 356 │   │   return super(VCFLACDict, self).write(framing=framing)                              │
│   357                                                                                            │
│   358                                                                                            │
│   359 class CueSheetTrackIndex(tuple):                                                           │
│                                                                                                  │
│ ╭──────────────────── locals ────────────────────╮                                               │
│ │ framing = False                                │                                               │
│ │    self = [                                    │                                               │
│ │           │   (                                │                                               │
│ │           │   │   'title',                     │                                               │
│ │           │   │   'Paint The Town Red'         │                                               │
│ │           │   ),                               │                                               │
│ │           │   (                                │                                               │
│ │           │   │   'album',                     │                                               │
│ │           │   │   'Paint The Town Red'         │                                               │
│ │           │   ),                               │                                               │
│ │           │   ('albumartist', 'Doja Cat'),     │                                               │
│ │           │   ('artist', 'Doja Cat'),          │                                               │
│ │           │   ('copyright', ''),               │                                               │
│ │           │   ('tracknumber', '1'),            │                                               │
│ │           │   ('tracktotal', '1'),             │                                               │
│ │           │   ('discnumber', '1'),             │                                               │
│ │           │   ('disctotal', '1'),              │                                               │
│ │           │   ('date', '2023-08-04'),          │                                               │
│ │           │   ... +3                           │                                               │
│ │           ]                                    │                                               │
│ ╰────────────────────────────────────────────────╯                                               │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/mutagen/_vorbis.py:177 in write                          │
│                                                                                                  │
│   174 │   │   │   framing (bool): if true, append a framing bit (see load)                       │
│   175 │   │   """                                                                                │
│   176 │   │                                                                                      │
│ ❱ 177 │   │   self.validate()                                                                    │
│   178 │   │                                                                                      │
│   179 │   │   def _encode(value):                                                                │
│   180 │   │   │   if not isinstance(value, bytes):                                               │
│                                                                                                  │
│ ╭──────────────────── locals ────────────────────╮                                               │
│ │ framing = False                                │                                               │
│ │    self = [                                    │                                               │
│ │           │   (                                │                                               │
│ │           │   │   'title',                     │                                               │
│ │           │   │   'Paint The Town Red'         │                                               │
│ │           │   ),                               │                                               │
│ │           │   (                                │                                               │
│ │           │   │   'album',                     │                                               │
│ │           │   │   'Paint The Town Red'         │                                               │
│ │           │   ),                               │                                               │
│ │           │   ('albumartist', 'Doja Cat'),     │                                               │
│ │           │   ('artist', 'Doja Cat'),          │                                               │
│ │           │   ('copyright', ''),               │                                               │
│ │           │   ('tracknumber', '1'),            │                                               │
│ │           │   ('tracktotal', '1'),             │                                               │
│ │           │   ('discnumber', '1'),             │                                               │
│ │           │   ('disctotal', '1'),              │                                               │
│ │           │   ('date', '2023-08-04'),          │                                               │
│ │           │   ... +3                           │                                               │
│ │           ]                                    │                                               │
│ ╰────────────────────────────────────────────────╯                                               │
│                                                                                                  │
│ /usr/local/lib/python3.11/site-packages/mutagen/_vorbis.py:157 in validate                       │
│                                                                                                  │
│   154 │   │   │                                                                                  │
│   155 │   │   │   if not isinstance(value, str):                                                 │
│   156 │   │   │   │   err = "%r needs to be str for key %r" % (value, key)                       │
│ ❱ 157 │   │   │   │   raise ValueError(err)                                                      │
│   158 │   │                                                                                      │
│   159 │   │   return True                                                                        │
│   160                                                                                            │
│                                                                                                  │
│ ╭─────────────────── locals ────────────────────╮                                                │
│ │   err = "None needs to be str for key 'isrc'" │                                                │
│ │   key = 'isrc'                                │                                                │
│ │  self = [                                     │                                                │
│ │         │   ('title', 'Paint The Town Red'),  │                                                │
│ │         │   ('album', 'Paint The Town Red'),  │                                                │
│ │         │   ('albumartist', 'Doja Cat'),      │                                                │
│ │         │   ('artist', 'Doja Cat'),           │                                                │
│ │         │   ('copyright', ''),                │                                                │
│ │         │   ('tracknumber', '1'),             │                                                │
│ │         │   ('tracktotal', '1'),              │                                                │
│ │         │   ('discnumber', '1'),              │                                                │
│ │         │   ('disctotal', '1'),               │                                                │
│ │         │   ('date', '2023-08-04'),           │                                                │
│ │         │   ... +3                            │                                                │
│ │         ]                                     │                                                │
│ │ value = None                                  │                                                │
│ ╰───────────────────────────────────────────────╯                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ValueError: None needs to be str for key 'isrc'
@exislow
Copy link
Owner

exislow commented Dec 20, 2023

Thank you for your report. It is fixed here: https://github.com/exislow/tidal-dl-ng/releases/tag/v0.4.13

Please upgrade / re-install from PyPi (pip). See README.md for how to.

@exislow exislow added the bug Something isn't working label Dec 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants