From 82dabc602fe7a6d04ab617f166d613a08c2225b1 Mon Sep 17 00:00:00 2001 From: Johan Andersson Date: Thu, 10 Sep 2015 23:40:48 +0200 Subject: [PATCH] support for solidtango fixes #268 --- lib/svtplay_dl/__init__.py | 2 ++ lib/svtplay_dl/service/solidtango.py | 32 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 lib/svtplay_dl/service/solidtango.py diff --git a/lib/svtplay_dl/__init__.py b/lib/svtplay_dl/__init__.py index 412e9ef..c9572a4 100644 --- a/lib/svtplay_dl/__init__.py +++ b/lib/svtplay_dl/__init__.py @@ -37,6 +37,7 @@ from svtplay_dl.service.qbrick import Qbrick from svtplay_dl.service.radioplay import Radioplay from svtplay_dl.service.ruv import Ruv from svtplay_dl.service.raw import Raw +from svtplay_dl.service.solidtango import Solidtango from svtplay_dl.service.sr import Sr from svtplay_dl.service.svtplay import Svtplay from svtplay_dl.service.tv4play import Tv4play @@ -69,6 +70,7 @@ sites = [ Picsearch, Ruv, Radioplay, + Solidtango, Sr, Svtplay, OppetArkiv, diff --git a/lib/svtplay_dl/service/solidtango.py b/lib/svtplay_dl/service/solidtango.py new file mode 100644 index 0000000..4d79f61 --- /dev/null +++ b/lib/svtplay_dl/service/solidtango.py @@ -0,0 +1,32 @@ +# ex:ts=4:sw=4:sts=4:et +# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- +from __future__ import absolute_import +import re +import copy + +from svtplay_dl.service import Service +from svtplay_dl.fetcher.hls import HLS, hlsparse +from svtplay_dl.error import ServiceError + +class Solidtango(Service): + supported_domains = ['skkplay.se', 'skkplay.solidtango.com'] + + def get(self, options): + data = self.get_urldata() + + if self.exclude(options): + yield ServiceError("Excluding video") + return + + match = re.search(r'(http[^<]+)', data) + if match: + data = self.http.request("get", match.group(1)).text + + match = re.search('html5_source: "([^"]+)"', data) + if match: + streams = hlsparse(match.group(1), self.http.request("get", match.group(1)).text) + for n in list(streams.keys()): + yield HLS(copy.copy(options), streams[n], n) + else: + yield ServiceError("Can't find video info. if there is a video on the page. its a bug.") + return \ No newline at end of file