瀏覽代碼

[newgrounds] Fix metadata extraction (closes #15531)

Sergey M․ 7 年之前
父節點
當前提交
9e167e1ee3
共有 1 個文件被更改,包括 9 次插入7 次删除
  1. 9 7
      youtube_dl/extractor/newgrounds.py

+ 9 - 7
youtube_dl/extractor/newgrounds.py

@@ -87,19 +87,21 @@ class NewgroundsIE(InfoExtractor):
         self._check_formats(formats, media_id)
         self._check_formats(formats, media_id)
         self._sort_formats(formats)
         self._sort_formats(formats)
 
 
-        uploader = self._search_regex(
-            r'(?:Author|Writer)\s*<a[^>]+>([^<]+)', webpage, 'uploader',
+        uploader = self._html_search_regex(
+            (r'(?s)<h4[^>]*>(.+?)</h4>.*?<em>\s*Author\s*</em>',
+             r'(?:Author|Writer)\s*<a[^>]+>([^<]+)'), webpage, 'uploader',
             fatal=False)
             fatal=False)
 
 
-        timestamp = unified_timestamp(self._search_regex(
-            r'<dt>Uploaded</dt>\s*<dd>([^<]+)', webpage, 'timestamp',
+        timestamp = unified_timestamp(self._html_search_regex(
+            (r'<dt>\s*Uploaded\s*</dt>\s*<dd>([^<]+</dd>\s*<dd>[^<]+)',
+             r'<dt>\s*Uploaded\s*</dt>\s*<dd>([^<]+)'), webpage, 'timestamp',
             default=None))
             default=None))
         duration = parse_duration(self._search_regex(
         duration = parse_duration(self._search_regex(
-            r'<dd>Song\s*</dd><dd>.+?</dd><dd>([^<]+)', webpage, 'duration',
-            default=None))
+            r'(?s)<dd>\s*Song\s*</dd>\s*<dd>.+?</dd>\s*<dd>([^<]+)', webpage,
+            'duration', default=None))
 
 
         filesize_approx = parse_filesize(self._html_search_regex(
         filesize_approx = parse_filesize(self._html_search_regex(
-            r'<dd>Song\s*</dd><dd>(.+?)</dd>', webpage, 'filesize',
+            r'(?s)<dd>\s*Song\s*</dd>\s*<dd>(.+?)</dd>', webpage, 'filesize',
             default=None))
             default=None))
         if len(formats) == 1:
         if len(formats) == 1:
             formats[0]['filesize_approx'] = filesize_approx
             formats[0]['filesize_approx'] = filesize_approx