写XBMC视频插件的时候,希望能播放腾讯视频,网上找了找,能发现的方法只能解析低码率 的地址,自己扒了一下,顺利完成,贴出来给有需要的同学

def qq(self):
    html = _http(self.url)
    vid = re.compile(r'vid:"([^"]+)"').search(html).group(1)
    murl = 'http://vv.video.qq.com/'
    vinfo = _http('%sgetinfo?otype=json&vids=%s' % (murl, vid))
    infoj = json.loads(vinfo.split('=')[1][:-1])
    qtyps = OrderedDict((
        ('1080P', 'fhd'), ('超清', 'shd'), ('高清', 'hd'), ('标清', 'sd')))
    vtyps = {v['name']:v['id'] for v in infoj['fl']['fi']}
    qtypid = vtyps['sd']
    sels = [k for k,v in qtyps.iteritems() if v in vtyps]
    sel = dialog.select('清晰度', sels)
    surls = []
    urlpre = infoj['vl']['vi'][0]['ul']['ui'][-1]['url']
    if sel is not -1:
        qtypid = vtyps[qtyps[sels[sel]]]
    for i in range(1, int(infoj['vl']['vi'][0]['cl']['fc'])):
        fn = '%s.p%s.%s.mp4' % (vid, qtypid%10000, str(i))
        sinfo = _http(
            '{0}getkey?format={1}&filename={2}&vid={3}&otype=json'.format(
                murl, qtypid, fn, vid))
        skey = json.loads(sinfo.split('=')[1][:-1])['key']
        surl = urllib2.urlopen(
            '%s%s?vkey=%s' % (urlpre, fn, skey), timeout=30).geturl()
        if not surl: break
        surls.append(surl)


blog comments powered by Disqus