aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-08-17 00:21:30 +0700
committerSergey M․ <dstftw@gmail.com>2016-08-17 00:21:30 +0700
commitb35b0d73d853c52ca96ccf4488a4f8960a12e2ae (patch)
tree48fa59331fd200f394cc6a44d13aaeea095f4d94
parent6e7e4a6edf6c4ffd56d908ade7f0bfe2bff738b8 (diff)
[viafree] Add extractor (Closes #10358)
-rw-r--r--youtube_dl/extractor/extractors.py5
-rw-r--r--youtube_dl/extractor/tvplay.py53
2 files changed, 57 insertions, 1 deletions
diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py
index a5e0805b2..55c639158 100644
--- a/youtube_dl/extractor/extractors.py
+++ b/youtube_dl/extractor/extractors.py
@@ -898,7 +898,10 @@ from .tvp import (
TVPIE,
TVPSeriesIE,
)
-from .tvplay import TVPlayIE
+from .tvplay import (
+ TVPlayIE,
+ ViafreeIE,
+)
from .tweakers import TweakersIE
from .twentyfourvideo import TwentyFourVideoIE
from .twentymin import TwentyMinutenIE
diff --git a/youtube_dl/extractor/tvplay.py b/youtube_dl/extractor/tvplay.py
index d82bf67b4..c8ec2465c 100644
--- a/youtube_dl/extractor/tvplay.py
+++ b/youtube_dl/extractor/tvplay.py
@@ -311,3 +311,56 @@ class TVPlayIE(InfoExtractor):
'formats': formats,
'subtitles': subtitles,
}
+
+
+class ViafreeIE(InfoExtractor):
+ _VALID_URL = r'''(?x)
+ https?://
+ (?:www\.)?
+ viafree\.
+ (?:
+ (?:dk|no)/programmer|
+ se/program
+ )
+ /(?:[^/]+/)+(?P<id>[^/?#&]+)
+ '''
+ _TESTS = [{
+ 'url': 'http://www.viafree.se/program/livsstil/husraddarna/sasong-2/avsnitt-2',
+ 'info_dict': {
+ 'id': '395375',
+ 'ext': 'mp4',
+ 'title': 'Husräddarna S02E02',
+ 'description': 'md5:4db5c933e37db629b5a2f75dfb34829e',
+ 'series': 'Husräddarna',
+ 'season': 'Säsong 2',
+ 'season_number': 2,
+ 'duration': 2576,
+ 'timestamp': 1400596321,
+ 'upload_date': '20140520',
+ },
+ 'params': {
+ 'skip_download': True,
+ },
+ 'add_ie': [TVPlayIE.ie_key()],
+ }, {
+ 'url': 'http://www.viafree.no/programmer/underholdning/det-beste-vorspielet/sesong-2/episode-1',
+ 'only_matching': True,
+ }, {
+ 'url': 'http://www.viafree.dk/programmer/reality/paradise-hotel/saeson-7/episode-5',
+ 'only_matching': True,
+ }]
+
+ @classmethod
+ def suitable(cls, url):
+ return False if TVPlayIE.suitable(url) else super(ViafreeIE, cls).suitable(url)
+
+ def _real_extract(self, url):
+ video_id = self._match_id(url)
+
+ webpage = self._download_webpage(url, video_id)
+
+ video_id = self._search_regex(
+ r'currentVideo["\']\s*:\s*.+?["\']id["\']\s*:\s*["\'](?P<id>\d{6,})',
+ webpage, 'video id')
+
+ return self.url_result('mtg:%s' % video_id, TVPlayIE.ie_key())