[BUG] Tidal URL playlist download creates error
Describe the bug
I finally got streamrip working on Windows with Tidal, which involved using the last dev version and some downgrading (see https://github.com/nathom/streamrip/issues/793#issuecomment-2614074448)
I get a a link to login and everything looks ok. All my playlists (yes, they are public and I can transfer them to Spotify with Tune My Music) start with "jot:"
C:\Windows\system32>rip url https://tidal.com/playlist/138b160a-eac6-40ce-ac65-c1a1e2fc165e
┌─────────────────────────────── Traceback (most recent call last) ────────────────────────────────┐
│ in _run_module_as_main:198 │
│ in _run_code:88 │
│ │
│ ... 18 frames hidden ... │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip\client\tidal.py │
│ :324 in _api_request │
│ │
│ 321 │ │ │
│ 322 │ │ async with self.rate_limiter: │
│ 323 │ │ │ async with self.session.get(f"{BASE}/{path}", params=params) as resp: │
│ > 324 │ │ │ │ resp.raise_for_status() │
│ 325 │ │ │ │ return await resp.json() │
│ 326 │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiohttp\client_reqrep.py: │
│ 1070 in raise_for_status │
│ │
│ 1067 │ │ │ # reason should always be not None for a started response │
│ 1068 │ │ │ assert self.reason is not None │
│ 1069 │ │ │ self.release() │
│ > 1070 │ │ │ raise ClientResponseError( │
│ 1071 │ │ │ │ self.request_info, │
│ 1072 │ │ │ │ self.history, │
│ 1073 │ │ │ │ status=self.status, │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
ClientResponseError: 404, message='Not Found', url=URL('https://api.tidalhifi.com/v1/tracks/346782840?countryCode=AT&limit=100')
Command Used
rip url https://tidal.com/playlist/138b160a-eac6-40ce-ac65-c1a1e2fc165e
Debug Traceback
:\Windows\system32>rip -vvv url https://tidal.com/playlist/138b160a-eac6-40ce-ac65-c1a1e2fc165e
[14:59:50] DEBUG Showing all debug logs cli.py:102
⠙ Resolving URLs...[14:59:52] DEBUG {'uuid': '138b160a-eac6-40ce-ac65-c1a1e2fc165e', 'title': 'Joachim.jot: You Are Love Meditation', 'numberOfTracks': 11, 'numberOfVideos': 0, 'creator': {'id': 169818634}, tidal.py:104
'description': 'A meditation to feel deep self love. Arranged for you by Joachim.jot', 'duration': 4001, 'lastUpdated': '2025-01-03T12:31:19.412+0000', 'created':
'2024-04-20T08:54:09.231+0000', 'type': 'USER', 'publicPlaylist': True, 'url': 'http://www.tidal.com/playlist/138b160a-eac6-40ce-ac65-c1a1e2fc165e', 'image':
'8367a4f4-daa9-432d-b18c-3ffe8c74a090', 'popularity': 0, 'squareImage': '511d6cad-a92e-4435-9457-7ec888cdbd76', 'customImageUrl': None, 'promotedArtists': [], 'lastItemAddedAt':
'2025-01-03T12:30:41.421+0000', 'tracks': [{'id': 346782840, 'title': "I'm in Love", 'duration': 194, 'replayGain': -5.46, 'peak': 0.988617, 'allowStreaming': False,
'streamReady': False, 'adSupportedStreamReady': False, 'djReady': False, 'stemReady': False, 'streamStartDate': None, 'premiumStreamingOnly': False, 'trackNumber': 1,
'volumeNumber': 1, 'version': None, 'popularity': 2, 'copyright': '2022 Healers Music', 'bpm': None, 'description': None, 'url': 'http://www.tidal.com/track/346782840', 'isrc':
'ITQ582100231', 'editable': False, 'explicit': False, 'audioQuality': 'LOSSLESS', 'audioModes': ['STEREO'], 'mediaMetadata': {'tags': ['LOSSLESS']}, 'artist': {'id': 22441041,
'name': 'Miracle Mind Healing', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 22441041, 'name': 'Miracle Mind Healing', 'type': 'MAIN', 'picture': None}], 'album': {'id':
346782839, 'title': 'Manifestation Frequency Vol.1', 'cover': 'cc64bb38-7bd4-4137-9791-7e38a3e9d455', 'vibrantColor': '#edcbfb', 'videoCover': None, 'releaseDate':
'2022-03-11'}, 'mixes': {}, 'dateAdded': '2024-05-25T14:02:45.798+0000', 'index': 50000, 'itemUuid': '42863e0f-e05c-4262-8cee-465446777249'}, {'id': 140245356, 'title': 'I
Release Control', 'duration': 424, 'replayGain': -7.3, 'peak': 0.988556, 'allowStreaming': True, 'streamReady': True, 'adSupportedStreamReady': True, 'djReady': True,
'stemReady': False, 'streamStartDate': '2012-07-30T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 8, 'volumeNumber': 1, 'version': None, 'popularity': 19,
'copyright': 'Alexa Sunshine Rose', 'bpm': None, 'description': None, 'url': 'http://www.tidal.com/track/140245356', 'isrc': 'USHM81238520', 'editable': False, 'explicit':
False, 'audioQuality': 'LOSSLESS', 'audioModes': ['STEREO'], 'mediaMetadata': {'tags': ['LOSSLESS']}, 'artist': {'id': 6033892, 'name': 'Alexa Sunshine Rose', 'type': 'MAIN',
'picture': None}, 'artists': [{'id': 6033892, 'name': 'Alexa Sunshine Rose', 'type': 'MAIN', 'picture': None}], 'album': {'id': 140245348, 'title': 'Living Waters', 'cover':
'ed973fd2-ee84-4434-81fe-a17a56f1432b', 'vibrantColor': '#57addd', 'videoCover': None, 'releaseDate': '2012-07-30'}, 'mixes': {'TRACK_MIX': '001522981e6d0f43f23dbc33737d7f'},
'dateAdded': ⠹'2024-04-20T08:54:10.071+0000' Resolving URLs..., 'index': 100000, 'itemUuid': 'adbf40c8-ff6e-47c0-a239-6ff584e5a7b9'}, {'id': 95503128, 'title': 'The Power Is Here Now', 'duration':
288, 'replayGain': -4.93, 'peak': 0.92401, 'allowStreaming': True, 'streamReady': True, 'adSupportedStreamReady': True, 'djReady': True, 'stemReady': False, 'streamStartDate':
'2018-09-02T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 1, 'volumeNumber': 1, 'version': None, 'popularity': 22, 'copyright': '2018 Alexia Chellun', 'bpm':
133, 'description': None, 'url': 'http://www.tidal.com/track/95503128', 'isrc': 'USHM91826493', 'editable': False, 'explicit': False, 'audioQuality': 'LOSSLESS', 'audioModes':
['STEREO'], 'mediaMetadata': {'tags': ['LOSSLESS']}, 'artist': {'id': 6397700, 'name': 'Alexia Chellun', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 6397700, 'name':
'Alexia Chellun', 'type': 'MAIN', 'picture': None}], 'album': {'id': 95503127, 'title': 'Just Before I Sleep', 'cover': '278216ef-8e56-4ca7-9394-14b7c4bab8c0', 'vibrantColor':
'#4f74b0', 'videoCover': None, 'releaseDate': '2018-09-02'}, 'mixes': {'TRACK_MIX': '001d8b6a48f48186357cdcd4071ff2'}, 'dateAdded': '2024-04-20T08:54:21.053+0000', 'index':
200000, 'itemUuid': '87f580db-3275-4186-9a01-945b5ce9d510'}, {'id': 152581051, 'title': 'Bliss (I Am the Light of My Soul) (feat. Shoshana Shangold)', 'duration': 491,
'replayGain': -8.75, 'peak': 0.979858, 'allowStreaming': True, 'streamReady': True, 'adSupportedStreamReady': True, 'djReady': True, 'stemReady': False, 'streamStartDate':
'2020-08-11T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 3, 'volumeNumber': 1, 'version': None, 'popularity': 13, 'copyright': '(P) 2011 Sat Darshan Singh &
Sirgun Kaur', 'bpm': None, 'description': None, 'url': 'http://www.tidal.com/track/152581051', 'isrc': 'USHM81119012', 'editable': False, 'explicit': False, 'audioQuality':
'LOSSLESS', 'audioModes': ['STEREO'], 'mediaMetadata': {'tags': ['LOSSLESS']}, 'artist': {'id': 6209726, 'name': 'Sirgun Kaur', 'type': 'MAIN', 'picture': None}, 'artists':
[{'id': 6209726, 'name': 'Sirgun Kaur', 'type': 'MAIN', 'picture': None}, {'id': 5756628, 'name': 'Sat Darshan Singh', 'type': 'MAIN', 'picture': None}, {'id': 20951780, 'name':
'Porter Singer', 'type': 'MAIN', 'picture': None}, {'id': 41562389, 'name': 'Shoshana Shangold', 'type': 'MAIN', 'picture': None}], 'album': {'id': 152581048, 'title': 'The
Music Within', 'cover': '4850aec8-1260-46c6-b424-dc7406310a79', 'vibrantColor': '#2c6491', 'videoCover': None, 'releaseDate': '2011-06-14'}, 'mixes': {'TRACK_MIX':
'0016b69aa64fcb9a6c44e42fc10b66'}, 'dateAdded': '2024-04-20T08:54:25.930+0000', 'index': 300000, 'itemUuid': 'ae012d3a-25dd-4ebb-9b95-f871d8037533'}, {'id': 21977343, 'title':
'All of Me', 'duration': 270, 'replayGain': -9.3, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'adSupportedStreamReady': True, 'djReady': True, 'stemReady': False,
'streamStartDate': '2013-08-30T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 6, 'volumeNumber': 1, 'version': None, 'popularity': 36, 'copyright': '(P) 2013
Getting Out Our Dreams and Columbia Records, a Division of Sony Music Entertainment', 'bpm': 126, 'description': None, 'url': 'http://www.tidal.com/track/21977343', 'isrc':
'USSM11303954', 'editable': False, 'explicit': False, 'audioQuality': 'LOSSLESS', 'audioModes': ['STEREO'], 'mediaMetadata': {'tags': ['LOSSLESS', 'HIRES_LOSSLESS']}, 'artist':
{'id': 490, 'name': 'John Legend', 'type': 'MAIN', 'picture': 'dbf17b28-b207-471a-b97d-34d94a339a41'}, 'artists': [{'id': 490, 'name': 'John Legend', 'type': 'MAIN', 'picture':
'dbf17b28-b207-471a-b97d-34d94a339a41'}], 'album': {'id': 21977337, 'title': 'Love In The Future (Expanded Edition)', 'cover': 'f1508275-3f24-4084-99aa-58ac09f5ceeb',
'vibrantColor': '#cc5b61', 'videoCover': None, 'releaseDate': '2013-09-02'}, 'mixes': {'TRACK_MIX': '001fef1c9225987a0d24c67c15315b'}, 'dateAdded':
'2024-04-20T16:40:20.156+0000', 'index': 400000, 'itemUuid': '7b184c83-d34e-4bf4-9878-5dbcd3fea7cc'}, {'id': 95503130, 'title': 'Allowing', 'duration': 276, 'replayGain': -4.93,
'peak': 0.977234, 'allowStreaming': True, 'streamReady': True, 'adSupportedStreamReady': True, 'djReady': True, 'stemReady': False, 'streamStartDate':
'2018-09-02T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 3, 'volumeNumber': 1, 'version': None, 'popularity': 14, 'copyright': '2018 Alexia Chellun', 'bpm':
None, 'description': None, 'url': 'http://www.tidal.com/track/95503130', 'isrc': 'USHM91826495', 'editable': False, 'explicit': False, 'audioQuality': 'LOSSLESS', 'audioModes':
['STEREO'], 'mediaMetadata': {'tags': ['LOSSLESS']}, 'artist': {'id': 6397700, 'name': 'Alexia Chellun', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 6397700, 'name':
'Alexia Chellun', 'type': 'MAIN', 'picture': None}], 'album': {'id': 95503127, 'title': 'Just Before I Sleep', 'cover': '278216ef-8e56-4ca7-9394-14b7c4bab8c0', 'vibrantColor':
'#4f74b0', 'videoCover': None, 'releaseDate': '2018-09-02'}, 'mixes': {'TRACK_MIX': '0015ef13f650971ab4c31e9c506e27'}, 'dateAdded': '2024-04-22T18:57:30.857+0000', 'index':
500000, 'itemUuid': 'e366331f-f29c-4d29-8569-7b3cb6b613d1'}, {'id': 221167805, 'title': 'OM SO HUM', 'duration': 666, 'replayGain': -1.66, 'peak': 0.94458, 'allowStreaming':
True, 'streamReady': True, 'adSupportedStreamReady': True, 'djReady': True, 'stemReady': False, 'streamStartDate': '2020-07-27T00:00:00.000+0000', 'premiumStreamingOnly': False,
'trackNumber': 1, 'volumeNumber': 1, 'version': None, 'popularity': 0, 'copyright': 'Meditative Mind', 'bpm': None, 'description': None, 'url':
'http://www.tidal.com/track/221167805', 'isrc': 'AUTMZ2010033', 'editable': False, 'explicit': False, 'audioQuality': 'LOSSLESS', 'audioModes': ['STEREO'], 'mediaMetadata':
{'tags': ['LOSSLESS']}, 'artist': {'id': 6944727, 'name': 'Meditative Mind', 'type': 'MAIN', 'picture': '501d707b-f6cd-4c5d-bf84-a992d65dddeb'}, 'artists': [{'id': 6944727,
'name': 'Meditative Mind', 'type': 'MAIN', 'picture': '501d707b-f6cd-4c5d-bf84-a992d65dddeb'}], 'album': {'id': 221167803, 'title': 'OM SO HUM', 'cover':
'0abde0fb-a46c-4fa3-b619-7c52276d8d27', 'vibrantColor': '#b0bddd', 'videoCover': None, 'releaseDate': '2020-07-27'}, 'mixes': {}, 'dateAdded': '2025-01-03T12:30:41.421+0000',
'index': 550000, 'itemUuid': 'e9d0b583-086b-42e2-907a-26a4c7e04c3a'}, {'id': 336901514, 'title': 'Jai Mai', 'duration': 815, 'replayGain': -6.03, 'peak': 1.0, 'allowStreaming':
True, ⠼'streamReady' Resolving URLs...: True, 'adSupportedStreamReady': True, 'djReady': True, 'stemReady': False, 'streamStartDate': '2024-01-09T00:00:00.000+0000', 'premiumStreamingOnly': False,
'trackNumber': 5, 'volumeNumber': 1, 'version': None, 'popularity': 0, 'copyright': 'Real Music Under license from Sacred Earth Music', 'bpm': None, 'description': None, 'url':
'http://www.tidal.com/track/336901514', 'isrc': 'TCAAZ1189261', 'editable': False, 'explicit': False, 'audioQuality': 'LOSSLESS', 'audioModes': ['STEREO'], 'mediaMetadata':
{'tags': ['LOSSLESS']}, 'artist': {'id': 3580081, 'name': 'Sacred Earth', 'type': 'MAIN', 'picture': None}, 'artists': [{'id': 3580081, 'name': 'Sacred Earth', 'type': 'MAIN',
'picture': None}], 'album': {'id': 336901509, 'title': 'Inyan', 'cover': 'c0606368-6d26-4e1e-b501-b5bacb80575d', 'vibrantColor': '#f2ea5e', 'videoCover': None, 'releaseDate':
'2006-08-31'}, 'mixes': {'TRACK_MIX': '001778ca05b382381cd84993d08b13'}, 'dateAdded': '2024-04-23T17:13:47.974+0000', 'index': 600000, 'itemUuid':
'cbf6d896-0f5e-43db-820b-3a9dd68cc7de'}, {'id': 359725117, 'title': 'Om So Hum', 'duration': 194, 'replayGain': -10.29, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True,
'adSupportedStreamReady': True, 'djReady': True, 'stemReady': False, 'streamStartDate': '2024-05-10T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 1,
'volumeNumber': 1, 'version': None, 'popularity': 21, 'copyright': 'TH3RD BRAIN', 'bpm': 117, 'description': None, 'url': 'http://www.tidal.com/track/359725117', 'isrc':
'NLRD52350391', 'editable': False, 'explicit': False, 'audioQuality': 'LOSSLESS', 'audioModes': ['STEREO'], 'mediaMetadata': {'tags': ['LOSSLESS', 'HIRES_LOSSLESS']}, 'artist':
{'id': 4485875, 'name': 'Lincoln Jesser', 'type': 'MAIN', 'picture': 'f84b23d3-3ea7-4844-b920-e61744fa5c7f'}, 'artists': [{'id': 4485875, 'name': 'Lincoln Jesser', 'type':
'MAIN', 'picture': 'f84b23d3-3ea7-4844-b920-e61744fa5c7f'}], 'album': {'id': 359725116, 'title': 'Om So Hum', 'cover': '3a47df4b-151f-4059-9003-1f45e861d69a', 'vibrantColor':
'#9dcaec', 'videoCover': None, 'releaseDate': '2024-05-10'}, 'mixes': {'TRACK_MIX': '00187bb249c5146ffde792e8cafdd6'}, 'dateAdded': '2024-05-29T18:56:31.212+0000', 'index':
700000, 'itemUuid': 'f791fd52-9efd-42ad-8dbf-74d2d805d1fe'}, {'id': 351299701, 'title': 'Om Mani Padme Hum', 'duration': 197, 'replayGain': -6.76, 'peak': 1.0, 'allowStreaming':
True, 'streamReady': True, 'adSupportedStreamReady': True, 'djReady': True, 'stemReady': False, 'streamStartDate': '2024-04-12T00:00:00.000+0000', 'premiumStreamingOnly': False,
'trackNumber': 1, 'volumeNumber': 1, 'version': None, 'popularity': 18, 'copyright': 'TH3RD BRAIN', 'bpm': 114, 'description': None, 'url':
'http://www.tidal.com/track/351299701', 'isrc': 'NLRD52350369', 'editable': False, 'explicit': False, 'audioQuality': 'LOSSLESS', 'audioModes': ['STEREO'], 'mediaMetadata':
{'tags': ['LOSSLESS', 'HIRES_LOSSLESS']}, 'artist': {'id': 4485875, 'name': 'Lincoln Jesser', 'type': 'MAIN', 'picture': 'f84b23d3-3ea7-4844-b920-e61744fa5c7f'}, 'artists':
[{'id': 4485875, 'name': 'Lincoln Jesser', 'type': 'MAIN', 'picture': 'f84b23d3-3ea7-4844-b920-e61744fa5c7f'}], 'album': {'id': 351299695, 'title': 'Om Mani Padme Hum', 'cover':
'594042d3-45cc-48ff-9562-81dd51877e7c', 'vibrantColor': '#9bb8e8', 'videoCover': None, 'releaseDate': '2024-04-12'}, 'mixes': {'TRACK_MIX': '001c9e7479882e3d4f70f49f33d235'},
'dateAdded': '2024-05-29T18:56:37.230+0000', 'index': 800000, 'itemUuid': '7d4f3e44-db84-4ed2-83d9-ce892b56e97f'}, {'id': 191889911, 'title': 'Need You There', 'duration': 186,
'replayGain': -8.98, 'peak': 0.954991, 'allowStreaming': True, 'streamReady': True, 'adSupportedStreamReady': True, 'djReady': True, 'stemReady': False, 'streamStartDate':
'2021-07-30T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 1, 'volumeNumber': 1, 'version': None, 'popularity': 10, 'copyright': '℗ 2021 Universal Music
Operations Limited', 'bpm': 123, 'description': None, 'url': 'http://www.tidal.com/track/191889911', 'isrc': 'GBUM72104528', 'editable': False, 'explicit': False,
'audioQuality': 'LOSSLESS', 'audioModes': ['STEREO'], 'mediaMetadata': {'tags': ['LOSSLESS', 'HIRES_LOSSLESS']}, 'artist': {'id': 6759527, 'name': 'M-22', 'type': 'MAIN',
'picture': '0796ee2e-2ba5-49a1-8d21-993c7acf5d2e'}, 'artists': [{'id': 6759527, 'name': 'M-22', 'type': 'MAIN', 'picture': '0796ee2e-2ba5-49a1-8d21-993c7acf5d2e'}], 'album':
{'id': 191889910, 'title': 'Need You There', 'cover': 'dba2607f-e22b-4c1d-a86f-04ea181113a2', 'vibrantColor': '#c6407b', 'videoCover': None, 'releaseDate': '2021-07-30'},
'mixes': {'TRACK_MIX': '001e730598371298eff5f414e0a98e'}, 'dateAdded': '2024-05-29T19:18:30.187+0000', 'index': 900000, 'itemUuid': 'b405b78f-6d26-4509-b630-2d05c240cae5'}]}
DEBUG Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?) db.py:108
DEBUG Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?) db.py:108
DEBUG Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?) db.py:108
DEBUG Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?) db.py:108
DEBUG Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?) db.py:108
DEBUG Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?) db.py:108
DEBUG Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?) db.py:108
DEBUG Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?) db.py:108
DEBUG Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?) db.py:108
DEBUG Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?) db.py:108
DEBUG Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?) db.py:108
DEBUG Removing dirs set() artwork.py:19
┌─────────────────────────────── Traceback (most recent call last) ────────────────────────────────┐
│ in _run_module_as_main:198 │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │ alter_argv = False │ │
│ │ code = <code object <module> at 0x000001D768076140, file │ │
│ │ "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\__main… │ │
│ │ line 1> │ │
│ │ main_globals = { │ │
│ │ │ '__name__': '__main__', │ │
│ │ │ '__doc__': None, │ │
│ │ │ '__package__': '', │ │
│ │ │ '__loader__': <zipimporter object │ │
│ │ "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">, │ │
│ │ │ '__spec__': ModuleSpec(name='__main__', loader=<zipimporter object │ │
│ │ "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">, │ │
│ │ origin='C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts… │ │
│ │ │ '__annotations__': {}, │ │
│ │ │ '__builtins__': <module 'builtins' (built-in)>, │ │
│ │ │ '__file__': │ │
│ │ 'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │ │ '__cached__': │ │
│ │ 'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │ │ 're': <module 're' from │ │
│ │ 'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\re\\__ini… │ │
│ │ │ ... +2 │ │
│ │ } │ │
│ │ mod_name = '__main__' │ │
│ │ mod_spec = ModuleSpec(name='__main__', loader=<zipimporter object │ │
│ │ "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">, │ │
│ │ origin='C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts… │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│ in _run_code:88 │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │ cached = 'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │ code = <code object <module> at 0x000001D768076140, file │ │
│ │ "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\__main… │ │
│ │ line 1> │ │
│ │ fname = 'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │ init_globals = None │ │
│ │ loader = <zipimporter object │ │
│ │ "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\"> │ │
│ │ mod_name = '__main__' │ │
│ │ mod_spec = ModuleSpec(name='__main__', loader=<zipimporter object │ │
│ │ "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">, │ │
│ │ origin='C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts… │ │
│ │ pkg_name = '' │ │
│ │ run_globals = { │ │
│ │ │ '__name__': '__main__', │ │
│ │ │ '__doc__': None, │ │
│ │ │ '__package__': '', │ │
│ │ │ '__loader__': <zipimporter object │ │
│ │ "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">, │ │
│ │ │ '__spec__': ModuleSpec(name='__main__', loader=<zipimporter object │ │
│ │ "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">, │ │
│ │ origin='C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts… │ │
│ │ │ '__annotations__': {}, │ │
│ │ │ '__builtins__': <module 'builtins' (built-in)>, │ │
│ │ │ '__file__': │ │
│ │ 'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │ │ '__cached__': │ │
│ │ 'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │ │ 're': <module 're' from │ │
│ │ 'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\re\\__ini… │ │
│ │ │ ... +2 │ │
│ │ } │ │
│ │ script_name = None │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ in <module>:7 │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py:1161 in │
│ __call__ │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py:1082 in │
│ main │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py:1697 in │
│ invoke │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py:1443 in │
│ invoke │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py:788 in │
│ invoke │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\decorators.py:33 in │
│ new_func │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip\rip\cli.py:28 │
│ in wrapper │
│ │
│ 25 def coro(f): │
│ 26 │ @wraps(f) │
│ 27 │ def wrapper(*args, **kwargs): │
│ > 28 │ │ return asyncio.run(f(*args, **kwargs)) │
│ 29 │ │
│ 30 │ return wrapper │
│ 31 │
│ │
│ ┌──────────────────────────────────────── locals ─────────────────────────────────────────┐ │
│ │ args = (<click.core.Context object at 0x000001D769961BD0>,) │ │
│ │ kwargs = {'urls': ('https://tidal.com/playlist/138b160a-eac6-40ce-ac65-c1a1e2fc165e',)} │ │
│ └─────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\asyncio\runners.py:190 in run │
│ │
│ 187 │ │ │ "asyncio.run() cannot be called from a running event loop") │
│ 188 │ │
│ 189 │ with Runner(debug=debug) as runner: │
│ > 190 │ │ return runner.run(main) │
│ 191 │
│ 192 │
│ 193 def _cancel_all_tasks(loop): │
│ │
│ ┌──────────────────────────── locals ────────────────────────────┐ │
│ │ debug = None │ │
│ │ main = <coroutine object url at 0x000001D76AA9B880> │ │
│ │ runner = <asyncio.runners.Runner object at 0x000001D76AB9EE50> │ │
│ └────────────────────────────────────────────────────────────────┘ │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\asyncio\runners.py:118 in run │
│ │
│ 115 │ │ │
│ 116 │ │ self._interrupt_count = 0 │
│ 117 │ │ try: │
│ > 118 │ │ │ return self._loop.run_until_complete(task) │
│ 119 │ │ except exceptions.CancelledError: │
│ 120 │ │ │ if self._interrupt_count > 0: │
│ 121 │ │ │ │ uncancel = getattr(task, "uncancel", None) │
│ │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │ context = <_contextvars.Context object at 0x000001D76ADCB1C0> │ │
│ │ coro = <coroutine object url at 0x000001D76AA9B880> │ │
│ │ self = <asyncio.runners.Runner object at 0x000001D76AB9EE50> │ │
│ │ sigint_handler = functools.partial(<bound method Runner._on_sigint of │ │
│ │ <asyncio.runners.Runner object at 0x000001D76AB9EE50>>, main_task=<Task │ │
│ │ finished name='Task-1' coro=<url() done, defined at │ │
│ │ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\str… │ │
│ │ exception=ClientResponseError(RequestInfo(url=URL('https://api.tidalhifi.c… │ │
│ │ method='GET', headers=<CIMultiDictProxy('Host': 'api.tidalhifi.com', │ │
│ │ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) │ │
│ │ Gecko/20100101 Firefox/83.0', 'authorization': 'Bearer │ │
│ │ eyJraWQiOiJ2OU1GbFhqWSIsImFsZyI6IkVTMjU2In0.eyJ0eXBlIjoibzJfYWNjZXNzIiwidW… │ │
│ │ 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate')>, │ │
│ │ real_url=URL('https://api.tidalhifi.com/v1/tracks/346782840?countryCode=AT… │ │
│ │ (), status=404, message='Not Found', │ │
│ │ headers=<CIMultiDictProxy('Content-Type': 'application/json', │ │
│ │ 'Content-Length': '75', 'Connection': 'keep-alive', 'Date': 'Sun, 26 Jan │ │
│ │ 2025 13:59:52 GMT', 'Server': 'noyb', 'Cache-Control': 'no-cache', │ │
│ │ 'X-Cache': 'Error from cloudfront', 'Via': '1.1 │ │
│ │ 8e0ad4a8600f5f24082d25a13a356692.cloudfront.net (CloudFront)', │ │
│ │ 'X-Amz-Cf-Pop': 'OTP50-P1', 'X-Amz-Cf-Id': │ │
│ │ 'CB52RTHI55T1R0iCulR8AYD_ddKtooLr8xcS7PCknv_G3xo3vKER1A==')>)>) │ │
│ │ task = <Task finished name='Task-1' coro=<url() done, defined at │ │
│ │ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\str… │ │
│ │ exception=ClientResponseError(RequestInfo(url=URL('https://api.tidalhifi.c… │ │
│ │ method='GET', headers=<CIMultiDictProxy('Host': 'api.tidalhifi.com', │ │
│ │ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) │ │
│ │ Gecko/20100101 Firefox/83.0', 'authorization': 'Bearer │ │
│ │ eyJraWQiOiJ2OU1GbFhqWSIsImFsZyI6IkVTMjU2In0.eyJ0eXBlIjoibzJfYWNjZXNzIiwidW… │ │
│ │ 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate')>, │ │
│ │ real_url=URL('https://api.tidalhifi.com/v1/tracks/346782840?countryCode=AT… │ │
│ │ (), status=404, message='Not Found', │ │
│ │ headers=<CIMultiDictProxy('Content-Type': 'application/json', │ │
│ │ 'Content-Length': '75', 'Connection': 'keep-alive', 'Date': 'Sun, 26 Jan │ │
│ │ 2025 13:59:52 GMT', 'Server': 'noyb', 'Cache-Control': 'no-cache', │ │
│ │ 'X-Cache': 'Error from cloudfront', 'Via': '1.1 │ │
│ │ 8e0ad4a8600f5f24082d25a13a356692.cloudfront.net (CloudFront)', │ │
│ │ 'X-Amz-Cf-Pop': 'OTP50-P1', 'X-Amz-Cf-Id': │ │
│ │ 'CB52RTHI55T1R0iCulR8AYD_ddKtooLr8xcS7PCknv_G3xo3vKER1A==')>)> │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\asyncio\base_events.py:654 in │
│ run_until_complete │
│ │
│ 651 │ │ if not future.done(): │
│ 652 │ │ │ raise RuntimeError('Event loop stopped before Future completed.') │
│ 653 │ │ │
│ > 654 │ │ return future.result() │
│ 655 │ │
│ 656 │ def stop(self): │
│ 657 │ │ """Stop running the event loop. │
│ │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │ future = <Task finished name='Task-1' coro=<url() done, defined at │ │
│ │ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip… │ │
│ │ exception=ClientResponseError(RequestInfo(url=URL('https://api.tidalhifi.com/v1/… │ │
│ │ method='GET', headers=<CIMultiDictProxy('Host': 'api.tidalhifi.com', │ │
│ │ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 │ │
│ │ Firefox/83.0', 'authorization': 'Bearer │ │
│ │ eyJraWQiOiJ2OU1GbFhqWSIsImFsZyI6IkVTMjU2In0.eyJ0eXBlIjoibzJfYWNjZXNzIiwidWlkIjox… │ │
│ │ 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate')>, │ │
│ │ real_url=URL('https://api.tidalhifi.com/v1/tracks/346782840?countryCode=AT&limit… │ │
│ │ (), status=404, message='Not Found', headers=<CIMultiDictProxy('Content-Type': │ │
│ │ 'application/json', 'Content-Length': '75', 'Connection': 'keep-alive', 'Date': │ │
│ │ 'Sun, 26 Jan 2025 13:59:52 GMT', 'Server': 'noyb', 'Cache-Control': 'no-cache', │ │
│ │ 'X-Cache': 'Error from cloudfront', 'Via': '1.1 │ │
│ │ 8e0ad4a8600f5f24082d25a13a356692.cloudfront.net (CloudFront)', 'X-Amz-Cf-Pop': │ │
│ │ 'OTP50-P1', 'X-Amz-Cf-Id': │ │
│ │ 'CB52RTHI55T1R0iCulR8AYD_ddKtooLr8xcS7PCknv_G3xo3vKER1A==')>)> │ │
│ │ new_task = False │ │
│ │ self = <ProactorEventLoop running=False closed=True debug=False> │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip\rip\cli.py:168 │
│ in url │
│ │
│ 165 │ │ async with Main(cfg) as main: │
│ 166 │ │ │ await main.add_all(urls) │
│ 167 │ │ │ await main.resolve() │
│ > 168 │ │ │ await main.rip() │
│ 169 │ │ │
│ 170 │ │ if version_coro is not None: │
│ 171 │ │ │ latest_version, notes = await version_coro │
│ │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │ cfg = <streamrip.config.Config object at 0x000001D76ABA7E50> │ │
│ │ ctx = <click.core.Context object at 0x000001D769961BD0> │ │
│ │ main = <streamrip.rip.main.Main object at 0x000001D76ADCA4D0> │ │
│ │ updates = True │ │
│ │ urls = ('https://tidal.com/playlist/138b160a-eac6-40ce-ac65-c1a1e2fc165e',) │ │
│ │ version_coro = <Task finished name='Task-2' coro=<latest_streamrip_version() done, defined │ │
│ │ at │ │
│ │ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\strea… │ │
│ │ result=('2.0.5', None)> │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip\rip\main.py:165 │
│ in rip │
│ │
│ 162 │ │
│ 163 │ async def rip(self): │
│ 164 │ │ """Download all resolved items.""" │
│ > 165 │ │ await asyncio.gather(*[item.rip() for item in self.media]) │
│ 166 │ │
│ 167 │ async def search_interactive(self, source: str, media_type: str, query: str): │
│ 168 │ │ client = await self.get_logged_in_client(source) │
│ │
│ ┌─────────────────────────── locals ────────────────────────────┐ │
│ │ self = <streamrip.rip.main.Main object at 0x000001D76ADCA4D0> │ │
│ └───────────────────────────────────────────────────────────────┘ │
│ │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip\media\media.py: │
│ 7 in rip │
│ │
│ 4 class Media(ABC): │
│ 5 │ async def rip(self): │
│ 6 │ │ await self.preprocess() │
│ > 7 │ │ await self.download() │
│ 8 │ │ await self.postprocess() │
│ 9 │ │
│ 10 │ @abstractmethod │
│ │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │ self = Playlist( │ │
│ │ │ name='Joachim.jot: You Are Love Meditation', │ │
│ │ │ config=<streamrip.config.Config object at 0x000001D76ABA7E50>, │ │
│ │ │ client=<streamrip.client.tidal.TidalClient object at 0x000001D76ADCA150>, │ │
│ │ │ tracks=[ │ │
│ │ │ │ PendingPlaylistTrack( │ │
│ │ │ │ │ id='346782840', │ │
│ │ │ │ │ client=<streamrip.client.tidal.TidalClient object at 0x000001D76ADCA150>, │ │
│ │ │ │ │ config=<streamrip.config.Config object at 0x000001D76ABA7E50>, │ │
│ │ │ │ │ folder='D:\\Filebot\\streamrip\\downloads\\Joachim.jot You Are Love │ │
│ │ Meditation', │ │
│ │ │ │ │ playlist_name='Joachim.jot: You Are Love Meditation', │ │
│ │ │ │ │ position=1, │ │
│ │ │ │ │ db=Database( │ │
│ │ │ │ │ │ downloads=<streamrip.db.Downloads object at 0x000001D76AD256D0>, │ │
│ │ │ │ │ │ failed=<streamrip.db.Failed object at 0x000001D76AD255D0> │ │
│ │ │ │ │ ) │ │
│ │ │ │ ), │ │
│ │ │ │ PendingPlaylistTrack( │ │
│ │ │ │ │ id='140245356', │ │
│ │ │ │ │ client=<streamrip.client.tidal.TidalClient object at 0x000001D76ADCA150>, │ │
│ │ │ │ │ config=<streamrip.config.Config object at 0x000001D76ABA7E50>, │ │
│ │ │ │ │ folder='D:\\Filebot\\streamrip\\downloads\\Joachim.jot You Are Love │ │
│ │ Meditation', │ │
│ │ │ │ │ playlist_name='Joachim.jot: You Are Love Meditation', │ │
│ │ │ │ │ position=2, │ │
│ │ │ │ │ db=Database( │ │
│ │ │ │ │ │ downloads=<streamrip.db.Downloads object at 0x000001D76AD256D0>, │ │
│ │ │ │ │ │ failed=<streamrip.db.Failed object at 0x000001D76AD255D0> │ │
│ │ │ │ │ ) │ │
│ │ │ │ ), │ │
│ │ │ │ PendingPlaylistTrack( │ │
│ │ │ │ │ id='95503128', │ │
│ │ │ │ │ client=<streamrip.client.tidal.TidalClient object at 0x000001D76ADCA150>, │ │
│ │ │ │ │ config=<streamrip.config.Config object at 0x000001D76ABA7E50>, │ │
│ │ │ │ │ folder='D:\\Filebot\\streamrip\\downloads\\Joachim.jot You Are Love │ │
│ │ Meditation', │ │
│ │ │ │ │ playlist_name='Joachim.jot: You Are Love Meditation', │ │
│ │ │ │ │ position=3, │ │
│ │ │ │ │ db=Database( │ │
│ │ │ │ │ │ downloads=<streamrip.db.Downloads object at 0x000001D76AD256D0>, │ │
│ │ │ │ │ │ failed=<streamrip.db.Failed object at 0x000001D76AD255D0> │ │
│ │ │ │ │ ) │ │
│ │ │ │ ), │ │
│ │ │ │ PendingPlaylistTrack( │ │
│ │ │ │ │ id='152581051', │ │
│ │ │ │ │ client=<streamrip.client.tidal.TidalClient object at 0x000001D76ADCA150>, │ │
│ │ │ │ │ config=<streamrip.config.Config object at 0x000001D76ABA7E50>, │ │
│ │ │ │ │ folder='D:\\Filebot\\streamrip\\downloads\\Joachim.jot You Are Love │ │
│ │ Meditation', │ │
│ │ │ │ │ playlist_name='Joachim.jot: You Are Love Meditation', │ │
│ │ │ │ │ position=4, │ │
│ │ │ │ │ db=Database( │ │
│ │ │ │ │ │ downloads=<streamrip.db.Downloads object at 0x000001D76AD256D0>, │ │
│ │ │ │ │ │ failed=<streamrip.db.Failed object at 0x000001D76AD255D0> │ │
│ │ │ │ │ ) │ │
│ │ │ │ ), │ │
│ │ │ │ PendingPlaylistTrack( │ │
│ │ │ │ │ id='21977343', │ │
│ │ │ │ │ client=<streamrip.client.tidal.TidalClient object at 0x000001D76ADCA150>, │ │
│ │ │ │ │ config=<streamrip.config.Config object at 0x000001D76ABA7E50>, │ │
│ │ │ │ │ folder='D:\\Filebot\\streamrip\\downloads\\Joachim.jot You Are Love │ │
│ │ Meditation', │ │
│ │ │ │ │ playlist_name='Joachim.jot: You Are Love Meditation', │ │
│ │ │ │ │ position=5, │ │
│ │ │ │ │ db=Database( │ │
│ │ │ │ │ │ downloads=<streamrip.db.Downloads object at 0x000001D76AD256D0>, │ │
│ │ │ │ │ │ failed=<streamrip.db.Failed object at 0x000001D76AD255D0> │ │
│ │ │ │ │ ) │ │
│ │ │ │ ), │ │
│ │ │ │ PendingPlaylistTrack( │ │
│ │ │ │ │ id='95503130', │ │
│ │ │ │ │ client=<streamrip.client.tidal.TidalClient object at 0x000001D76ADCA150>, │ │
│ │ │ │ │ config=<streamrip.config.Config object at 0x000001D76ABA7E50>, │ │
│ │ │ │ │ folder='D:\\Filebot\\streamrip\\downloads\\Joachim.jot You Are Love │ │
│ │ Meditation', │ │
│ │ │ │ │ playlist_name='Joachim.jot: You Are Love Meditation', │ │
│ │ │ │ │ position=6, │ │
│ │ │ │ │ db=Database( │ │
│ │ │ │ │ │ downloads=<streamrip.db.Downloads object at 0x000001D76AD256D0>, │ │
│ │ │ │ │ │ failed=<streamrip.db.Failed object at 0x000001D76AD255D0> │ │
│ │ │ │ │ ) │ │
│ │ │ │ ), │ │
│ │ │ │ PendingPlaylistTrack( │ │
│ │ │ │ │ id='221167805', │ │
│ │ │ │ │ client=<streamrip.client.tidal.TidalClient object at 0x000001D76ADCA150>, │ │
│ │ │ │ │ config=<streamrip.config.Config object at 0x000001D76ABA7E50>, │ │
│ │ │ │ │ folder='D:\\Filebot\\streamrip\\downloads\\Joachim.jot You Are Love │ │
│ │ Meditation', │ │
│ │ │ │ │ playlist_name='Joachim.jot: You Are Love Meditation', │ │
│ │ │ │ │ position=7, │ │
│ │ │ │ │ db=Database( │ │
│ │ │ │ │ │ downloads=<streamrip.db.Downloads object at 0x000001D76AD256D0>, │ │
│ │ │ │ │ │ failed=<streamrip.db.Failed object at 0x000001D76AD255D0> │ │
│ │ │ │ │ ) │ │
│ │ │ │ ), │ │
│ │ │ │ PendingPlaylistTrack( │ │
│ │ │ │ │ id='336901514', │ │
│ │ │ │ │ client=<streamrip.client.tidal.TidalClient object at 0x000001D76ADCA150>, │ │
│ │ │ │ │ config=<streamrip.config.Config object at 0x000001D76ABA7E50>, │ │
│ │ │ │ │ folder='D:\\Filebot\\streamrip\\downloads\\Joachim.jot You Are Love │ │
│ │ Meditation', │ │
│ │ │ │ │ playlist_name='Joachim.jot: You Are Love Meditation', │ │
│ │ │ │ │ position=8, │ │
│ │ │ │ │ db=Database( │ │
│ │ │ │ │ │ downloads=<streamrip.db.Downloads object at 0x000001D76AD256D0>, │ │
│ │ │ │ │ │ failed=<streamrip.db.Failed object at 0x000001D76AD255D0> │ │
│ │ │ │ │ ) │ │
│ │ │ │ ), │ │
│ │ │ │ PendingPlaylistTrack( │ │
│ │ │ │ │ id='359725117', │ │
│ │ │ │ │ client=<streamrip.client.tidal.TidalClient object at 0x000001D76ADCA150>, │ │
│ │ │ │ │ config=<streamrip.config.Config object at 0x000001D76ABA7E50>, │ │
│ │ │ │ │ folder='D:\\Filebot\\streamrip\\downloads\\Joachim.jot You Are Love │ │
│ │ Meditation', │ │
│ │ │ │ │ playlist_name='Joachim.jot: You Are Love Meditation', │ │
│ │ │ │ │ position=9, │ │
│ │ │ │ │ db=Database( │ │
│ │ │ │ │ │ downloads=<streamrip.db.Downloads object at 0x000001D76AD256D0>, │ │
│ │ │ │ │ │ failed=<streamrip.db.Failed object at 0x000001D76AD255D0> │ │
│ │ │ │ │ ) │ │
│ │ │ │ ), │ │
│ │ │ │ PendingPlaylistTrack( │ │
│ │ │ │ │ id='351299701', │ │
│ │ │ │ │ client=<streamrip.client.tidal.TidalClient object at 0x000001D76ADCA150>, │ │
│ │ │ │ │ config=<streamrip.config.Config object at 0x000001D76ABA7E50>, │ │
│ │ │ │ │ folder='D:\\Filebot\\streamrip\\downloads\\Joachim.jot You Are Love │ │
│ │ Meditation', │ │
│ │ │ │ │ playlist_name='Joachim.jot: You Are Love Meditation', │ │
│ │ │ │ │ position=10, │ │
│ │ │ │ │ db=Database( │ │
│ │ │ │ │ │ downloads=<streamrip.db.Downloads object at 0x000001D76AD256D0>, │ │
│ │ │ │ │ │ failed=<streamrip.db.Failed object at 0x000001D76AD255D0> │ │
│ │ │ │ │ ) │ │
│ │ │ │ ), │ │
│ │ │ │ ... +1 │ │
│ │ │ ] │ │
│ │ ) │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│
Config File
vanilla
Operating System
Windows 10 Pro 22H2
streamrip version
rip, version 2.0.5 (dev)
Screenshots and recordings
No response
Additional context
No response
Second part of log, since its too long to add it to the debug field above
C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip\media\playlist. │
│ py:133 in download │
│ │
│ 130 │ │ │ track_resolve_chunk_size, │
│ 131 │ │ ) │
│ 132 │ │ for batch in batches: │
│ > 133 │ │ │ await asyncio.gather(*batch) │
│ 134 │ │
│ 135 │ @staticmethod │
│ 136 │ def batch(iterable, n=1): │
│ │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │ batch = [ │ │
│ │ │ <coroutine object │ │
│ │ Playlist.download.
I think the problem is the first song. If you watch in Tidal, the first item in your list is grey. Its's impossible to play this song. This happens typiclay, when there are publishing-issues. So, when i copy the other items in your playlist to another playlist, i am able to download the songs.
I think the problem is the first song. If you watch in Tidal, the first item in your list is grey. Its's impossible to play this song. This happens typiclay, when there are publishing-issues. So, when i copy the other items in your playlist to another playlist, i am able to download the songs.
Thank you for that insight! My main reason to rip playlists is because Tidal has more and more publishing issues with songs and I carefully build these playlists for meditation purposes. Thats why all playlists I tried had the same error. I tried now a playlist without a greyed out song and it worked.
@devs: maybe it would be possible to not crash when there is an unavailable song in a playlist, but just skip it?
@devs: maybe it would be possible to not crash when there is an unavailable song in a playlist, but just skip it?
I agree, it should just skip the unavailable songs then continue to download other songs