mirror of
https://github.com/KevinMidboe/spotify-downloader.git
synced 2025-12-08 20:39:08 +00:00
Custom YouTube search string (#261)
* Custom YouTube search string * Fix sorting issues on < Python 3.6
This commit is contained in:
@@ -68,12 +68,12 @@ def download_song(file_name, content):
|
||||
return False
|
||||
|
||||
|
||||
def generate_search_url(song):
|
||||
def generate_search_url(query):
|
||||
""" Generate YouTube search URL for the given song. """
|
||||
# urllib.request.quote() encodes URL with special characters
|
||||
song = urllib.request.quote(song)
|
||||
# urllib.request.quote() encodes string with special characters
|
||||
quoted_query = urllib.request.quote(query)
|
||||
# Special YouTube URL filter to search only for videos
|
||||
url = 'https://www.youtube.com/results?sp=EgIQAQ%253D%253D&q={0}'.format(song)
|
||||
url = 'https://www.youtube.com/results?sp=EgIQAQ%253D%253D&q={0}'.format(quoted_query)
|
||||
return url
|
||||
|
||||
|
||||
@@ -109,6 +109,12 @@ class GenerateYouTubeURL:
|
||||
self.raw_song = raw_song
|
||||
self.meta_tags = meta_tags
|
||||
|
||||
if meta_tags is None:
|
||||
self.search_query = raw_song
|
||||
else:
|
||||
self.search_query = internals.format_string(const.args.search_format,
|
||||
meta_tags)
|
||||
|
||||
def _best_match(self, videos):
|
||||
""" Select the best matching video from a list of videos. """
|
||||
if const.args.manual:
|
||||
@@ -161,13 +167,7 @@ class GenerateYouTubeURL:
|
||||
log.debug('No tries left. I quit.')
|
||||
return
|
||||
|
||||
if self.meta_tags is None:
|
||||
song = self.raw_song
|
||||
search_url = generate_search_url(song)
|
||||
else:
|
||||
song = internals.generate_songname(const.args.file_format,
|
||||
self.meta_tags)
|
||||
search_url = generate_search_url(song)
|
||||
search_url = generate_search_url(self.search_query)
|
||||
log.debug('Opening URL: {0}'.format(search_url))
|
||||
|
||||
item = urllib.request.urlopen(search_url).read()
|
||||
@@ -212,9 +212,7 @@ class GenerateYouTubeURL:
|
||||
song = self.raw_song
|
||||
query['q'] = song
|
||||
else:
|
||||
song = '{0} - {1}'.format(self.meta_tags['artists'][0]['name'],
|
||||
self.meta_tags['name'])
|
||||
query['q'] = song
|
||||
query['q'] = self.search_query
|
||||
log.debug('query: {0}'.format(query))
|
||||
|
||||
data = pafy.call_gdata('search', query)
|
||||
|
||||
Reference in New Issue
Block a user