diff --git a/core/misc.py b/core/misc.py index 59a839c..91b5fd4 100755 --- a/core/misc.py +++ b/core/misc.py @@ -98,11 +98,14 @@ def generate_token(): return token -def generate_search_url(song): +def generate_search_url(song, viewsort=False): """Generate YouTube search URL for the given song.""" # urllib.request.quote() encodes URL with special characters - url = u"https://www.youtube.com/results?q={0}&sp=CAMSAhABUBQ%253D".format( - quote(song)) + song = quote(song) + if viewsort: + url = u"https://www.youtube.com/results?q={0}&sp=CAMSAhABUBQ%253D".format(song) + else: + url = u"https://www.youtube.com/results?sp=EgIQAQ%253D%253D&q={0}".format(song) return url diff --git a/spotdl.py b/spotdl.py index 1d51f41..6b9512e 100755 --- a/spotdl.py +++ b/spotdl.py @@ -58,9 +58,11 @@ def generate_youtube_url(raw_song): meta_tags = generate_metadata(raw_song) if meta_tags is None: song = raw_song + search_url = misc.generate_search_url(song, viewsort=False) else: song = generate_songname(meta_tags) - search_url = misc.generate_search_url(song) + search_url = misc.generate_search_url(song, viewsort=True) + item = urllib.request.urlopen(search_url).read() # item = unicode(item, 'utf-8') items_parse = BeautifulSoup(item, "html.parser") @@ -83,7 +85,7 @@ def generate_youtube_url(raw_song): if not videos: return None - + if args.manual: print(song) print('')