Use YouTube as fallback for track metadata if not found on Spotify

This commit is contained in:
Ritiek Malhotra
2018-12-31 19:12:54 +05:30
parent ddb4b01897
commit eb77880f9f
5 changed files with 84 additions and 5 deletions

31
spotdl/patcher.py Normal file
View File

@@ -0,0 +1,31 @@
import pafy
from spotdl import internals
def _getbestthumb(self):
url = self._ydl_info["thumbnails"][0]["url"]
if url:
return url
part_url = "http://i.ytimg.com/vi/%s/" % self.videoid
# Thumbnail resolution sorted in descending order
thumbs = ("maxresdefault.jpg",
"sddefault.jpg",
"hqdefault.jpg",
"mqdefault.jpg",
"default.jpg")
for thumb in thumbs:
url = part_url + thumb
if self._content_available(url):
return url
@classmethod
def _content_available(cls, url):
return internals.content_available(url)
def patch_pafy():
pafy.backend_shared.BasePafy._bestthumb = None
pafy.backend_shared.BasePafy._content_available = _content_available
pafy.backend_shared.BasePafy.getbestthumb = _getbestthumb