source: titan/mediathek/localhoster/vivo.py @ 39357

Last change on this file since 39357 was 39357, checked in by obi, 3 years ago

fix bs an vivo

File size: 1.2 KB
Line 
1
2import re
3import urllib
4from lib import jsunpack
5import sys
6from lib.net import Net
7import base64
8import json
9
10class VivoResolver(object):
11    name = "vivosx"
12    domains = ["vivo.sx"]
13    pattern = '(?://|\.)(vivo\.sx)/([0-9a-zA-Z]+)'
14
15    def __init__(self):
16        self.net = Net()
17        url = str(sys.argv[1])
18        host = self.get_host_and_id(url)[0]
19        media_id = self.get_host_and_id(url)[1]
20
21        return self.get_media_url(host, media_id)
22
23    def get_host_and_id(self, url):
24        r = re.search(self.pattern, url, re.I)
25        if r:
26            return r.groups()
27        else:
28            return False
29
30    def get_media_url(self, host, media_id):
31        web_url = self.get_url(host, media_id)
32
33        # get landing page
34        resp = self.net.http_GET(web_url, headers={'Referer': web_url})
35        html = resp.content
36
37        r = re.search(r'Core\.InitializeStream \(\'(.*?)\'\)', html)
38        if not r: print 'page structure changed'
39
40        b = base64.b64decode(r.group(1))
41        j = json.loads(b)
42
43        if len(j) == 0: print 'video not found'
44
45        print j[0]
46
47    def get_url(self, host, media_id):
48        return 'http://%s/%s' % (host, media_id)
49
50sys.stdout = VivoResolver()
Note: See TracBrowser for help on using the repository browser.