aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYen Chi Hsuan <yan12125@gmail.com>2016-09-10 20:09:09 +0800
committerYen Chi Hsuan <yan12125@gmail.com>2016-09-10 20:09:09 +0800
commit6c3affcb18f7eabf7d428e5efe474e0547ab25cb (patch)
tree62de01d3c0dfc6d924b059489a89fb1cd7c1c30b
parentc6129feb7f8313941a4d2044fa4b45ceaa0a91c7 (diff)
downloadyoutube-dl-6c3affcb18f7eabf7d428e5efe474e0547ab25cb.zip
youtube-dl-6c3affcb18f7eabf7d428e5efe474e0547ab25cb.tar.gz
youtube-dl-6c3affcb18f7eabf7d428e5efe474e0547ab25cb.tar.bz2
[newgrounds] Fix uploader extraction
Closes #10584 Also change test URLs to HTTPS, as proposed by @stepshal in #10593. Closes #10593
-rw-r--r--ChangeLog6
-rw-r--r--youtube_dl/extractor/newgrounds.py23
2 files changed, 14 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index d84f447..fafe445 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+version <unreleased>
+
+Extractors
+* [newgrounds] Fix uploader extraction (#10584)
+
+
version 2016.09.08
Extractors
diff --git a/youtube_dl/extractor/newgrounds.py b/youtube_dl/extractor/newgrounds.py
index 7059403..9bea610 100644
--- a/youtube_dl/extractor/newgrounds.py
+++ b/youtube_dl/extractor/newgrounds.py
@@ -1,15 +1,12 @@
from __future__ import unicode_literals
-import json
-import re
-
from .common import InfoExtractor
class NewgroundsIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?newgrounds\.com/(?:audio/listen|portal/view)/(?P<id>[0-9]+)'
_TESTS = [{
- 'url': 'http://www.newgrounds.com/audio/listen/549479',
+ 'url': 'https://www.newgrounds.com/audio/listen/549479',
'md5': 'fe6033d297591288fa1c1f780386f07a',
'info_dict': {
'id': '549479',
@@ -18,7 +15,7 @@ class NewgroundsIE(InfoExtractor):
'uploader': 'Burn7',
}
}, {
- 'url': 'http://www.newgrounds.com/portal/view/673111',
+ 'url': 'https://www.newgrounds.com/portal/view/673111',
'md5': '3394735822aab2478c31b1004fe5e5bc',
'info_dict': {
'id': '673111',
@@ -29,24 +26,20 @@ class NewgroundsIE(InfoExtractor):
}]
def _real_extract(self, url):
- mobj = re.match(self._VALID_URL, url)
- music_id = mobj.group('id')
- webpage = self._download_webpage(url, music_id)
+ media_id = self._match_id(url)
+ webpage = self._download_webpage(url, media_id)
title = self._html_search_regex(
r'<title>([^>]+)</title>', webpage, 'title')
uploader = self._html_search_regex(
- [r',"artist":"([^"]+)",', r'[\'"]owner[\'"]\s*:\s*[\'"]([^\'"]+)[\'"],'],
- webpage, 'uploader')
+ r'Author\s*<a[^>]+>([^<]+)', webpage, 'uploader', fatal=False)
- music_url_json_string = self._html_search_regex(
- r'({"url":"[^"]+"),', webpage, 'music url') + '}'
- music_url_json = json.loads(music_url_json_string)
- music_url = music_url_json['url']
+ music_url = self._parse_json(self._search_regex(
+ r'"url":("[^"]+"),', webpage, ''), media_id)
return {
- 'id': music_id,
+ 'id': media_id,
'title': title,
'url': music_url,
'uploader': uploader,