X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fopenload.py;h=5049b870ed198f3ce4f702c07efe98559d453ef2;hb=c8602b2f9bcdda00398b2c54db4c1be85b75ce39;hp=4468f31fcae074090346d134180fee98752b7822;hpb=9e3c2f1d741acc4dd576f77c185e99cfd6bb2ea4;p=youtube-dl
diff --git a/youtube_dl/extractor/openload.py b/youtube_dl/extractor/openload.py
index 4468f31fc..5049b870e 100644
--- a/youtube_dl/extractor/openload.py
+++ b/youtube_dl/extractor/openload.py
@@ -6,8 +6,10 @@ import re
from .common import InfoExtractor
from ..compat import compat_chr
from ..utils import (
+ determine_ext,
encode_base_n,
ExtractorError,
+ mimetype2ext,
)
@@ -29,6 +31,11 @@ class OpenloadIE(InfoExtractor):
}, {
'url': 'https://openload.io/f/ZAn6oz-VZGE/',
'only_matching': True,
+ }, {
+ # unavailable via https://openload.co/f/Sxz5sADo82g/, different layout
+ # for title and ext
+ 'url': 'https://openload.co/embed/Sxz5sADo82g/',
+ 'only_matching': True,
}]
@staticmethod
@@ -93,15 +100,28 @@ class OpenloadIE(InfoExtractor):
raise ExtractorError('File not found', expected=True)
code = self._search_regex(
- r'\s*\s*',
webpage, 'JS code')
+ decoded = self.openload_decode(code)
+
video_url = self._search_regex(
- r'return\s+"(https?://[^"]+)"', self.openload_decode(code), 'video URL')
+ r'return\s+"(https?://[^"]+)"', decoded, 'video URL')
+
+ title = self._og_search_title(webpage, default=None) or self._search_regex(
+ r']+class=["\']title["\'][^>]*>([^<]+)', webpage,
+ 'title', default=None) or self._html_search_meta(
+ 'description', webpage, 'title', fatal=True)
+
+ ext = mimetype2ext(self._search_regex(
+ r'window\.vt\s*=\s*(["\'])(?P.+?)\1', decoded,
+ 'mimetype', default=None, group='mimetype')) or determine_ext(
+ video_url, 'mp4')
return {
'id': video_id,
- 'title': self._og_search_title(webpage),
- 'thumbnail': self._og_search_thumbnail(webpage),
+ 'title': title,
+ 'ext': ext,
+ 'thumbnail': self._og_search_thumbnail(webpage, default=None),
'url': video_url,
}