斗鱼直播源解析工具Python版2020.08.12

斗鱼直播源解析工具是一款能获取斗鱼直播平台直播源地址工具,输入斗鱼直播房间号即可获取直播源视频地址

软件简介

软件名称 斗鱼直播源解析工具
软件版本 2020.08.12
软件类别 直播解析工具
适用平台 Windows
最近更新 2020.08.12

使用说明

运行斗鱼直播源解析工具.exe,输入需要解析直播源的直播间房间号,回车获取直播源,获取后程序会自动复制,直接粘贴到PotPlayer播放器播放即可观看直播

Python源码

  1. # coding=utf-8  
  2. # 获取斗鱼直播间的真实流媒体地址,默认最高画质。  
  3. import requests  
  4. import re  
  5. import execjs  
  6. import time  
  7. import hashlib  
  8. import pyperclip  
  9. import os  
  10.   
  11.   
  12. class DouYu:  
  13.   
  14.     def __init__(self, rid):  
  15.         # 房间号通常为1~7位纯数字,浏览器地址栏中看到的房间号不一定是真实rid.  
  16.         self.did = '10000000000000000000000000001501'  
  17.         self.t10 = str(int(time.time()))  
  18.         self.t13 = str(int((time.time() * 1000)))  
  19.   
  20.         self.s = requests.Session()  
  21.         self.res = self.s.get('https://m.douyu.com/' + str(rid)).text  
  22.         result = re.search(r'rid":(\d{1,7}),"vipId', self.res)  
  23.   
  24.         if result:  
  25.             self.rid = result.group(1)  
  26.         else:  
  27.             raise Exception('房间号错误')  
  28.   
  29.     @staticmethod  
  30.     def md5(data):  
  31.         return hashlib.md5(data.encode('utf-8')).hexdigest()  
  32.   
  33.     def get_pre(self):  
  34.         url = 'https://playweb.douyucdn.cn/lapi/live/hlsH5Preview/' + self.rid  
  35.         data = {  
  36.             'rid': self.rid,  
  37.             'did': self.did  
  38.         }  
  39.         auth = DouYu.md5(self.rid + self.t13)  
  40.         headers = {  
  41.             'rid': self.rid,  
  42.             'time': self.t13,  
  43.             'auth': auth  
  44.         }  
  45.         res = self.s.post(url, headers=headers, data=data).json()  
  46.         error = res['error']  
  47.         data = res['data']  
  48.         key = ''  
  49.         if data:  
  50.             rtmp_live = data['rtmp_live']  
  51.             key = re.search(r'(\d{1,7}[0-9a-zA-Z]+)_?\d{0,4}(/playlist|.m3u8)', rtmp_live).group(1)  
  52.         return error, key  
  53.   
  54.     def get_js(self):  
  55.         result = re.search(r'(function ub98484234.*)\s(var.*)', self.res).group()  
  56.         func_ub9 = re.sub(r'eval.*;}', 'strc;}', result)  
  57.         js = execjs.compile(func_ub9)  
  58.         res = js.call('ub98484234')  
  59.   
  60.         v = re.search(r'v=(\d+)', res).group(1)  
  61.         rb = DouYu.md5(self.rid + self.did + self.t10 + v)  
  62.   
  63.         func_sign = re.sub(r'return rt;}\);?', 'return rt;}', res)  
  64.         func_sign = func_sign.replace('(function (', 'function sign(')  
  65.         func_sign = func_sign.replace('CryptoJS.MD5(cb).toString()', '"' + rb + '"')  
  66.   
  67.         js = execjs.compile(func_sign)  
  68.         params = js.call('sign', self.rid, self.did, self.t10)  
  69.         params += '&ver=219032101&rid={}&rate=-1'.format(self.rid)  
  70.   
  71.         url = 'https://m.douyu.com/api/room/ratestream'  
  72.         res = self.s.post(url, params=params).text  
  73.         key = re.search(r'(\d{1,7}[0-9a-zA-Z]+)_?\d{0,4}(.m3u8|/playlist)', res).group(1)  
  74.   
  75.         return key  
  76.   
  77.     def get_real_url(self):  
  78.         error, key = self.get_pre()  
  79.         if error == 0:  
  80.             pass  
  81.         elif error == 102:  
  82.             raise Exception('房间不存在')  
  83.         elif error == 104:  
  84.             raise Exception('房间未开播')  
  85.         else:  
  86.             key = self.get_js()  
  87.   
  88.         return "http://tx2play1.douyucdn.cn/live/{}.flv?uuid=".format(key)  
  89.   
  90.   
  91. if __name__ == '__main__':  
  92.     r = input('输入斗鱼直播间号:')  
  93.     s = DouYu(r)  
  94.     print("\n直播源地址:",s.get_real_url())  
  95.     pyperclip.copycopy(s.get_real_url())  
  96.     print("\n直播地址已复制,请在PotPlayer中粘贴链接即可!\n")  
  97.     os.system('pause')  

附件下载

下载权限

查看
  • 免费下载
    评论并刷新后下载
    登录后下载

  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余

给TA买糖
共{{data.count}}人
人已赞赏
软件工具

m3u8视频下载HmDX很萌下载器v5.5.1

2020-8-11 18:18:46

软件工具

VMProtect脱壳工具NoVPM v1.0.5

2020-8-18 9:23:33

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
搜索