nathom / streamrip

A scriptable music downloader for Qobuz, Tidal, SoundCloud, and Deezer
GNU General Public License v3.0
2.72k stars 247 forks source link

[BUG] TypeError: Can't concat Picture to bytes #281

Closed CanadianBaconBoi closed 2 years ago

CanadianBaconBoi commented 2 years ago

Describe the bug

When trying to download "Normal" quality albums from tidal (m4a), streamrip fails to add the cover to the track despite m4a supporting embedded images.

$ rip url https://tidal.com/browse/album/6130247
Cover |█...█| 00:00 left at 7.85MB/s
Track 03 |█...█| 00:00 left at 6.40MB/s
Track 02 |█...█| 00:00 left at 3.39MB/s
Track 01 |█...█| 00:00 left at 3.29MB/s
Track 04 |█...█| 00:00 left at 8.26MB/s
Track 05 |█...█| 00:00 left at 10.8MB/s
    TypeError

    can't concat Picture to bytes

      at ~/.local/lib/python3.8/site-packages/mutagen/mp4/__init__.py:789 in __render_cover
    785│                 imageformat = cover.imageformat
    786│             except AttributeError:
    787│                 imageformat = MP4Cover.FORMAT_JPEG
    788│             atom_data.append(Atom.render(
  →   789│                 b"data", struct.pack(">2I", imageformat, 0) + cover))
    790│         return Atom.render(_key2name(key), b"".join(atom_data))
    791│
    792│     def __parse_text(self, atom, data, implicit=True):
    793│         # implicit = False, for parsing unknown atoms only take utf8 ones.

Command Used

rip url https://tidal.com/browse/album/6130247

Debug Traceback

DEBUG:streamrip:Config loaded
DEBUG:streamrip:Parsed urls: [('tidal', 'album', '6130247')]
DEBUG:streamrip:Searching for {'id': '6130247'} in database
DEBUG:streamrip:Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?)
DEBUG:streamrip:{'quality': 3, 'download_videos': True, 'user_id': 184743579, 'country_code': 'US', 'access_token': 'eyJraWQiOiJ2OU1GbFhqWSIsImFsZyI6IkVTMjU2In0.eyJ0eXBlIjoibzJfYWNjZXNzIiwidWlkIjoxODQ3NDM1NzksInNjb3BlIjoid19zdWIgcl91c3Igd191c3IiLCJnVmVyIjowLCJzVmVyIjowLCJjaWQiOjIzMjYsImV4cCI6MTY0MzMxMjU3OCwic2lkIjoiZWEzYjFhYzQtNzRhMi00YjkzLWE5ZmEtNmU2ODFmM2MzMWZkIiwiaXNzIjoiaHR0cHM6Ly9hdXRoLnRpZGFsLmNvbS92MSJ9.uzYrz_JF4lhPW2CIZx4vgm59_TVKc4FximJw8pD8Af-VZbTCPjWihn94h9R7rxxnv3ZwRhM3nGWWgIVXFtymaQ', 'refresh_token': 'eyJraWQiOiJoUzFKYTdVMCIsImFsZyI6IkVTNTEyIn0.eyJ0eXBlIjoibzJfcmVmcmVzaCIsInVpZCI6MTg0NzQzNTc5LCJzY29wZSI6Indfc3ViIHJfdXNyIHdfdXNyIiwiY2lkIjoyMzI2LCJzVmVyIjowLCJnVmVyIjowLCJpc3MiOiJodHRwczovL2F1dGgudGlkYWwuY29tL3YxIn0.AfxJuGJ-4rDGC5cKlbuqs7qNVrWpLL8CEvwSDr431Ux4TkYFKZS_W5CyUgDrhBpM3K9UtbA_K-YAyp5hkS-euxoJAc84US_bNm8kK2KhVkE6p9BGSHBnYsxcCGNbVYtXqpMte4RVctV3v5szv0q_kj-uN-KlsF2kAbDsA35nw4yPej5Y', 'token_expiry': 1643312578.0861301}
DEBUG:streamrip:Logging in with access token
Logged into Tidal
DEBUG:streamrip:Config saved: /home/connor/.config/streamrip/config.toml
DEBUG:streamrip:{'downloads': {'folder': '/mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/', 'source_subdirectories': False, 'concurrency': {'enabled': True, 'max_connections': 3}}, 'qobuz': {'quality': 3, 'download_booklets': True, 'email': '', 'password': '', 'app_id': '', 'secrets': []}, 'tidal': {'quality': 3, 'download_videos': True, 'user_id': 184743579, 'country_code': 'US', 'access_token': 'eyJraWQiOiJ2OU1GbFhqWSIsImFsZyI6IkVTMjU2In0.eyJ0eXBlIjoibzJfYWNjZXNzIiwidWlkIjoxODQ3NDM1NzksInNjb3BlIjoid19zdWIgcl91c3Igd191c3IiLCJnVmVyIjowLCJzVmVyIjowLCJjaWQiOjIzMjYsImV4cCI6MTY0MzMxMjU3OCwic2lkIjoiZWEzYjFhYzQtNzRhMi00YjkzLWE5ZmEtNmU2ODFmM2MzMWZkIiwiaXNzIjoiaHR0cHM6Ly9hdXRoLnRpZGFsLmNvbS92MSJ9.uzYrz_JF4lhPW2CIZx4vgm59_TVKc4FximJw8pD8Af-VZbTCPjWihn94h9R7rxxnv3ZwRhM3nGWWgIVXFtymaQ', 'refresh_token': 'eyJraWQiOiJoUzFKYTdVMCIsImFsZyI6IkVTNTEyIn0.eyJ0eXBlIjoibzJfcmVmcmVzaCIsInVpZCI6MTg0NzQzNTc5LCJzY29wZSI6Indfc3ViIHJfdXNyIHdfdXNyIiwiY2lkIjoyMzI2LCJzVmVyIjowLCJnVmVyIjowLCJpc3MiOiJodHRwczovL2F1dGgudGlkYWwuY29tL3YxIn0.AfxJuGJ-4rDGC5cKlbuqs7qNVrWpLL8CEvwSDr431Ux4TkYFKZS_W5CyUgDrhBpM3K9UtbA_K-YAyp5hkS-euxoJAc84US_bNm8kK2KhVkE6p9BGSHBnYsxcCGNbVYtXqpMte4RVctV3v5szv0q_kj-uN-KlsF2kAbDsA35nw4yPej5Y', 'token_expiry': 1643312578.0861301}, 'deezer': {'quality': 2, 'arl': '', 'use_deezloader': True, 'deezloader_warnings': True}, 'soundcloud': {'quality': 0, 'client_id': '', 'app_version': ''}, 'youtube': {'quality': 0, 'download_videos': False, 'video_downloads_folder': ''}, 'database': {'downloads': {'enabled': True, 'path': '/home/connor/.config/streamrip/downloads.db'}, 'failed_downloads': {'enabled': True, 'path': '/home/connor/.config/streamrip/failed_downloads.db'}}, 'conversion': {'enabled': False, 'codec': 'ALAC', 'sampling_rate': 48000, 'bit_depth': 24, 'lossy_bitrate': 320}, 'filters': {'extras': False, 'repeats': False, 'non_albums': False, 'features': False, 'non_studio_albums': False, 'non_remaster': False}, 'artwork': {'embed': True, 'size': 'large', 'max_width': -1, 'max_height': -1, 'keep_hires_cover': True}, 'metadata': {'set_playlist_to_album': True, 'new_playlist_tracknumbers': True, 'exclude': []}, 'filepaths': {'add_singles_to_folder': False, 'folder_format': '{albumartist} - {title} ({year}) [{container}] [{bit_depth}B-{sampling_rate}kHz]', 'track_format': '{tracknumber} - {title}', 'restrict_characters': False}, 'lastfm': {'source': 'qobuz', 'fallback_source': 'deezer'}, 'theme': {'progress_bar': 'dainty'}, 'misc': {'version': '1.9.2'}}
DEBUG:streamrip:Arguments from config: {'restrict_filenames': False, 'parent_folder': '/mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/', 'folder_format': '{albumartist} - {title} ({year}) [{container}] [{bit_depth}B-{sampling_rate}kHz]', 'track_format': '{tracknumber} - {title}', 'embed_cover': True, 'embed_cover_size': 'large', 'keep_hires_cover': True, 'set_playlist_to_album': True, 'stay_temp': False, 'conversion': {'enabled': False, 'codec': 'ALAC', 'sampling_rate': 48000, 'bit_depth': 24, 'lossy_bitrate': 320}, 'concurrent_downloads': True, 'max_connections': 3, 'new_tracknumbers': True, 'download_videos': True, 'download_booklets': True, 'download_youtube_videos': False, 'youtube_video_downloads_folder': '', 'add_singles_to_folder': False, 'max_artwork_width': -1, 'max_artwork_height': -1, 'exclude_tags': []}
DEBUG:streamrip:Loading metadata
DEBUG:streamrip:{'id': 6130247, 'title': 'Sing What You Want', 'duration': 1240, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'allowStreaming': True, 'premiumStreamingOnly': False, 'numberOfTracks': 5, 'numberOfVideos': 0, 'numberOfVolumes': 1, 'releaseDate': '2008-12-01', 'copyright': '2008 Civil Music / Seclusiasis', 'type': 'EP', 'version': None, 'url': 'http://www.tidal.com/album/6130247', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None, 'explicit': False, 'upc': '5060158998425', 'popularity': 0, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'tracks': [{'id': 6130248, 'title': 'Sing What You Want', 'duration': 197, 'replayGain': -11.05, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 1, 'volumeNumber': 1, 'version': None, 'popularity': 0, 'copyright': '2008 Civil Music / Seclusiasis', 'url': 'http://www.tidal.com/track/6130248', 'isrc': 'GBWTT0800507', 'editable': False, 'explicit': False, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'album': {'id': 6130247, 'title': 'Sing What You Want', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None}, 'mixes': {}}, {'id': 6130249, 'title': 'One For The Money', 'duration': 196, 'replayGain': -11.05, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 2, 'volumeNumber': 1, 'version': None, 'popularity': 0, 'copyright': '2008 Civil Music / Seclusiasis', 'url': 'http://www.tidal.com/track/6130249', 'isrc': 'GBWTT0800514', 'editable': False, 'explicit': False, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'album': {'id': 6130247, 'title': 'Sing What You Want', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None}, 'mixes': {}}, {'id': 6130250, 'title': "Sing What You Want (Rusko's Skwee Remix)", 'duration': 204, 'replayGain': -11.05, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 3, 'volumeNumber': 1, 'version': None, 'popularity': 1, 'copyright': '2008 Civil Music / Seclusiasis', 'url': 'http://www.tidal.com/track/6130250', 'isrc': 'GBWTT0800303', 'editable': False, 'explicit': False, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'album': {'id': 6130247, 'title': 'Sing What You Want', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None}, 'mixes': {}}, {'id': 6130251, 'title': 'Sing What You Want (MRK1 Remix)', 'duration': 334, 'replayGain': -11.05, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 4, 'volumeNumber': 1, 'version': None, 'popularity': 0, 'copyright': '2008 Civil Music / Seclusiasis', 'url': 'http://www.tidal.com/track/6130251', 'isrc': 'GBWTT0800304', 'editable': False, 'explicit': False, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'album': {'id': 6130247, 'title': 'Sing What You Want', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None}, 'mixes': {}}, {'id': 6130252, 'title': 'One For The Money(Starkey Remix)', 'duration': 306, 'replayGain': -11.05, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 5, 'volumeNumber': 1, 'version': None, 'popularity': 0, 'copyright': '2008 Civil Music / Seclusiasis', 'url': 'http://www.tidal.com/track/6130252', 'isrc': 'GBWTT0800305', 'editable': False, 'explicit': False, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'album': {'id': 6130247, 'title': 'Sing What You Want', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None}, 'mixes': {}}]}
DEBUG:streamrip:{'id': 6130247, 'title': 'Sing What You Want', 'duration': 1240, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'allowStreaming': True, 'premiumStreamingOnly': False, 'numberOfTracks': 5, 'numberOfVideos': 0, 'numberOfVolumes': 1, 'releaseDate': '2008-12-01', 'copyright': '2008 Civil Music / Seclusiasis', 'type': 'EP', 'version': None, 'url': 'http://www.tidal.com/album/6130247', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None, 'explicit': False, 'upc': '5060158998425', 'popularity': 0, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'tracks': [{'id': 6130248, 'title': 'Sing What You Want', 'duration': 197, 'replayGain': -11.05, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 1, 'volumeNumber': 1, 'version': None, 'popularity': 0, 'copyright': '2008 Civil Music / Seclusiasis', 'url': 'http://www.tidal.com/track/6130248', 'isrc': 'GBWTT0800507', 'editable': False, 'explicit': False, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'album': {'id': 6130247, 'title': 'Sing What You Want', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None}, 'mixes': {}}, {'id': 6130249, 'title': 'One For The Money', 'duration': 196, 'replayGain': -11.05, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 2, 'volumeNumber': 1, 'version': None, 'popularity': 0, 'copyright': '2008 Civil Music / Seclusiasis', 'url': 'http://www.tidal.com/track/6130249', 'isrc': 'GBWTT0800514', 'editable': False, 'explicit': False, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'album': {'id': 6130247, 'title': 'Sing What You Want', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None}, 'mixes': {}}, {'id': 6130250, 'title': "Sing What You Want (Rusko's Skwee Remix)", 'duration': 204, 'replayGain': -11.05, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 3, 'volumeNumber': 1, 'version': None, 'popularity': 1, 'copyright': '2008 Civil Music / Seclusiasis', 'url': 'http://www.tidal.com/track/6130250', 'isrc': 'GBWTT0800303', 'editable': False, 'explicit': False, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'album': {'id': 6130247, 'title': 'Sing What You Want', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None}, 'mixes': {}}, {'id': 6130251, 'title': 'Sing What You Want (MRK1 Remix)', 'duration': 334, 'replayGain': -11.05, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 4, 'volumeNumber': 1, 'version': None, 'popularity': 0, 'copyright': '2008 Civil Music / Seclusiasis', 'url': 'http://www.tidal.com/track/6130251', 'isrc': 'GBWTT0800304', 'editable': False, 'explicit': False, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'album': {'id': 6130247, 'title': 'Sing What You Want', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None}, 'mixes': {}}, {'id': 6130252, 'title': 'One For The Money(Starkey Remix)', 'duration': 306, 'replayGain': -11.05, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'streamStartDate': '2008-12-01T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 5, 'volumeNumber': 1, 'version': None, 'popularity': 0, 'copyright': '2008 Civil Music / Seclusiasis', 'url': 'http://www.tidal.com/track/6130252', 'isrc': 'GBWTT0800305', 'editable': False, 'explicit': False, 'audioQuality': 'HIGH', 'audioModes': ['STEREO'], 'artist': {'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3843380, 'name': 'Kotchy', 'type': 'MAIN', 'picture': None}], 'album': {'id': 6130247, 'title': 'Sing What You Want', 'cover': '1d340f4b-07ce-4892-8329-443fa1629c2c', 'vibrantColor': '#63bfd9', 'videoCover': None}, 'mixes': {}}]}
DEBUG:streamrip:{'meta': <TrackMetadata object 0x6ed4ff09cd309866>, 'id': 6130248, 'part_of_tracklist': True}
DEBUG:streamrip:{'meta': <TrackMetadata object 0x60dfa858b10033ec>, 'id': 6130249, 'part_of_tracklist': True}
DEBUG:streamrip:{'meta': <TrackMetadata object -0x2e72763e9c6b6fa3>, 'id': 6130250, 'part_of_tracklist': True}
DEBUG:streamrip:{'meta': <TrackMetadata object -0x4bb885474b7aa7c7>, 'id': 6130251, 'part_of_tracklist': True}
DEBUG:streamrip:{'meta': <TrackMetadata object -0x12ea116b1d168429>, 'id': 6130252, 'part_of_tracklist': True}
DEBUG:streamrip:Sampling rate, bit depth = ()
DEBUG:streamrip:Formatter: {'albumartist': 'Kotchy', 'title': 'Sing What You Want', 'year': '2008', 'bit_depth': None, 'sampling_rate': None, 'container': 'FLAC', 'albumcomposer': None, 'id': 6130247}
DEBUG:streamrip:Formatter keys: {albumartist} - {title} ({year}) [{container}] [{bit_depth}B-{sampling_rate}kHz]
DEBUG:streamrip:'albumartist'
DEBUG:streamrip:Kotchy
DEBUG:streamrip:1
DEBUG:streamrip:'title'
DEBUG:streamrip:Sing What You Want
DEBUG:streamrip:1
DEBUG:streamrip:'year'
DEBUG:streamrip:2008
DEBUG:streamrip:1
DEBUG:streamrip:'container'
DEBUG:streamrip:FLAC
DEBUG:streamrip:1
DEBUG:streamrip:'bit_depth'
DEBUG:streamrip:None
DEBUG:streamrip:'sampling_rate'
DEBUG:streamrip:None

Downloading Sing What You Want (Album)

Downloading cover art (large)
DEBUG:streamrip:Chosen cover url: https://resources.tidal.com/images/1d340f4b/07ce/4892/8329/443fa1629c2c/640x640.jpg
DEBUG:streamrip:Downloading hires cover

Cover |          | ? left at ?B/s 
Cover |██████████| 00:00 left at 6.95MB/s 
DEBUG:streamrip:Getting cover_obj from /tmp/cover_4ddb7dc462aa3b28e69d45b3b1e6bc4a.jpg

DEBUG:streamrip:Downloading track to /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]
DEBUG:streamrip:Downloading track to /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]
DEBUG:streamrip:Track meta formatter {'tracknumber': 1, 'artist': 'Kotchy', 'albumartist': 'Kotchy', 'composer': None, 'title': 'Sing What You Want', 'albumcomposer': None, 'explicit': False}
DEBUG:streamrip:Downloading track to /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]
DEBUG:streamrip:Track meta formatter {'tracknumber': 2, 'artist': 'Kotchy', 'albumartist': 'Kotchy', 'composer': None, 'title': 'One For The Money', 'albumcomposer': None, 'explicit': False}
DEBUG:streamrip:Formatter keys: {tracknumber} - {title}
DEBUG:streamrip:Track meta formatter {'tracknumber': 3, 'artist': 'Kotchy', 'albumartist': 'Kotchy', 'composer': None, 'title': "Sing What You Want (Rusko's Skwee Remix)", 'albumcomposer': None, 'explicit': False}
DEBUG:streamrip:Formatter keys: {tracknumber} - {title}
DEBUG:streamrip:'tracknumber'
DEBUG:streamrip:Formatter keys: {tracknumber} - {title}
DEBUG:streamrip:'tracknumber'
DEBUG:streamrip:1
DEBUG:streamrip:'tracknumber'
DEBUG:streamrip:2
DEBUG:streamrip:2
DEBUG:streamrip:3
DEBUG:streamrip:2
DEBUG:streamrip:'title'
DEBUG:streamrip:2
DEBUG:streamrip:'title'
DEBUG:streamrip:Sing What You Want
DEBUG:streamrip:'title'
DEBUG:streamrip:One For The Money
DEBUG:streamrip:1
DEBUG:streamrip:Sing What You Want (Rusko's Skwee Remix)
DEBUG:streamrip:1
DEBUG:streamrip:Formatted path: /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/01 - Sing What You Want.m4a
DEBUG:streamrip:1
DEBUG:streamrip:Formatted path: /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/02 - One For The Money.m4a
DEBUG:streamrip:Formatted path: /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/03 - Sing What You Want (Rusko's Skwee Remix).m4a
DEBUG:streamrip:{'mimeType': 'audio/mp4', 'codecs': 'mp4a.40.5', 'encryptionType': 'NONE', 'urls': ['http://ab-pr-cf.audio.tidal.com/9420316/09c38617c7f1bc110629484f107961df_36.m4a?Expires=1642718926&Signature=OnS4jtQeh~TAPxxZX~T7QLAGVezWJBwuTBo8hN-1diw7XMQeYjymbj7UyyM4xH5Dkw~-Ya49pPDXzq9RhRqme3fAjouhtnQ9Xj46JrtTzi0JJzbDDta9djI4jDc7~cZoVbfIlHiSTxqD4W8qTDrez~DVmO8YfzlefiHHFM5iDbdT0MOW4~QaIK60oEDqwfE-aWOPYz-JuqwyObnP0jmSL~2CUvn81YK2cNKRoeSCX6tuy7y9moY6JGg5LPcuvrMg67DxSNmP-Y~AiJZ23EdwW8wu7ggmEIfx6XjC2G275w~XmFMmCHSQVsnK3IV5Xc5HrbHGeWD1sQKBMhuq1DRjuQ__&Key-Pair-Id=APKAIZ3WPBE4R6SP555A']}
DEBUG:streamrip:Downloadable URL found: http://ab-pr-cf.audio.tidal.com/9420316/09c38617c7f1bc110629484f107961df_36.m4a?Expires=1642718926&Signature=OnS4jtQeh~TAPxxZX~T7QLAGVezWJBwuTBo8hN-1diw7XMQeYjymbj7UyyM4xH5Dkw~-Ya49pPDXzq9RhRqme3fAjouhtnQ9Xj46JrtTzi0JJzbDDta9djI4jDc7~cZoVbfIlHiSTxqD4W8qTDrez~DVmO8YfzlefiHHFM5iDbdT0MOW4~QaIK60oEDqwfE-aWOPYz-JuqwyObnP0jmSL~2CUvn81YK2cNKRoeSCX6tuy7y9moY6JGg5LPcuvrMg67DxSNmP-Y~AiJZ23EdwW8wu7ggmEIfx6XjC2G275w~XmFMmCHSQVsnK3IV5Xc5HrbHGeWD1sQKBMhuq1DRjuQ__&Key-Pair-Id=APKAIZ3WPBE4R6SP555A
DEBUG:streamrip:{'mimeType': 'audio/mp4', 'codecs': 'mp4a.40.5', 'encryptionType': 'NONE', 'urls': ['http://ab-pr-cf.audio.tidal.com/0520316/177ec3b95dcd9da862c19a478e2250ea_36.m4a?Expires=1642718926&Signature=T-X9uMx804wjrx3GNitkF6i68qKPC2vBverFFrXMDUDQg6ZbvJnKJrvrJBQ-k~y4C9yI--D1xGW1GzaCSbkDCydr~c45ffo-H8JKte4zPyvf42XWiaZqpgAJ4ofadQM0veLhpvj41ZaEjQsDSPxHwrVIOH7pQt5cIdIHNMSt1StRX8UJpa0iPAekJAUXnHUUbo6lTHWcjWU0soEFNXPc~4apES7VZtpP8vUjQKgMxi2Bs5u7S6t0wZ-Z-hdbhY-Las4knNNkwCql1JwwqLBLUMuS0wRSPJF0PvTemeKzMP5Iph6BAfc5wt-PLy8VIanNW1ErV4eP76XiAnkAqfrV5g__&Key-Pair-Id=APKAIZ3WPBE4R6SP555A']}
DEBUG:streamrip:Downloadable URL found: http://ab-pr-cf.audio.tidal.com/0520316/177ec3b95dcd9da862c19a478e2250ea_36.m4a?Expires=1642718926&Signature=T-X9uMx804wjrx3GNitkF6i68qKPC2vBverFFrXMDUDQg6ZbvJnKJrvrJBQ-k~y4C9yI--D1xGW1GzaCSbkDCydr~c45ffo-H8JKte4zPyvf42XWiaZqpgAJ4ofadQM0veLhpvj41ZaEjQsDSPxHwrVIOH7pQt5cIdIHNMSt1StRX8UJpa0iPAekJAUXnHUUbo6lTHWcjWU0soEFNXPc~4apES7VZtpP8vUjQKgMxi2Bs5u7S6t0wZ-Z-hdbhY-Las4knNNkwCql1JwwqLBLUMuS0wRSPJF0PvTemeKzMP5Iph6BAfc5wt-PLy8VIanNW1ErV4eP76XiAnkAqfrV5g__&Key-Pair-Id=APKAIZ3WPBE4R6SP555A

Track 03 |          | ? left at ?B/s DEBUG:streamrip:{'mimeType': 'audio/mp4', 'codecs': 'mp4a.40.5', 'encryptionType': 'NONE', 'urls': ['http://ab-pr-cf.audio.tidal.com/8420316/f88f23f750ee39b57b7dc7083467ad33_36.m4a?Expires=1642718926&Signature=QpnX30R4m0Iqa0bufbta~b3nIePCldXCuQG1JN2RPxwM1eSHPLTsEzXXjKrgg0OMJODfwcmE2Xirs6jdhQZ~we4qA25E0egyYkNfIcYDef4UBy5xGU1v9BLkM-J2G9if6oz2eEfFU8WWY97Jk8cNtrn2BtSFMfV8mSB7aEUAGjkKzRIB~23gGnq2NEuMUA093SOt4irrJwuLq82nmZ3kn3JKe97l1sdeywYGwCZWnLDnoShsaRu5QUOJW4C0GY74T0tmM6QxxIMeESk0MG8ntwf-Sf3dGSHbaUfcSZ~ZO8A253Mh7G30Gn95BhpYCFW9zPEaMAwm~GGn7GH4iBh5DQ__&Key-Pair-Id=APKAIZ3WPBE4R6SP555A']}
DEBUG:streamrip:Downloadable URL found: http://ab-pr-cf.audio.tidal.com/8420316/f88f23f750ee39b57b7dc7083467ad33_36.m4a?Expires=1642718926&Signature=QpnX30R4m0Iqa0bufbta~b3nIePCldXCuQG1JN2RPxwM1eSHPLTsEzXXjKrgg0OMJODfwcmE2Xirs6jdhQZ~we4qA25E0egyYkNfIcYDef4UBy5xGU1v9BLkM-J2G9if6oz2eEfFU8WWY97Jk8cNtrn2BtSFMfV8mSB7aEUAGjkKzRIB~23gGnq2NEuMUA093SOt4irrJwuLq82nmZ3kn3JKe97l1sdeywYGwCZWnLDnoShsaRu5QUOJW4C0GY74T0tmM6QxxIMeESk0MG8ntwf-Sf3dGSHbaUfcSZ~ZO8A253Mh7G30Gn95BhpYCFW9zPEaMAwm~GGn7GH4iBh5DQ__&Key-Pair-Id=APKAIZ3WPBE4R6SP555A

Track 02 |          | ? left at ?B/s 

Track 01 |          | ? left at ?B/s 
Track 03 |█▉        | 00:00 left at 4.92MB/s 

Track 02 |██        | 00:00 left at 5.02MB/s 

Track 01 |▍         | 00:02 left at 852kB/s 

Track 02 |████▏     | 00:00 left at 4.86MB/s 
Track 03 |███▉      | 00:00 left at 4.40MB/s 

Track 01 |█▋        | 00:01 left at 1.65MB/s 
Track 03 |███████   | 00:00 left at 5.87MB/s 

Track 02 |██████▏   | 00:00 left at 4.45MB/s 

Track 01 |██▉       | 00:00 left at 2.21MB/s 

Track 02 |████████▏ | 00:00 left at 3.85MB/s 
Track 03 |█████████▌| 00:00 left at 4.80MB/s 
Track 03 |██████████| 00:00 left at 5.06MB/s 
DEBUG:streamrip:Downloaded: /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/03 - Sing What You Want (Rusko's Skwee Remix).m4a -> /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/03 - Sing What You Want (Rusko's Skwee Remix).m4a
DEBUG:streamrip:tagging tracks

Track 01 |████▌     | 00:00 left at 2.79MB/s DEBUG:streamrip:Tagging file with AAC container
DEBUG:streamrip:Excluded tags: set()
DEBUG:streamrip:Setting ©nam tag to Sing What You Want (Rusko's Skwee Remix)
DEBUG:streamrip:Setting ©ART tag to Kotchy
DEBUG:streamrip:Setting ©alb tag to Sing What You Want
DEBUG:streamrip:Setting aART tag to Kotchy
DEBUG:streamrip:Setting ©day tag to 2008
DEBUG:streamrip:Setting cprt tag to 2008 Civil Music / Seclusiasis
DEBUG:streamrip:Setting trkn tag to [(3, 5)]
DEBUG:streamrip:Setting disk tag to [(1, 1)]
DEBUG:streamrip:Downloading track to /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]
DEBUG:streamrip:Track meta formatter {'tracknumber': 4, 'artist': 'Kotchy', 'albumartist': 'Kotchy', 'composer': None, 'title': 'Sing What You Want (MRK1 Remix)', 'albumcomposer': None, 'explicit': False}
DEBUG:streamrip:Formatter keys: {tracknumber} - {title}
DEBUG:streamrip:'tracknumber'
DEBUG:streamrip:4
DEBUG:streamrip:2
DEBUG:streamrip:'title'
DEBUG:streamrip:Sing What You Want (MRK1 Remix)
DEBUG:streamrip:1
DEBUG:streamrip:Formatted path: /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/04 - Sing What You Want (MRK1 Remix).m4a

Track 02 |██████████| 00:00 left at 4.56MB/s 
DEBUG:streamrip:Downloaded: /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/02 - One For The Money.m4a -> /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/02 - One For The Money.m4a
DEBUG:streamrip:tagging tracks
DEBUG:streamrip:Tagging file with AAC container
DEBUG:streamrip:Excluded tags: set()
DEBUG:streamrip:Setting ©nam tag to One For The Money
DEBUG:streamrip:Setting ©ART tag to Kotchy
DEBUG:streamrip:Setting ©alb tag to Sing What You Want
DEBUG:streamrip:Setting aART tag to Kotchy
DEBUG:streamrip:Setting ©day tag to 2008
DEBUG:streamrip:Setting cprt tag to 2008 Civil Music / Seclusiasis
DEBUG:streamrip:Setting trkn tag to [(2, 5)]
DEBUG:streamrip:Setting disk tag to [(1, 1)]
DEBUG:streamrip:Downloading track to /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]
DEBUG:streamrip:Track meta formatter {'tracknumber': 5, 'artist': 'Kotchy', 'albumartist': 'Kotchy', 'composer': None, 'title': 'One For The Money(Starkey Remix)', 'albumcomposer': None, 'explicit': False}
DEBUG:streamrip:Formatter keys: {tracknumber} - {title}
DEBUG:streamrip:'tracknumber'
DEBUG:streamrip:5
DEBUG:streamrip:2
DEBUG:streamrip:'title'
DEBUG:streamrip:One For The Money(Starkey Remix)
DEBUG:streamrip:1
DEBUG:streamrip:Formatted path: /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/05 - One For The Money(Starkey Remix).m4a

Track 01 |███████▊  | 00:00 left at 4.54MB/s DEBUG:streamrip:{'mimeType': 'audio/mp4', 'codecs': 'mp4a.40.5', 'encryptionType': 'NONE', 'urls': ['http://ab-pr-cf.audio.tidal.com/1520316/0de0ceb479d7b3e77e7cb61694aaa5e3_36.m4a?Expires=1642718926&Signature=HjADGlVQdfgM4UJ57cIVb9Cn-xigwKKeBrtX3XH9~nNhSaBa7BoZwmJ1R7BT9OK0XlJLxJdeBCmMp4YSw9~O6LX6r1dae94GP4jOC4v-UiRPb~GzXCZWlDgnUYYVfUkHrYgXl40I7B1POrHluufUuKl3XAC~YKRE~WaMOwavC9nxdV7i-6aJpyq5hmHL6b7mjCPS0OcgsDfEKxWtPHL9g6AKCByhUPBFZc4YXL9pFB2MfQGJy23rpQx0oV3Z1qjhqMyRhFTjvg5Q8-PuiMNxth6iBR6rfx5Co~bFv4L9Sy54tLmGS11eR-Lnb2Ara5vVV7ELYwLg1pZc3gwFWsHRqA__&Key-Pair-Id=APKAIZ3WPBE4R6SP555A']}
DEBUG:streamrip:Downloadable URL found: http://ab-pr-cf.audio.tidal.com/1520316/0de0ceb479d7b3e77e7cb61694aaa5e3_36.m4a?Expires=1642718926&Signature=HjADGlVQdfgM4UJ57cIVb9Cn-xigwKKeBrtX3XH9~nNhSaBa7BoZwmJ1R7BT9OK0XlJLxJdeBCmMp4YSw9~O6LX6r1dae94GP4jOC4v-UiRPb~GzXCZWlDgnUYYVfUkHrYgXl40I7B1POrHluufUuKl3XAC~YKRE~WaMOwavC9nxdV7i-6aJpyq5hmHL6b7mjCPS0OcgsDfEKxWtPHL9g6AKCByhUPBFZc4YXL9pFB2MfQGJy23rpQx0oV3Z1qjhqMyRhFTjvg5Q8-PuiMNxth6iBR6rfx5Co~bFv4L9Sy54tLmGS11eR-Lnb2Ara5vVV7ELYwLg1pZc3gwFWsHRqA__&Key-Pair-Id=APKAIZ3WPBE4R6SP555A

Track 01 |██████████| 00:00 left at 3.97MB/s 
DEBUG:streamrip:{'mimeType': 'audio/mp4', 'codecs': 'mp4a.40.5', 'encryptionType': 'NONE', 'urls': ['http://ab-pr-cf.audio.tidal.com/2520316/6ddd5a6863881a017507f0ae0a384d47_36.m4a?Expires=1642718927&Signature=ZxNP601dq-flMAj-HBUYh6fIGGmjreh7aIog3cmDcMo-bcVOS28iftj8IMPYDEkANHoIkQsGYnm3Qe9ejAHiArSubkwBTE9DNYmpWl1Ee4xeoTCRvvn736ovQaxkQtMt3d0Akt~~Xv7tp7eHnfl8-sePwxO-CwIf~jtukKtFygBEnOLKRDdyV9o5VlVY~kIlhItKXemkdXDBk3jXffFDBW35T0mLBiC24qML3z3jbSwOy~7F8tFriCDvHl2Goq6rags4xzfWXAqoJ-~tynah-YBIL8mwJS56b92f~GNrvqhek17SYsc4wj6bq12D8hwPNywtFnLpDcnBPhVixBm8uQ__&Key-Pair-Id=APKAIZ3WPBE4R6SP555A']}
DEBUG:streamrip:Downloadable URL found: http://ab-pr-cf.audio.tidal.com/2520316/6ddd5a6863881a017507f0ae0a384d47_36.m4a?Expires=1642718927&Signature=ZxNP601dq-flMAj-HBUYh6fIGGmjreh7aIog3cmDcMo-bcVOS28iftj8IMPYDEkANHoIkQsGYnm3Qe9ejAHiArSubkwBTE9DNYmpWl1Ee4xeoTCRvvn736ovQaxkQtMt3d0Akt~~Xv7tp7eHnfl8-sePwxO-CwIf~jtukKtFygBEnOLKRDdyV9o5VlVY~kIlhItKXemkdXDBk3jXffFDBW35T0mLBiC24qML3z3jbSwOy~7F8tFriCDvHl2Goq6rags4xzfWXAqoJ-~tynah-YBIL8mwJS56b92f~GNrvqhek17SYsc4wj6bq12D8hwPNywtFnLpDcnBPhVixBm8uQ__&Key-Pair-Id=APKAIZ3WPBE4R6SP555A
DEBUG:streamrip:Downloaded: /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/01 - Sing What You Want.m4a -> /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/01 - Sing What You Want.m4a
DEBUG:streamrip:tagging tracks
DEBUG:streamrip:Tagging file with AAC container
DEBUG:streamrip:Excluded tags: set()
DEBUG:streamrip:Setting ©nam tag to Sing What You Want
DEBUG:streamrip:Setting ©ART tag to Kotchy
DEBUG:streamrip:Setting ©alb tag to Sing What You Want
DEBUG:streamrip:Setting aART tag to Kotchy
DEBUG:streamrip:Setting ©day tag to 2008
DEBUG:streamrip:Setting cprt tag to 2008 Civil Music / Seclusiasis
DEBUG:streamrip:Setting trkn tag to [(1, 5)]
DEBUG:streamrip:Setting disk tag to [(1, 1)]

Track 04 |          | ? left at ?B/s 

Track 05 |          | ? left at ?B/s 
Track 04 |█▋        | 00:00 left at 6.98MB/s 

Track 05 |█         | 00:00 left at 3.68MB/s 
Track 04 |███▍      | 00:00 left at 6.19MB/s 

Track 05 |█▉        | 00:00 left at 3.48MB/s 
Track 04 |█████▉    | 00:00 left at 7.84MB/s 

Track 05 |███▎      | 00:00 left at 4.10MB/s 

Track 05 |████▌     | 00:00 left at 4.38MB/s 
Track 04 |███████▉  | 00:00 left at 7.45MB/s 

Track 05 |██████    | 00:00 left at 4.67MB/s 
Track 04 |█████████▋| 00:00 left at 7.10MB/s 
Track 04 |██████████| 00:00 left at 7.13MB/s 
DEBUG:streamrip:Downloaded: /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/04 - Sing What You Want (MRK1 Remix).m4a -> /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/04 - Sing What You Want (MRK1 Remix).m4a
DEBUG:streamrip:tagging tracks
DEBUG:streamrip:Tagging file with AAC container
DEBUG:streamrip:Excluded tags: set()
DEBUG:streamrip:Setting ©nam tag to Sing What You Want (MRK1 Remix)
DEBUG:streamrip:Setting ©ART tag to Kotchy
DEBUG:streamrip:Setting ©alb tag to Sing What You Want
DEBUG:streamrip:Setting aART tag to Kotchy
DEBUG:streamrip:Setting ©day tag to 2008
DEBUG:streamrip:Setting cprt tag to 2008 Civil Music / Seclusiasis
DEBUG:streamrip:Setting trkn tag to [(4, 5)]
DEBUG:streamrip:Setting disk tag to [(1, 1)]

Track 05 |███████▊  | 00:00 left at 5.40MB/s 
Track 05 |██████████| 00:00 left at 5.25MB/s 
DEBUG:streamrip:Downloaded: /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/05 - One For The Money(Starkey Remix).m4a -> /mnt/data/tidal-bot/tidal-dl-discord-bot/download/Temp/Kotchy - Sing What You Want (2008) [FLAC] [UnknownB-UnknownkHz]/05 - One For The Money(Starkey Remix).m4a
DEBUG:streamrip:tagging tracks
DEBUG:streamrip:Tagging file with AAC container
DEBUG:streamrip:Excluded tags: set()
DEBUG:streamrip:Setting ©nam tag to One For The Money(Starkey Remix)
DEBUG:streamrip:Setting ©ART tag to Kotchy
DEBUG:streamrip:Setting ©alb tag to Sing What You Want
DEBUG:streamrip:Setting aART tag to Kotchy
DEBUG:streamrip:Setting ©day tag to 2008
DEBUG:streamrip:Setting cprt tag to 2008 Civil Music / Seclusiasis
DEBUG:streamrip:Setting trkn tag to [(5, 5)]
DEBUG:streamrip:Setting disk tag to [(1, 1)]

  Stack trace:

  17  ~/.local/lib/python3.8/site-packages/cleo/application.py:330 in run
       328│ 
       329│             try:
     → 330│                 exit_code = self._run(io)
       331│             except Exception as e:
       332│                 if not self._catch_exceptions:

  16  ~/.local/lib/python3.8/site-packages/rip/cli.py:759 in _run
       757│             logger.addHandler(fh)
       758│ 
     → 759│         super()._run(io)
       760│ 
       761│     def create_io(self, input=None, output=None, error_output=None):

  15  ~/.local/lib/python3.8/site-packages/cleo/application.py:425 in _run
       423│                 io.set_input(ArgvInput(argv))
       424│ 
     → 425│         exit_code = self._run_command(command, io)
       426│         self._running_command = None
       427│ 

  14  ~/.local/lib/python3.8/site-packages/cleo/application.py:432 in _run_command
       430│     def _run_command(self, command: Command, io: IO) -> int:
       431│         if self._event_dispatcher is None:
     → 432│             return command.run(io)
       433│ 
       434│         # Bind before the console.command event,

  13  ~/.local/lib/python3.8/site-packages/cleo/commands/base_command.py:118 in run
       116│         io.input.validate()
       117│ 
     → 118│         status_code = self.execute(io)
       119│ 
       120│         if status_code is None:

  12  ~/.local/lib/python3.8/site-packages/cleo/commands/command.py:85 in execute
        83│ 
        84│         try:
     →  85│             return self.handle()
        86│         except KeyboardInterrupt:
        87│             return 1

  11  ~/.local/lib/python3.8/site-packages/rip/cli.py:124 in handle
       122│ 
       123│         if len(core) > 0:
     → 124│             core.download()
       125│         elif not urls and path is None:
       126│             self.line("Must pass arguments. See rip url -h.")

  10  ~/.local/lib/python3.8/site-packages/rip/core.py:316 in download
       314│ 
       315│             try:
     → 316│                 item.download(**arguments)
       317│                 for item_id in item.downloaded_ids:
       318│                     self.db.add([item_id])

   9  ~/.local/lib/python3.8/site-packages/streamrip/media.py:1183 in download
       1181│                     for future in future_map.keys():
       1182│                         try:
     → 1183│                             future.result()
       1184│                         except NonStreamable as e:
       1185│                             item = future_map[future]

   8  /usr/lib/python3.8/concurrent/futures/_base.py:437 in result
       435│                     raise CancelledError()
       436│                 elif self._state == FINISHED:
     → 437│                     return self.__get_result()
       438│ 
       439│                 self._condition.wait(timeout)

   7  /usr/lib/python3.8/concurrent/futures/_base.py:389 in __get_result
       387│         if self._exception:
       388│             try:
     → 389│                 raise self._exception
       390│             finally:
       391│                 # Break a reference cycle with the exception in self._exception

   6  /usr/lib/python3.8/concurrent/futures/thread.py:57 in run
        55│ 
        56│         try:
     →  57│             result = self.fn(*self.args, **self.kwargs)
        58│         except BaseException as exc:
        59│             self.future.set_exception(exc)

   5  ~/.local/lib/python3.8/site-packages/streamrip/media.py:1576 in _download_item
       1574│         # deezer tracks come tagged
       1575│         if kwargs.get("tag_tracks", True):
     → 1576│             item.tag(
       1577│                 cover=self.cover_obj,
       1578│                 embed_cover=kwargs.get("embed_cover", True),

   4  ~/.local/lib/python3.8/site-packages/streamrip/media.py:674 in tag
        672│             audio.save(self.path, "v2_version=3")
        673│         elif isinstance(audio, MP4):
     →  674│             audio["covr"] = [cover]
        675│             audio.save()
        676│         else:

   3  ~/.local/lib/python3.8/site-packages/mutagen/_file.py:74 in __setitem__
        72│         if self.tags is None:
        73│             self.add_tags()
     →  74│         self.tags[key] = value
        75│ 
        76│     def __delitem__(self, key):

   2  ~/.local/lib/python3.8/site-packages/mutagen/mp4/__init__.py:374 in __setitem__
        372│         if not isinstance(key, str):
        373│             raise TypeError("key has to be str")
     →  374│         self._render(key, value)
        375│         super(MP4Tags, self).__setitem__(key, value)
        376│ 

   1  ~/.local/lib/python3.8/site-packages/mutagen/mp4/__init__.py:390 in _render
        388│             render_args = []
        389│ 
     →  390│         return render_func(self, key, value, *render_args)
        391│ 
        392│     @convert_error(IOError, error)

  TypeError

  can't concat Picture to bytes

  at ~/.local/lib/python3.8/site-packages/mutagen/mp4/__init__.py:789 in __render_cover
       785│                 imageformat = cover.imageformat
       786│             except AttributeError:
       787│                 imageformat = MP4Cover.FORMAT_JPEG
       788│             atom_data.append(Atom.render(
    →  789│                 b"data", struct.pack(">2I", imageformat, 0) + cover))
       790│         return Atom.render(_key2name(key), b"".join(atom_data))
       791│ 
       792│     def __parse_text(self, atom, data, implicit=True):
       793│         # implicit = False, for parsing unknown atoms only take utf8 ones.

If this was unexpected, please open a Bug Report at https://github.com/nathom/streamrip/issues/new/choose

Config File

[downloads]
# Folder where tracks are downloaded to
folder = "/mnt/data/Music/Downloads/"
# Put Qobuz albums in a 'Qobuz' folder, Tidal albums in 'Tidal' etc.
source_subdirectories = false

[downloads.concurrency]
# Download (and convert) tracks all at once, instead of sequentially. 
# If you are converting the tracks, or have fast internet, this will 
# substantially improve processing speed.
enabled = true
# The maximum number of tracks to download at once
# If you have very fast internet, you will benefit from a higher value,
# A value that is too high for your bandwidth may cause slowdowns
max_connections = 3

[qobuz]
# 1: 320kbps MP3, 2: 16/44.1, 3: 24/<=96, 4: 24/>=96
quality = 3
# This will download booklet pdfs that are included with some albums
download_booklets = true

email = ""
# This is an md5 hash of the plaintext password
password = ""
# Do not change
app_id = ""
# Do not change
secrets = []

[tidal]
# 0: 256kbps AAC, 1: 320kbps AAC, 2: 16/44.1 "HiFi" FLAC, 3: 24/44.1 "MQA" FLAC
quality = 3
# This will download videos included in Video Albums.
download_videos = true

# Do not change any of the fields below
user_id = CENSORED
country_code = "US"
access_token = "CENSORED"
refresh_token = "CENSORED"
# Tokens last 1 week after refresh. This is the Unix timestamp of the expiration
# time. If you haven't used streamrip in more than a week, you may have to log
# in again using `rip config --tidal`
token_expiry = 1643312578.0861301

[deezer]
# 0, 1, or 2
# This only applies to paid Deezer subscriptions. Those using deezloader
# are automatically limited to quality = 1
quality = 2
# An authentication cookie that allows streamrip to use your Deezer account
# See https://github.com/nathom/streamrip/wiki/Finding-Your-Deezer-ARL-Cookie
# for instructions on how to find this
arl = ""
# This allows for free 320kbps MP3 downloads from Deezer
# If an arl is provided, deezloader is never used
use_deezloader = true
# This warns you when the paid deezer account is not logged in and rip falls
# back to deezloader, which is unreliable
deezloader_warnings = true

[soundcloud]
# Only 0 is available for now
quality = 0
# This changes periodically, so it needs to be updated
client_id = ""
app_version = ""

[youtube]
# Only 0 is available for now
quality = 0
# Download the video along with the audio
download_videos = false
# The path to download the videos to
video_downloads_folder = ""

# This stores a list of item IDs so that repeats are not downloaded.

[database.downloads]
enabled = true
path = "/home/CENSORED/.config/streamrip/downloads.db"

# If a download fails, the item ID is stored here. Then, `rip repair` can be
# called to retry the downloads

[database.failed_downloads]
enabled = true
path = "/home/CENSORED/.config/streamrip/failed_downloads.db"

# Convert tracks to a codec after downloading them.

[conversion]
enabled = false
# FLAC, ALAC, OPUS, MP3, VORBIS, or AAC
codec = "ALAC"
# In Hz. Tracks are downsampled if their sampling rate is greater than this. 
# Value of 48000 is recommended to maximize quality and minimize space
sampling_rate = 48000
# Only 16 and 24 are available. It is only applied when the bit depth is higher
# than this value.
bit_depth = 24
# Only applicable for lossy codecs
lossy_bitrate = 320

# Filter a Qobuz artist's discography. Set to 'true' to turn on a filter.

[filters]
# Remove Collectors Editions, live recordings, etc.
extras = false
# Picks the highest quality out of albums with identical titles.
repeats = false
# Remove EPs and Singles
non_albums = false
# Remove albums whose artist is not the one requested
features = false
# Skip non studio albums
non_studio_albums = false
# Only download remastered albums
non_remaster = false

[artwork]
# Write the image to the audio file
embed = true
# The size of the artwork to embed. Options: thumbnail, small, large, original.
# "original" images can be up to 30MB, and may fail embedding. 
# Using "large" is recommended.
size = "large"
# Both of these options limit the size of the embedded artwork. If their values
# are larger than the actual dimensions of the image, they will be ignored.
# If either value is -1, the image is left untouched.
max_width = -1
max_height = -1
# Save the cover image at the highest quality as a seperate jpg file
keep_hires_cover = true

[metadata]
# Sets the value of the 'ALBUM' field in the metadata to the playlist's name. 
# This is useful if your music library software organizes tracks based on album name.
set_playlist_to_album = true
# Replaces the original track's tracknumber with it's position in the playlist
new_playlist_tracknumbers = true
# The following metadata tags won't be applied
# See https://github.com/nathom/streamrip/wiki/Metadata-Tag-Names for more info
exclude = []

# Changes the folder and file names generated by streamrip.

[filepaths]
# Create folders for single tracks within the downloads directory using the folder_format
# template
add_singles_to_folder = false
# Available keys: "albumartist", "title", "year", "bit_depth", "sampling_rate",
# "container", "id", and "albumcomposer"
folder_format = "{albumartist} - {title} ({year}) [{container}] [{bit_depth}B-{sampling_rate}kHz]"
# Available keys: "tracknumber", "artist", "albumartist", "composer", "title",
# and "albumcomposer"
track_format = "{tracknumber} - {title}"
# Only allow printable ASCII characters in filenames.
restrict_characters = false

# Last.fm playlists are downloaded by searching for the titles of the tracks

[lastfm]
# The source on which to search for the tracks.
source = "qobuz"
# If no results were found with the primary source, the item is searched for 
# on this one.
fallback_source = "deezer"

[theme]
# Options: "dainty" or "plain"
progress_bar = "dainty"

[misc]
# Metadata to identify this config file. Do not change.
version = "1.9.2"

Operating System

Linux 5.4.0-92-generic

streamrip version

1.9.2

Screenshots and recordings

https://asciinema.org/a/rihQqKcvVJrCUzi32esnkhcbs

Additional context

Using my own fork of streamrip @ https://github.com/CanadianBaconBoi/streamrip because new credentials were needed.

nathom commented 2 years ago

Fixed in v1.9.3.