exislow / tidal-dl-ng

TIDAL Media Downloader Next Generation! Up to HiRes Lossless / TIDAL MAX 24-bit, 192 kHz.
GNU Affero General Public License v3.0
354 stars 34 forks source link

kanye - vultures, errors when downloading #40

Closed Xayayia closed 8 months ago

Xayayia commented 8 months ago

the errors start on 3rd track. highest quality, save lyrics to file turned on

exislow commented 8 months ago

I do not really understand what your issue is. Please be more precise. Provide settings, logs etc.

Xayayia commented 8 months ago

log:

$ tdn dl https://tidal.com/album/344769289
Let us check, if you are already logged in... Yep, looks good! You are logged in.
Download skipped, since file exists:
'/data/data/com.termux/files/home/download/Albums/Kanye
West - VULTURES 1/01. Kanye West - STARS.m4a'
Download skipped, since file exists:
'/data/data/com.termux/files/home/download/Albums/Kanye
West - VULTURES 1/02. Kanye West - KEYS TO MY LIFE.m4a'
╭─────────────────── Download Progress ───────────────────╮
│                                                         │
│                                                         │
│  List 'VULTURES 1'                     ⠏ ━╺━━━━━━  12%  │
│  Item 'Kanye West, Ty Dolla $ign - PA'   ━━━━━━━━ 100%  │
│                                                         │
│                                                         │
╰─────────────────────────────────────────────────────────╯
╭─────────── Traceback (most recent call last) ───────────╮
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/cli.py:184 in download                │
│                                                         │
│   181 │   │   │   │   │   media_id=item_id, media_type= │
│   182 │   │   │   │   )                                 │
│   183 │   │   │   elif media_type in [MediaType.ALBUM,  │
│ ❱ 184 │   │   │   │   dl.items(                         │
│   185 │   │   │   │   │   media_id=item_id,             │
│   186 │   │   │   │   │   media_type=media_type,        │
│   187 │   │   │   │   │   file_template=file_template,  │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │            ctx = <click.core.Context object at      │ │
│ │                  0x71aa29f8d0>                      │ │
│ │             dl = <tidal_dl_ng.download.Download     │ │
│ │                  object at 0x71a9c4fe50>            │ │
│ │  file_template = 'Albums/{artist_name} -            │ │
│ │                  {album_title}/{track_num}.         │ │
│ │                  {artist_name} - {track_title}'     │ │
│ │      file_urls = None                               │ │
│ │      fn_logger = <tidal_dl_ng.helper.wrapper.Logge… │ │
│ │                  object at 0x71a9c4f310>            │ │
│ │           item = 'https://tidal.com/album/34476928… │ │
│ │        item_id = '344769289'                        │ │
│ │     media_type = <MediaType.ALBUM: 'album'>         │ │
│ │       progress = <rich.progress.Progress object at  │ │
│ │                  0x71aa368b50>                      │ │
│ │ progress_table = <rich.table.Table object at        │ │
│ │                  0x71a9c4d810>                      │ │
│ │       settings = <tidal_dl_ng.config.Settings       │ │
│ │                  object at 0x71a9c31590>            │ │
│ │           urls = [                                  │ │
│ │                  │                                  │ │
│ │                  'https://tidal.com/album/34476928… │ │
│ │                  ]                                  │ │
│ │  urls_pos_last = 0                                  │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/download.py:381 in items              │
│                                                         │
│   378 │   │   while not self.progress.finished:         │
│   379 │   │   │   for media in items:                   │
│   380 │   │   │   │   # Download the item.              │
│ ❱ 381 │   │   │   │   status_download, result_path_file │
│   382 │   │   │   │   │   media=media,                  │
│   383 │   │   │   │   │   file_template=file_name_relat │
│   384 │   │   │   │   )                                 │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │     download_delay = True                           │ │
│ │ file_name_relative = 'Albums/Kanye West - VULTURES  │ │
│ │                      1/{track_num}. Kanye West -    │ │
│ │                      {track_title}'                 │ │
│ │      file_template = 'Albums/{artist_name} -        │ │
│ │                      {album_title}/{track_num}.     │ │
│ │                      {artist_name} - {track_title}' │ │
│ │              items = [                              │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x71aa541550>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x71b160c450>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x71a9c4ee10>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x71aa369d90>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x71a9c5f650>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x71a9c5fad0>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x71a9c72650>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x71a9c72b90>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x71a9c72e90>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x71a9c5ca10>,       │ │
│ │                      │   ... +6                     │ │
│ │                      ]                              │ │
│ │    list_media_name = 'VULTURES 1'                   │ │
│ │              media = <tidalapi.media.Track object   │ │
│ │                      at 0x71a9c4ee10>               │ │
│ │           media_id = '344769289'                    │ │
│ │         media_type = <MediaType.ALBUM: 'album'>     │ │
│ │            p_task1 = 0                              │ │
│ │    progress_stdout = True                           │ │
│ │   result_path_file = '/data/data/com.termux/files/… │ │
│ │                      West - VULTURES 1/02. Kan'+29  │ │
│ │               self = <tidal_dl_ng.download.Download │ │
│ │                      object at 0x71a9c4fe50>        │ │
│ │    status_download = False                          │ │
│ │     video_download = True                           │ │
│ │     videos_include = True                           │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/download.py:233 in item               │
│                                                         │
│   230 │   │   │   with tempfile.TemporaryDirectory(igno │
│   231 │   │   │   │   tmp_path_file = os.path.join(tmp_ │
│   232 │   │   │   │   # Download media.                 │
│ ❱ 233 │   │   │   │   tmp_path_file = self._download(me │
│   234 │   │   │   │                                     │
│   235 │   │   │   │   if isinstance(media, Video) and s │
│   236 │   │   │   │   │   # Convert `*.ts` file to `*.m │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │     download_delay = False                          │ │
│ │      download_skip = False                          │ │
│ │   extension_ignore = False                          │ │
│ │ file_name_relative = 'Albums/Kanye West - VULTURES  │ │
│ │                      1/03. Kanye West - PAID'       │ │
│ │      file_template = 'Albums/Kanye West - VULTURES  │ │
│ │                      1/{track_num}. Kanye West -    │ │
│ │                      {track_title}'                 │ │
│ │           manifest = 'PD94bWwgdmVyc2lvbj0nMS4wJyBl… │ │
│ │              media = <tidalapi.media.Track object   │ │
│ │                      at 0x71a9c4ee10>               │ │
│ │           media_id = None                           │ │
│ │         media_type = None                           │ │
│ │          mime_type = 'application/dash+xml'         │ │
│ │          path_file = '/data/data/com.termux/files/… │ │
│ │                      West - VULTURES 1/03. Kan'+18  │ │
│ │               self = <tidal_dl_ng.download.Download │ │
│ │                      object at 0x71a9c4fe50>        │ │
│ │             stream = <tidalapi.media.Stream object  │ │
│ │                      at 0x71aa542b50>               │ │
│ │    stream_manifest = StreamManifest(                │ │
│ │                      │   codecs='flac',             │ │
│ │                      │   mime_type='audio/mp4',     │ │
│ │                      │   urls=[                     │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │   ... +41                │ │
│ │                      │   ],                         │ │
│ │                      │   file_extension='.m4a',     │ │
│ │                      │   encryption_type='NONE',    │ │
│ │                      │   encryption_key=None        │ │
│ │                      )                              │ │
│ │       tmp_path_dir = '/data/data/com.termux/files/… │ │
│ │      tmp_path_file = '/data/data/com.termux/files/… │ │
│ │     video_download = True                           │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/download.py:153 in _download          │
│                                                         │
│   150 │   │                                             │
│   151 │   │   # Write metadata to file.                 │
│   152 │   │   if not isinstance(media, Video):          │
│ ❱ 153 │   │   │   self.metadata_write(media, tmp_path_f │
│   154 │   │                                             │
│   155 │   │   return tmp_path_file_decrypted            │
│   156                                                   │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │              block_size = None                      │ │
│ │                    data = b'\x00\x00\x01hmoof\x00\… │ │
│ │                       f = <_io.BufferedWriter       │ │
│ │                           name='/data/data/com.ter… │ │
│ │                   media = <tidalapi.media.Track     │ │
│ │                           object at 0x71a9c4ee10>   │ │
│ │              media_name = 'Kanye West, Ty Dolla     │ │
│ │                           $ign - PAID'              │ │
│ │        needs_decryption = False                     │ │
│ │                  p_task = 1                         │ │
│ │               path_file = '/data/data/com.termux/f… │ │
│ │         progress_stdout = True                      │ │
│ │          progress_total = 51                        │ │
│ │                       r = <Response [200]>          │ │
│ │                    self = <tidal_dl_ng.download.Do… │ │
│ │                           object at 0x71a9c4fe50>   │ │
│ │         stream_manifest = StreamManifest(           │ │
│ │                           │   codecs='flac',        │ │
│ │                           │                         │ │
│ │                           mime_type='audio/mp4',    │ │
│ │                           │   urls=[                │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │   ... +41           │ │
│ │                           │   ],                    │ │
│ │                           │                         │ │
│ │                           file_extension='.m4a',    │ │
│ │                           │                         │ │
│ │                           encryption_type='NONE',   │ │
│ │                           │   encryption_key=None   │ │
│ │                           )                         │ │
│ │ tmp_path_file_decrypted = '/data/data/com.termux/f… │ │
│ │                     url = 'https://sp-ad-fa.audio.… │ │
│ │              urls_count = 51                        │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/download.py:327 in metadata_write     │
│                                                         │
│   324 │   │   │   ),                                    │
│   325 │   │   )                                         │
│   326 │   │                                             │
│ ❱ 327 │   │   m.save()                                  │
│   328 │   │                                             │
│   329 │   │   result = True                             │
│   330                                                   │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │   copy_right = 'YZY'                                │ │
│ │         isrc = 'QZ7XS2400003'                       │ │
│ │       lyrics = None                                 │ │
│ │            m = <tidal_dl_ng.metadata.Metadata       │ │
│ │                object at 0x71a9c4d110>              │ │
│ │    path_file = '/data/data/com.termux/files/usr/tm… │ │
│ │ release_date = ''                                   │ │
│ │       result = False                                │ │
│ │         self = <tidal_dl_ng.download.Download       │ │
│ │                object at 0x71a9c4fe50>              │ │
│ │        track = <tidalapi.media.Track object at      │ │
│ │                0x71a9c4ee10>                        │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/metadata.py:97 in save                │
│                                                         │
│    94 │   │   elif isinstance(self.m, mutagen.mp3.MP3): │
│    95 │   │   │   self.set_mp3()                        │
│    96 │   │   elif isinstance(self.m, mutagen.mp4.MP4): │
│ ❱  97 │   │   │   self.set_mp4()                        │
│    98 │   │                                             │
│    99 │   │   self._cover()                             │
│   100 │   │   self.m.save()                             │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │ self = <tidal_dl_ng.metadata.Metadata object at     │ │
│ │        0x71a9c4d110>                                │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/metadata.py:143 in set_mp4            │
│                                                         │
│   140 │   │   # self.m.tags['\xa9gen'] = self.genre     │
│   141 │   │   self.m.tags["\xa9day"] = self.date        │
│   142 │   │   self.m.tags["\xa9wrt"] = ", ".join(self.c │
│ ❱ 143 │   │   self.m.tags["\xa9lyr"] = self.lyrics      │
│   144 │                                                 │
│   145 │   def cover_data(self, url: str = None, path_fi │
│   146 │   │   result: str | bytes = ""                  │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │ self = <tidal_dl_ng.metadata.Metadata object at     │ │
│ │        0x71a9c4d110>                                │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/mutagen/mp4/__init__.py:372 in __setitem__        │
│                                                         │
│    369 │   def __setitem__(self, key, value):           │
│    370 │   │   if not isinstance(key, str):             │
│    371 │   │   │   raise TypeError("key has to be str") │
│ ❱  372 │   │   self._render(key, value)                 │
│    373 │   │   super(MP4Tags, self).__setitem__(key, va │
│    374 │                                                │
│    375 │   @classmethod                                 │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │   key = '©lyr'                                      │ │
│ │  self = {'©nam': 'PAID', '©alb': 'VULTURES 1',      │ │
│ │         'aART': 'Kanye West, Ty Dolla $ign - PAID', │ │
│ │         '©ART': 'Kanye West, Ty Dolla $ign',        │ │
│ │         'cprt': 'YZY', 'trkn': [[3, 1]], 'disk':    │ │
│ │         [[1, 1]], '©day': '', '©wrt': ''}           │ │
│ │ value = None                                        │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/mutagen/mp4/__init__.py:388 in _render            │
│                                                         │
│    385 │   │   │   render_func = type(self).__render_te │
│    386 │   │   │   render_args = []                     │
│    387 │   │                                            │
│ ❱  388 │   │   return render_func(self, key, value, *re │
│    389 │                                                │
│    390 │   @convert_error(IOError, error)               │
│    391 │   @loadfile(writable=True)                     │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │   atom_name = b'\xa9lyr'                            │ │
│ │         key = '©lyr'                                │ │
│ │ render_args = ()                                    │ │
│ │ render_func = <function MP4Tags.__render_text at    │ │
│ │               0x71a9c254e0>                         │ │
│ │        self = {'©nam': 'PAID', '©alb': 'VULTURES    │ │
│ │               1', 'aART': 'Kanye West, Ty Dolla     │ │
│ │               $ign - PAID', '©ART': 'Kanye West, Ty │ │
│ │               Dolla $ign', 'cprt': 'YZY', 'trkn':   │ │
│ │               [[3, 1]], 'disk': [[1, 1]], '©day':   │ │
│ │               '', '©wrt': ''}                       │ │
│ │       value = None                                  │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/mutagen/mp4/__init__.py:822 in __render_text      │
│                                                         │
│    819 │   │   │   value = [value]                      │
│    820 │   │                                            │
│    821 │   │   encoded = []                             │
│ ❱  822 │   │   for v in value:                          │
│    823 │   │   │   if not isinstance(v, str):           │
│    824 │   │   │   │   raise TypeError("%r not str" % v │
│    825                                                  │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │ encoded = []                                        │ │
│ │   flags = <AtomDataType.UTF8: 1>                    │ │
│ │     key = '©lyr'                                    │ │
│ │    self = {'©nam': 'PAID', '©alb': 'VULTURES 1',    │ │
│ │           'aART': 'Kanye West, Ty Dolla $ign -      │ │
│ │           PAID', '©ART': 'Kanye West, Ty Dolla      │ │
│ │           $ign', 'cprt': 'YZY', 'trkn': [[3, 1]],   │ │
│ │           'disk': [[1, 1]], '©day': '', '©wrt': ''} │ │
│ │   value = None                                      │ │
│ ╰─────────────────────────────────────────────────────╯ │
╰─────────────────────────────────────────────────────────╯
TypeError: 'NoneType' object is not iterable
my cfg:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Key                      ┃ Value         ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ download_base_path       │ ./download    │ Where to     │
│                          │               │ store the    │
│                          │               │ downloaded   │
│                          │               │ media.       │
│ download_delay           │ True          │ Activate     │
│                          │               │ randomized   │
│                          │               │ download     │
│                          │               │ delay to     │
│                          │               │ mimic human  │
│                          │               │ behaviour.   │
│ format_album             │ Albums/{arti… │ Where to     │
│                          │ -             │ download     │
│                          │ {album_title… │ albums and   │
│                          │ {artist_name} │ how to name  │
│                          │ -             │ the items.   │
│                          │ {track_title} │              │
│ format_mix               │ Mix/{mix_nam… │ Where to     │
│                          │ -             │ download     │
│                          │ {track_title} │ mixes and    │
│                          │               │ how to name  │
│                          │               │ the items.   │
│ format_playlist          │ Playlists/{p… │ Where to     │
│                          │ -             │ download     │
│                          │ {track_title} │ playlists    │
│                          │               │ and how to   │
│                          │               │ name the     │
│                          │               │ items.       │
│ format_track             │ Tracks/{arti… │ Where to     │
│                          │ -             │ download     │
│                          │ {track_title} │ tracks and   │
│                          │               │ how to name  │
│                          │               │ the items.   │
│ format_video             │ Videos/{arti… │ Where to     │
│                          │ -             │ download     │
│                          │ {track_title} │ videos and   │
│                          │               │ how to name  │
│                          │               │ the items.   │
│ lyrics_embed             │ False         │ Embed lyrics │
│                          │               │ in audio     │
│                          │               │ file.        │
│ lyrics_file              │ True          │ Save lyrics  │
│                          │               │ to separate  │
│                          │               │ *.lrc file.  │
│ metadata_cover_dimension │ CoverDimensi… │ The          │
│                          │               │ dimensions   │
│                          │               │ of the cover │
│                          │               │ image        │
│                          │               │ embedded     │
│                          │               │ into the     │
│                          │               │ track.       │
│                          │               │ Possible     │
│                          │               │ values:      │
│                          │               │ 320x320,     │
│                          │               │ 640x640x     │
│                          │               │ 1280x1280.   │
│ quality_audio            │ Quality.hi_r… │ Desired      │
│                          │               │ audio        │
│                          │               │ download     │
│                          │               │ quality:     │
│                          │               │ "LOW"        │
│                          │               │ (96kbps),    │
│                          │               │ "HIGH"       │
│                          │               │ (320kbps),   │
│                          │               │ "LOSSLESS"   │
│                          │               │ (16 Bit,     │
│                          │               │ 44,1 kHz),   │
│                          │               │ "HI_RES"     │
│                          │               │ (MQA 24 Bit, │
│                          │               │ 96 kHz),     │
│                          │               │ "HI_RES_LOS… │
│                          │               │ (up to 24    │
│                          │               │ Bit, 192     │
│                          │               │ kHz)         │
│ quality_video            │ QualityVideo… │ Desired      │
│                          │               │ video        │
│                          │               │ download     │
│                          │               │ quality:     │
│                          │               │ "360",       │
│                          │               │ "480",       │
│                          │               │ "720",       │
│                          │               │ "1080"       │
│ skip_existing            │ SkipExisting… │ Do not       │
│                          │               │ download, if │
│                          │               │ file already │
│                          │               │ exists.      │
│                          │               │ Possible     │
│                          │               │ option false │
│                          │               │ = do not     │
│                          │               │ skip,        │
│                          │               │ 'exact' = if │
│                          │               │ filename     │
│                          │               │ already      │
│                          │               │ exists,      │
│                          │               │ 'extension_… │
│                          │               │ = skip even  │
│                          │               │ if a file    │
│                          │               │ with a       │
│                          │               │ different    │
│                          │               │ file         │
│                          │               │ extension    │
│                          │               │ exists.      │
│ video_convert_mp4        │ True          │ Videos are   │
│                          │               │ downloaded   │
│                          │               │ as MPEG      │
│                          │               │ Transport    │
│                          │               │ Stream (TS)  │
│                          │               │ files. With  │
│                          │               │ this option  │
│                          │               │ each video   │
│                          │               │ will be      │
│                          │               │ converted to │
│                          │               │ MP4. FFMPEG  │
│                          │               │ must be      │
│                          │               │ installed    │
│                          │               │ and added to │
│                          │               │ your 'PATH'  │
│                          │               │ variable.    │
│ video_download           │ True          │ Allow        │
│                          │               │ download of  │
│                          │               │ videos.      │
exislow commented 8 months ago

Great, thank you! Looks like a duplicate of #38

I will release the bug fix soon.

exislow commented 8 months ago

Please test it: https://github.com/exislow/tidal-dl-ng/releases/tag/v0.8.2

Xayayia commented 8 months ago

Successfully uninstalled tidal-dl-ng-0.8.1 Successfully installed tidal-dl-ng-0.8.2

~ $ tdn dl https://tidal.com/album/344769289
Let us check, if you are already logged in... Yep, looks good! You are logged in.
Download skipped, since file exists:
'/data/data/com.termux/files/home/download/Albums/Kanye
West - VULTURES 1/01. Kanye West - STARS.m4a'
Download skipped, since file exists:
'/data/data/com.termux/files/home/download/Albums/Kanye
West - VULTURES 1/02. Kanye West - KEYS TO MY LIFE.m4a'
╭─────────────────── Download Progress ───────────────────╮
│                                                         │
│                                                         │
│  List 'VULTURES 1'                     ⠸ ━╺━━━━━━  12%  │
│  Item 'Kanye West, Ty Dolla $ign - PA'   ━━━━━━━━ 100%  │
│                                                         │
│                                                         │
╰─────────────────────────────────────────────────────────╯
╭─────────── Traceback (most recent call last) ───────────╮
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/cli.py:184 in download                │
│                                                         │
│   181 │   │   │   │   │   media_id=item_id, media_type= │
│   182 │   │   │   │   )                                 │
│   183 │   │   │   elif media_type in [MediaType.ALBUM,  │
│ ❱ 184 │   │   │   │   dl.items(                         │
│   185 │   │   │   │   │   media_id=item_id,             │
│   186 │   │   │   │   │   media_type=media_type,        │
│   187 │   │   │   │   │   file_template=file_template,  │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │            ctx = <click.core.Context object at      │ │
│ │                  0x7b57d61150>                      │ │
│ │             dl = <tidal_dl_ng.download.Download     │ │
│ │                  object at 0x7b5747a390>            │ │
│ │  file_template = 'Albums/{artist_name} -            │ │
│ │                  {album_title}/{track_num}.         │ │
│ │                  {artist_name} - {track_title}'     │ │
│ │      file_urls = None                               │ │
│ │      fn_logger = <tidal_dl_ng.helper.wrapper.Logge… │ │
│ │                  object at 0x7b5747b710>            │ │
│ │           item = 'https://tidal.com/album/34476928… │ │
│ │        item_id = '344769289'                        │ │
│ │     media_type = <MediaType.ALBUM: 'album'>         │ │
│ │       progress = <rich.progress.Progress object at  │ │
│ │                  0x7b57d74050>                      │ │
│ │ progress_table = <rich.table.Table object at        │ │
│ │                  0x7b57bc53d0>                      │ │
│ │       settings = <tidal_dl_ng.config.Settings       │ │
│ │                  object at 0x7b57478c50>            │ │
│ │           urls = [                                  │ │
│ │                  │                                  │ │
│ │                  'https://tidal.com/album/34476928… │ │
│ │                  ]                                  │ │
│ │  urls_pos_last = 0                                  │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/download.py:382 in items              │
│                                                         │
│   379 │   │   while not self.progress.finished:         │
│   380 │   │   │   for media in items:                   │
│   381 │   │   │   │   # Download the item.              │
│ ❱ 382 │   │   │   │   status_download, result_path_file │
│   383 │   │   │   │   │   media=media,                  │
│   384 │   │   │   │   │   file_template=file_name_relat │
│   385 │   │   │   │   )                                 │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │     download_delay = True                           │ │
│ │ file_name_relative = 'Albums/Kanye West - VULTURES  │ │
│ │                      1/{track_num}. Kanye West -    │ │
│ │                      {track_title}'                 │ │
│ │      file_template = 'Albums/{artist_name} -        │ │
│ │                      {album_title}/{track_num}.     │ │
│ │                      {artist_name} - {track_title}' │ │
│ │              items = [                              │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x7b57d855d0>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x7b57d85990>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x7b57d85ad0>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x7b57bc5c50>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x7b5747a590>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x7b5749c790>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x7b574b25d0>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x7b574b2910>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x7b574b2a90>,       │ │
│ │                      │   <tidalapi.media.Track      │ │
│ │                      object at 0x7b5749d790>,       │ │
│ │                      │   ... +6                     │ │
│ │                      ]                              │ │
│ │    list_media_name = 'VULTURES 1'                   │ │
│ │              media = <tidalapi.media.Track object   │ │
│ │                      at 0x7b57d85ad0>               │ │
│ │           media_id = '344769289'                    │ │
│ │         media_type = <MediaType.ALBUM: 'album'>     │ │
│ │            p_task1 = 0                              │ │
│ │    progress_stdout = True                           │ │
│ │   result_path_file = '/data/data/com.termux/files/… │ │
│ │                      West - VULTURES 1/02. Kan'+29  │ │
│ │               self = <tidal_dl_ng.download.Download │ │
│ │                      object at 0x7b5747a390>        │ │
│ │    status_download = False                          │ │
│ │     video_download = True                           │ │
│ │     videos_include = True                           │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/download.py:233 in item               │
│                                                         │
│   230 │   │   │   with tempfile.TemporaryDirectory(igno │
│   231 │   │   │   │   tmp_path_file = os.path.join(tmp_ │
│   232 │   │   │   │   # Download media.                 │
│ ❱ 233 │   │   │   │   tmp_path_file = self._download(me │
│   234 │   │   │   │                                     │
│   235 │   │   │   │   if isinstance(media, Video) and s │
│   236 │   │   │   │   │   # Convert `*.ts` file to `*.m │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │     download_delay = False                          │ │
│ │      download_skip = False                          │ │
│ │   extension_ignore = False                          │ │
│ │ file_name_relative = 'Albums/Kanye West - VULTURES  │ │
│ │                      1/03. Kanye West - PAID'       │ │
│ │      file_template = 'Albums/Kanye West - VULTURES  │ │
│ │                      1/{track_num}. Kanye West -    │ │
│ │                      {track_title}'                 │ │
│ │           manifest = 'PD94bWwgdmVyc2lvbj0nMS4wJyBl… │ │
│ │              media = <tidalapi.media.Track object   │ │
│ │                      at 0x7b57d85ad0>               │ │
│ │           media_id = None                           │ │
│ │         media_type = None                           │ │
│ │          mime_type = 'application/dash+xml'         │ │
│ │          path_file = '/data/data/com.termux/files/… │ │
│ │                      West - VULTURES 1/03. Kan'+18  │ │
│ │               self = <tidal_dl_ng.download.Download │ │
│ │                      object at 0x7b5747a390>        │ │
│ │             stream = <tidalapi.media.Stream object  │ │
│ │                      at 0x7b574791d0>               │ │
│ │    stream_manifest = StreamManifest(                │ │
│ │                      │   codecs='flac',             │ │
│ │                      │   mime_type='audio/mp4',     │ │
│ │                      │   urls=[                     │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │                          │ │
│ │                      'https://sp-ad-fa.audio.tidal… │ │
│ │                      │   │   ... +41                │ │
│ │                      │   ],                         │ │
│ │                      │   file_extension='.m4a',     │ │
│ │                      │   encryption_type='NONE',    │ │
│ │                      │   encryption_key=None        │ │
│ │                      )                              │ │
│ │       tmp_path_dir = '/data/data/com.termux/files/… │ │
│ │      tmp_path_file = '/data/data/com.termux/files/… │ │
│ │     video_download = True                           │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/download.py:153 in _download          │
│                                                         │
│   150 │   │                                             │
│   151 │   │   # Write metadata to file.                 │
│   152 │   │   if not isinstance(media, Video):          │
│ ❱ 153 │   │   │   self.metadata_write(media, tmp_path_f │
│   154 │   │                                             │
│   155 │   │   return tmp_path_file_decrypted            │
│   156                                                   │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │              block_size = None                      │ │
│ │                    data = b'\x00\x00\x01hmoof\x00\… │ │
│ │                       f = <_io.BufferedWriter       │ │
│ │                           name='/data/data/com.ter… │ │
│ │                   media = <tidalapi.media.Track     │ │
│ │                           object at 0x7b57d85ad0>   │ │
│ │              media_name = 'Kanye West, Ty Dolla     │ │
│ │                           $ign - PAID'              │ │
│ │        needs_decryption = False                     │ │
│ │                  p_task = 1                         │ │
│ │               path_file = '/data/data/com.termux/f… │ │
│ │         progress_stdout = True                      │ │
│ │          progress_total = 51                        │ │
│ │                       r = <Response [200]>          │ │
│ │                    self = <tidal_dl_ng.download.Do… │ │
│ │                           object at 0x7b5747a390>   │ │
│ │         stream_manifest = StreamManifest(           │ │
│ │                           │   codecs='flac',        │ │
│ │                           │                         │ │
│ │                           mime_type='audio/mp4',    │ │
│ │                           │   urls=[                │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │                     │ │
│ │                           'https://sp-ad-fa.audio.… │ │
│ │                           │   │   ... +41           │ │
│ │                           │   ],                    │ │
│ │                           │                         │ │
│ │                           file_extension='.m4a',    │ │
│ │                           │                         │ │
│ │                           encryption_type='NONE',   │ │
│ │                           │   encryption_key=None   │ │
│ │                           )                         │ │
│ │ tmp_path_file_decrypted = '/data/data/com.termux/f… │ │
│ │                     url = 'https://sp-ad-fa.audio.… │ │
│ │              urls_count = 51                        │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/download.py:328 in metadata_write     │
│                                                         │
│   325 │   │   │   ),                                    │
│   326 │   │   )                                         │
│   327 │   │                                             │
│ ❱ 328 │   │   m.save()                                  │
│   329 │   │                                             │
│   330 │   │   result = True                             │
│   331                                                   │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │   copy_right = 'YZY'                                │ │
│ │         isrc = 'QZ7XS2400003'                       │ │
│ │       lyrics = None                                 │ │
│ │            m = <tidal_dl_ng.metadata.Metadata       │ │
│ │                object at 0x7b57c7d790>              │ │
│ │    path_file = '/data/data/com.termux/files/usr/tm… │ │
│ │ release_date = ''                                   │ │
│ │       result = False                                │ │
│ │         self = <tidal_dl_ng.download.Download       │ │
│ │                object at 0x7b5747a390>              │ │
│ │        track = <tidalapi.media.Track object at      │ │
│ │                0x7b57d85ad0>                        │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/metadata.py:97 in save                │
│                                                         │
│    94 │   │   elif isinstance(self.m, mutagen.mp3.MP3): │
│    95 │   │   │   self.set_mp3()                        │
│    96 │   │   elif isinstance(self.m, mutagen.mp4.MP4): │
│ ❱  97 │   │   │   self.set_mp4()                        │
│    98 │   │                                             │
│    99 │   │   self._cover()                             │
│   100 │   │   self.m.save()                             │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │ self = <tidal_dl_ng.metadata.Metadata object at     │ │
│ │        0x7b57c7d790>                                │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/tidal_dl_ng/metadata.py:143 in set_mp4            │
│                                                         │
│   140 │   │   # self.m.tags['\xa9gen'] = self.genre     │
│   141 │   │   self.m.tags["\xa9day"] = self.date        │
│   142 │   │   self.m.tags["\xa9wrt"] = ", ".join(self.c │
│ ❱ 143 │   │   self.m.tags["\xa9lyr"] = self.lyrics      │
│   144 │                                                 │
│   145 │   def cover_data(self, url: str = None, path_fi │
│   146 │   │   result: str | bytes = ""                  │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │ self = <tidal_dl_ng.metadata.Metadata object at     │ │
│ │        0x7b57c7d790>                                │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/mutagen/mp4/__init__.py:372 in __setitem__        │
│                                                         │
│    369 │   def __setitem__(self, key, value):           │
│    370 │   │   if not isinstance(key, str):             │
│    371 │   │   │   raise TypeError("key has to be str") │
│ ❱  372 │   │   self._render(key, value)                 │
│    373 │   │   super(MP4Tags, self).__setitem__(key, va │
│    374 │                                                │
│    375 │   @classmethod                                 │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │   key = '©lyr'                                      │ │
│ │  self = {'©nam': 'PAID', '©alb': 'VULTURES 1',      │ │
│ │         'aART': 'Kanye West, Ty Dolla $ign - PAID', │ │
│ │         '©ART': 'Kanye West, Ty Dolla $ign',        │ │
│ │         'cprt': 'YZY', 'trkn': [[3, 1]], 'disk':    │ │
│ │         [[1, 1]], '©day': '', '©wrt': ''}           │ │
│ │ value = None                                        │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/mutagen/mp4/__init__.py:388 in _render            │
│                                                         │
│    385 │   │   │   render_func = type(self).__render_te │
│    386 │   │   │   render_args = []                     │
│    387 │   │                                            │
│ ❱  388 │   │   return render_func(self, key, value, *re │
│    389 │                                                │
│    390 │   @convert_error(IOError, error)               │
│    391 │   @loadfile(writable=True)                     │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │   atom_name = b'\xa9lyr'                            │ │
│ │         key = '©lyr'                                │ │
│ │ render_args = ()                                    │ │
│ │ render_func = <function MP4Tags.__render_text at    │ │
│ │               0x7b574654e0>                         │ │
│ │        self = {'©nam': 'PAID', '©alb': 'VULTURES    │ │
│ │               1', 'aART': 'Kanye West, Ty Dolla     │ │
│ │               $ign - PAID', '©ART': 'Kanye West, Ty │ │
│ │               Dolla $ign', 'cprt': 'YZY', 'trkn':   │ │
│ │               [[3, 1]], 'disk': [[1, 1]], '©day':   │ │
│ │               '', '©wrt': ''}                       │ │
│ │       value = None                                  │ │
│ ╰─────────────────────────────────────────────────────╯ │
│                                                         │
│ /data/data/com.termux/files/usr/lib/python3.11/site-pac │
│ kages/mutagen/mp4/__init__.py:822 in __render_text      │
│                                                         │
│    819 │   │   │   value = [value]                      │
│    820 │   │                                            │
│    821 │   │   encoded = []                             │
│ ❱  822 │   │   for v in value:                          │
│    823 │   │   │   if not isinstance(v, str):           │
│    824 │   │   │   │   raise TypeError("%r not str" % v │
│    825                                                  │
│                                                         │
│ ╭────────────────────── locals ───────────────────────╮ │
│ │ encoded = []                                        │ │
│ │   flags = <AtomDataType.UTF8: 1>                    │ │
│ │     key = '©lyr'                                    │ │
│ │    self = {'©nam': 'PAID', '©alb': 'VULTURES 1',    │ │
│ │           'aART': 'Kanye West, Ty Dolla $ign -      │ │
│ │           PAID', '©ART': 'Kanye West, Ty Dolla      │ │
│ │           $ign', 'cprt': 'YZY', 'trkn': [[3, 1]],   │ │
│ │           'disk': [[1, 1]], '©day': '', '©wrt': ''} │ │
│ │   value = None                                      │ │
│ ╰─────────────────────────────────────────────────────╯ │
╰─────────────────────────────────────────────────────────╯
TypeError: 'NoneType' object is not iterable
exislow commented 8 months ago

I cannot re-produce it, sorry. Are you sure, you are running the latest version? tidal-dl-ng --version

I can tell you form the line numbers, that you are not running the latest version. Try to get rid of all copies of this app and install only the very latest.

Xayayia commented 8 months ago

I wiped termux data and installed tdn fresh and it works now. The 2 first lines are from the upgrade command, so I don't know how it could still use 0.8.1. If there's any "wipe something" command maybe it could be useful step of updating