1
0
mirror of https://github.com/spaam/svtplay-dl.git synced 2024-11-27 21:54:17 +01:00

aftonbladet: support for the new site

This commit is contained in:
Johan Andersson 2014-02-05 23:15:19 +01:00
parent a7b114398b
commit 701ce4fcdc
2 changed files with 28 additions and 34 deletions

View File

@ -125,6 +125,12 @@ class Generic(object):
for i in sites:
if i.handles(url):
return url, i(url)
match = re.search(r'iframe src="(http://tv.aftonbladet[^"]*)"', data)
if match:
url = match.group(1)
for i in sites:
if i.handles(url):
return url, i(url)
return url, stream

View File

@ -3,50 +3,38 @@
from __future__ import absolute_import
import sys
import re
import xml.etree.ElementTree as ET
import json
from svtplay_dl.utils.urllib import urlparse, parse_qs
from svtplay_dl.service import Service
from svtplay_dl.utils import get_http_data
from svtplay_dl.log import log
from svtplay_dl.fetcher.rtmp import download_rtmp
from svtplay_dl.fetcher.http import download_http
from svtplay_dl.fetcher.hls import download_hls
class Aftonbladet(Service):
supported_domains = ['aftonbladet.se']
supported_domains = ['tv.aftonbladet.se']
def get(self, options):
parse = urlparse(self.url)
data = get_http_data(self.url)
match = re.search("abTvArticlePlayer-player-(.*)-[0-9]+-[0-9]+-clickOverlay", data)
match = re.search("data-aptomaId=\"([-0-9a-z]+)\"", data)
if not match:
log.error("Can't find video file")
log.error("Can't find video info")
sys.exit(2)
try:
start = parse_qs(parse[4])["start"][0]
except KeyError:
start = 0
url = "http://www.aftonbladet.se/resource/webbtv/article/%s/player" % match.group(1)
data = get_http_data(url)
xml = ET.XML(data)
url = xml.find("articleElement").find("mediaElement").find("baseUrl").text
path = xml.find("articleElement").find("mediaElement").find("media").attrib["url"]
live = xml.find("articleElement").find("mediaElement").find("isLive").text
options.other = "-y %s" % path
if start > 0:
options.other = "%s -A %s" % (options.other, str(start))
if live == "true":
videoId = match.group(1)
match = re.search("data-isLive=\"(\w+)\"", data)
if not match:
log.error("Can't find live info")
sys.exit(2)
if match.group(1) == "true":
options.live = True
if not options.live:
dataurl = "http://aftonbladet-play-metadata.cdn.drvideo.aptoma.no/video/%s.json" % videoId
data = get_http_data(dataurl)
data = json.loads(data)
videoId = data["videoId"]
if url == None:
log.error("Can't find any video on that page")
sys.exit(3)
if url[0:4] == "rtmp":
download_rtmp(options, url)
else:
filename = url + path
download_http(options, filename)
streamsurl = "http://aftonbladet-play-static-ext.cdn.drvideo.aptoma.no/actions/video/?id=%s&formats&callback=" % videoId
streams = json.loads(get_http_data(streamsurl))
hls = streams["formats"]["hls"]["level3"]["m3u8"][0]
playlist = "http://%s/%s/%s" % (hls["address"], hls["path"], hls["filename"])
baseurl = "http://%s/%s/" % (hls["address"], hls["path"])
download_hls(options, playlist, baseurl)