From 1e5f3bc2b33f71810568836cb52b8a1ec991822f Mon Sep 17 00:00:00 2001 From: uh wot Date: Mon, 20 Nov 2023 20:50:46 +0100 Subject: [PATCH] add track search by isrc --- interface.py | 7 +++++-- tidal_api.py | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/interface.py b/interface.py index d02d4ca..2529334 100644 --- a/interface.py +++ b/interface.py @@ -213,10 +213,13 @@ class ModuleInterface: return 'https://resources.tidal.com/videos/{0}/{1}x{1}.mp4'.format(cover_id.replace('-', '/'), size) def search(self, query_type: DownloadTypeEnum, query: str, track_info: TrackInfo = None, limit: int = 20): - results = self.session.get_search_data(query, limit=limit) + if track_info and track_info.tags.isrc: + results = self.session.get_tracks_by_isrc(track_info.tags.isrc) + else: + results = self.session.get_search_data(query, limit=limit)[query_type.name + 's'] items = [] - for i in results[query_type.name + 's'].get('items'): + for i in results.get('items'): duration, name = None, None if query_type is DownloadTypeEnum.artist: name = i.get('name') diff --git a/tidal_api.py b/tidal_api.py index ab8fc9a..d919d2e 100644 --- a/tidal_api.py +++ b/tidal_api.py @@ -174,6 +174,11 @@ class TidalApi(object): def get_video(self, video_id): return self._get('videos/' + str(video_id)) + + def get_tracks_by_isrc(self, isrc): + return self._get('tracks', params={ + 'isrc': isrc + }) def get_favorite_tracks(self, user_id): return self._get('users/' + str(user_id) + '/favorites/tracks')