aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2017-01-25 23:27:22 +0700
committerSergey M․ <dstftw@gmail.com>2017-01-25 23:27:22 +0700
commit17f8deeb481a7aa3079d7e11da2c255f893b9e8c (patch)
tree17ce1772003e5715488d50bbb51c2b2849d8b843
parentb8a03b66601f6af9e6b4009cba634dac6e0d30e6 (diff)
downloadyoutube-dl-17f8deeb481a7aa3079d7e11da2c255f893b9e8c.tar.xz
[extractor/generic] Add support for openload embeds (closes #11536, closes #11812)
-rw-r--r--youtube_dl/extractor/generic.py7
-rw-r--r--youtube_dl/extractor/openload.py8
2 files changed, 15 insertions, 0 deletions
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py
index 40201f311..a23486620 100644
--- a/youtube_dl/extractor/generic.py
+++ b/youtube_dl/extractor/generic.py
@@ -80,6 +80,7 @@ from .piksel import PikselIE
from .videa import VideaIE
from .twentymin import TwentyMinutenIE
from .ustream import UstreamIE
+from .openload import OpenloadIE
class GenericIE(InfoExtractor):
@@ -2431,6 +2432,12 @@ class GenericIE(InfoExtractor):
return _playlist_from_matches(
twentymin_urls, ie=TwentyMinutenIE.ie_key())
+ # Look for Openload embeds
+ openload_urls = OpenloadIE._extract_urls(webpage)
+ if openload_urls:
+ return _playlist_from_matches(
+ openload_urls, ie=OpenloadIE.ie_key())
+
# Looking for http://schema.org/VideoObject
json_ld = self._search_json_ld(
webpage, video_id, default={}, expected_type='VideoObject')
diff --git a/youtube_dl/extractor/openload.py b/youtube_dl/extractor/openload.py
index 3d4ad7dca..4893ade5d 100644
--- a/youtube_dl/extractor/openload.py
+++ b/youtube_dl/extractor/openload.py
@@ -1,6 +1,8 @@
# coding: utf-8
from __future__ import unicode_literals
+import re
+
from .common import InfoExtractor
from ..compat import compat_chr
from ..utils import (
@@ -56,6 +58,12 @@ class OpenloadIE(InfoExtractor):
'only_matching': True,
}]
+ @staticmethod
+ def _extract_urls(webpage):
+ return re.findall(
+ r'<iframe[^>]+src=["\']((?:https?://)?(?:openload\.(?:co|io)|oload\.tv)/embed/[a-zA-Z0-9-_]+)',
+ webpage)
+
def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage('https://openload.co/embed/%s/' % video_id, video_id)