summary refs log tree commit diff
diff options
context:
space:
mode:
authorYen Chi Hsuan <yan12125@gmail.com>2017-04-25 22:23:57 +0800
committerYen Chi Hsuan <yan12125@gmail.com>2017-04-25 22:23:57 +0800
commit01cb57016ff747ab07c506a708093dfd633d58f6 (patch)
tree401e9d6f2b15e7c84ccd41c706ce912c96935195
parent290f64dbaa3a8c187d47b72b3c808bd52d15a6e8 (diff)
downloadyoutube-dl-01cb57016ff747ab07c506a708093dfd633d58f6.tar.gz
youtube-dl-01cb57016ff747ab07c506a708093dfd633d58f6.tar.xz
youtube-dl-01cb57016ff747ab07c506a708093dfd633d58f6.zip
[iqiyi] Fix extraction of Yule videos
-rw-r--r--ChangeLog1
-rw-r--r--youtube_dl/extractor/iqiyi.py13
2 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 50daa1a69..d38039663 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@ Core
 * [socks] Handle cases where credentials are required but missing
 
 Extractors
+* [iqiyi] Fix extraction of Yule videos
 * [iqiyi] Fix playlist detection (#12504)
 - [azubu] Remove extractor (#12813)
 * [porn91] Fix extraction (#12814)
diff --git a/youtube_dl/extractor/iqiyi.py b/youtube_dl/extractor/iqiyi.py
index 8a711afb9..fdfa7de9e 100644
--- a/youtube_dl/extractor/iqiyi.py
+++ b/youtube_dl/extractor/iqiyi.py
@@ -189,7 +189,11 @@ class IqiyiIE(InfoExtractor):
         'only_matching': True,
     }, {
         'url': 'http://yule.iqiyi.com/pcb.html',
-        'only_matching': True,
+        'info_dict': {
+            'id': '4a0af228fddb55ec96398a364248ed7f',
+            'ext': 'mp4',
+            'title': '第2017-04-21期 女艺人频遭极端粉丝骚扰',
+        },
     }, {
         # VIP-only video. The first 2 parts (6 minutes) are available without login
         # MD5 sums omitted as values are different on Travis CI and my machine
@@ -340,7 +344,7 @@ class IqiyiIE(InfoExtractor):
         # Sometimes there are playlist links in individual videos, so treat it
         # as a single video first
         tvid = self._search_regex(
-            r'data-player-tvid\s*=\s*[\'"](\d+)', webpage, 'tvid', default=None)
+            r'data-(?:player|shareplattrigger)-tvid\s*=\s*[\'"](\d+)', webpage, 'tvid', default=None)
         if tvid is None:
             playlist_result = self._extract_playlist(webpage)
             if playlist_result:
@@ -348,7 +352,7 @@ class IqiyiIE(InfoExtractor):
             raise ExtractorError('Can\'t find any video')
 
         video_id = self._search_regex(
-            r'data-player-videoid\s*=\s*[\'"]([a-f\d]+)', webpage, 'video_id')
+            r'data-(?:player|shareplattrigger)-videoid\s*=\s*[\'"]([a-f\d]+)', webpage, 'video_id')
 
         formats = []
         for _ in range(5):
@@ -380,7 +384,8 @@ class IqiyiIE(InfoExtractor):
 
         self._sort_formats(formats)
         title = (get_element_by_id('widget-videotitle', webpage) or
-                 clean_html(get_element_by_attribute('class', 'mod-play-tit', webpage)))
+                 clean_html(get_element_by_attribute('class', 'mod-play-tit', webpage)) or
+                 self._html_search_regex(r'<span[^>]+data-videochanged-title="word"[^>]*>([^<]+)</span>', webpage, 'title'))
 
         return {
             'id': video_id,