[xtube] Fix extraction for both kinds of video id (closes #12088)
authorSergey M․ <dstftw@gmail.com>
Mon, 13 Feb 2017 16:44:43 +0000 (23:44 +0700)
committerSergey M․ <dstftw@gmail.com>
Mon, 13 Feb 2017 16:44:43 +0000 (23:44 +0700)
youtube_dl/extractor/xtube.py

index ed3a376494140d642fd978468262cbfb69344279..5584674a061fc5a67bbb65bc0b58fc96e96eae3b 100644 (file)
@@ -44,6 +44,9 @@ class XTubeIE(InfoExtractor):
     }, {
         'url': 'xtube:625837',
         'only_matching': True,
+    }, {
+        'url': 'xtube:kVTUy_G222_',
+        'only_matching': True,
     }]
 
     def _real_extract(self, url):
@@ -53,11 +56,16 @@ class XTubeIE(InfoExtractor):
 
         if not display_id:
             display_id = video_id
-            url = 'http://www.xtube.com/watch.php?v=%s' % video_id
 
-        req = sanitized_Request(url)
-        req.add_header('Cookie', 'age_verified=1; cookiesAccepted=1')
-        webpage = self._download_webpage(req, display_id)
+        if video_id.isdigit() and len(video_id) < 11:
+            url_pattern = 'http://www.xtube.com/video-watch/-%s'
+        else:
+            url_pattern = 'http://www.xtube.com/watch.php?v=%s'
+
+        webpage = self._download_webpage(
+            url_pattern % video_id, display_id, headers={
+                'Cookie': 'age_verified=1; cookiesAccepted=1',
+            })
 
         sources = self._parse_json(self._search_regex(
             r'(["\'])sources\1\s*:\s*(?P<sources>{.+?}),',