Added mail.ru music

This commit is contained in:
2018-03-02 14:05:38 -06:00
parent a2074d2b49
commit 69487bac2d
3 changed files with 47 additions and 2 deletions

39
src/extractors/mailru.py Normal file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import urllib.parse
import requests
import youtube_dl
from bs4 import BeautifulSoup
from . import baseFile
class interface(object):
def __init__(self):
self.results = []
self.name = "mailru"
self.needs_transcode = False
def search(self, text, page=1):
site = 'https://my.mail.ru/music/search/%s' % (text)
r = requests.get(site)
soup = BeautifulSoup(r.text, 'html.parser')
search_results = soup.find_all("div", {"class": "songs-table__row__col songs-table__row__col--title title songs-table__row__col--title-hq-similar resize"})
self.results = []
for search in search_results:
data = search.find_all("a")
s = baseFile.song(self)
s.title = data[0].text.replace("\n", "").replace("\t", "")
# s.artist = data[1].text.replace("\n", "").replace("\t", "")
# print(data)
s.url = u"https://my.mail.ru"+urllib.parse.quote(data[0].__dict__["attrs"]["href"])
self.results.append(s)
def get_download_url(self, url):
ydl = youtube_dl.YoutubeDL({'quiet': True, 'format': 'bestaudio/best', 'outtmpl': u'%(id)s%(ext)s'})
with ydl:
result = ydl.extract_info(url, download=False)
if 'entries' in result:
video = result['entries'][0]
else:
video = result
return video["url"]