aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor/expressen.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2018-08-14 22:51:44 +0700
committerSergey M․ <dstftw@gmail.com>2018-08-14 22:51:44 +0700
commit57c68ec4c303f471b2519db21b9b56c080d88338 (patch)
tree10be8cb3e4fa62e8346088feb3226cd4f5fc1ee3 /youtube_dl/extractor/expressen.py
parent24e0cd709fae13d9192361dae27ecd292c6b1fd6 (diff)
[generic] Add support for expressen embeds
Diffstat (limited to 'youtube_dl/extractor/expressen.py')
-rw-r--r--youtube_dl/extractor/expressen.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/youtube_dl/extractor/expressen.py b/youtube_dl/extractor/expressen.py
index f61178012..934571472 100644
--- a/youtube_dl/extractor/expressen.py
+++ b/youtube_dl/extractor/expressen.py
@@ -1,6 +1,8 @@
# coding: utf-8
from __future__ import unicode_literals
+import re
+
from .common import InfoExtractor
from ..utils import (
determine_ext,
@@ -11,7 +13,13 @@ from ..utils import (
class ExpressenIE(InfoExtractor):
- _VALID_URL = r'https?://(?:www\.)?expressen\.se/tv/(?:[^/]+/)*(?P<id>[^/?#&]+)'
+ _VALID_URL = r'''(?x)
+ https?://
+ (?:www\.)?expressen\.se/
+ (?:(?:tvspelare/video|videoplayer/embed)/)?
+ tv/(?:[^/]+/)*
+ (?P<id>[^/?#&]+)
+ '''
_TESTS = [{
'url': 'https://www.expressen.se/tv/ledare/ledarsnack/ledarsnack-om-arbetslosheten-bland-kvinnor-i-speciellt-utsatta-omraden/',
'md5': '2fbbe3ca14392a6b1b36941858d33a45',
@@ -28,8 +36,21 @@ class ExpressenIE(InfoExtractor):
}, {
'url': 'https://www.expressen.se/tv/kultur/kulturdebatt-med-expressens-karin-olsson/',
'only_matching': True,
+ }, {
+ 'url': 'https://www.expressen.se/tvspelare/video/tv/ditv/ekonomistudion/experterna-har-ar-fragorna-som-avgor-valet/?embed=true&external=true&autoplay=true&startVolume=0&partnerId=di',
+ 'only_matching': True,
+ }, {
+ 'url': 'https://www.expressen.se/videoplayer/embed/tv/ditv/ekonomistudion/experterna-har-ar-fragorna-som-avgor-valet/?embed=true&external=true&autoplay=true&startVolume=0&partnerId=di',
+ 'only_matching': True,
}]
+ @staticmethod
+ def _extract_urls(webpage):
+ return [
+ mobj.group('url') for mobj in re.finditer(
+ r'<iframe[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//(?:www\.)?expressen\.se/(?:tvspelare/video|videoplayer/embed)/tv/.+?)\1',
+ webpage)]
+
def _real_extract(self, url):
display_id = self._match_id(url)