]>
Commit | Line | Data |
---|---|---|
eb03f4da R |
1 | import json |
2 | import re | |
3 | ||
4 | from .common import InfoExtractor | |
5 | from ..utils import determine_ext | |
6 | ||
d0ae9e3a | 7 | |
eb03f4da R |
8 | class NewgroundsIE(InfoExtractor): |
9 | _VALID_URL = r'(?:https?://)?(?:www\.)?newgrounds\.com/audio/listen/(?P<id>\d+)' | |
10 | _TEST = { | |
11 | u'url': u'http://www.newgrounds.com/audio/listen/549479', | |
1ef80b55 | 12 | u'file': u'549479.mp3', |
a19413c3 | 13 | u'md5': u'fe6033d297591288fa1c1f780386f07a', |
eb03f4da R |
14 | u'info_dict': { |
15 | u"title": u"B7 - BusMode", | |
d0ae9e3a | 16 | u"uploader": u"Burn7", |
eb03f4da R |
17 | } |
18 | } | |
19 | ||
20 | def _real_extract(self, url): | |
21 | mobj = re.match(self._VALID_URL, url) | |
22 | music_id = mobj.group('id') | |
23 | webpage = self._download_webpage(url, music_id) | |
24 | ||
d0ae9e3a PH |
25 | title = self._html_search_regex(r',"name":"([^"]+)",', webpage, u'music title') |
26 | uploader = self._html_search_regex(r',"artist":"([^"]+)",', webpage, u'music uploader') | |
eb03f4da | 27 | |
d0ae9e3a | 28 | music_url_json_string = self._html_search_regex(r'({"url":"[^"]+"),', webpage, u'music url') + '}' |
eb03f4da R |
29 | music_url_json = json.loads(music_url_json_string) |
30 | music_url = music_url_json['url'] | |
31 | ||
d0ae9e3a | 32 | return { |
eb03f4da | 33 | 'id': music_id, |
d0ae9e3a | 34 | 'title': title, |
eb03f4da R |
35 | 'url': music_url, |
36 | 'uploader': uploader, | |
37 | 'ext': determine_ext(music_url), | |
d0ae9e3a | 38 | } |