From 6ac25bda0cc5a185c050a619b600e4075b983413 Mon Sep 17 00:00:00 2001 From: ritiek Date: Thu, 20 Jul 2017 05:18:52 +0530 Subject: [PATCH] Fix KeyError when ISRC info unavailable --- core/metadata.py | 3 ++- spotdl.py | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/core/metadata.py b/core/metadata.py index 39332e9..8abe31b 100755 --- a/core/metadata.py +++ b/core/metadata.py @@ -58,13 +58,14 @@ def embed_mp3(music_file, meta_tags): audiofile['arranger'] = meta_tags['artists'][0]['name'] audiofile['performer'] = meta_tags['artists'][0]['name'] audiofile['encodedby'] = meta_tags['publisher'] - audiofile['isrc'] = meta_tags['external_ids']['isrc'] audiofile['website'] = meta_tags['external_urls']['spotify'] audiofile['length'] = str(meta_tags['duration_ms'] / 1000) if meta_tags['genre']: audiofile['genre'] = meta_tags['genre'] if meta_tags['copyright']: audiofile['copyright'] = meta_tags['copyright'] + if meta_tags['isrc']: + audiofile['isrc'] = meta_tags['external_ids']['isrc'] audiofile.save(v2_version=3) audiofile = ID3(music_file) albumart = urllib.request.urlopen(meta_tags['album']['images'][0]['url']) diff --git a/spotdl.py b/spotdl.py index 27ff3ee..341eba9 100755 --- a/spotdl.py +++ b/spotdl.py @@ -46,6 +46,10 @@ def generate_metadata(raw_song): meta_tags[u'copyright'] = album['copyrights'][0]['text'] except IndexError: meta_tags[u'copyright'] = None + try: + meta_tags['isrc'] + except KeyError: + meta_tags['isrc'] = None meta_tags[u'release_date'] = album['release_date'] meta_tags[u'publisher'] = album['label'] @@ -62,7 +66,7 @@ def generate_youtube_url(raw_song): item = urllib.request.urlopen(search_url).read() # item = unicode(item, 'utf-8') items_parse = BeautifulSoup(item, "html.parser") - + videos = [] for x in items_parse.find_all('div', {'class': 'yt-lockup-dismissable yt-uix-tile'}): # confirm the video result is not an advertisement