吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16750|回复: 87
收起左侧

[原创工具] 虎牙直播源获取小工具

  [复制链接]
颖火虫 发表于 2021-3-4 17:35
本帖最后由 颖火虫 于 2021-3-21 12:42 编辑

很小的工具,采用python编写,我已经用pyinstaller打包成exe了,即便没有安装python环境也能运行,直接双击运行然后输入房间号就可以解析出所有的清晰度链接,直接复制链接到能播放链接的播放器中即可播放。

1.jpg

双击运行

1.jpg

输入虎牙房间号,这里我随便找了一个正在直播的15491341

1.jpg
可以看到已经解析出了链接,我选择2000P的,鼠标左键按住选中链接,按下回车复制,然后到播放器播放就可以了,这个窗口按两下回车或者直接X掉都可以。

蓝奏云地址:https://wwi.lanzouj.com/iQF4Tmhfdhe

【缺少api-ms-win-core-path-l1-1-0.dll
这个一般出现在win7的系统,因为我打包用的是python3.9,对win7的支持不是很好,解决办法就是去网络上下载对应系统位数的api-ms-win-core-path-l1-1-0.dll放置到跟程序一个目录下再运行

免费评分

参与人数 16吾爱币 +18 热心值 +12 收起 理由
红色沂蒙 + 1 热心回复!
qinggege + 1 用不了,都是提示未开播或直播间不存在
z29653 + 1 + 1 谢谢@Thanks!
sky05 + 1 鼓励转贴优秀软件安全工具和文档!
6moi + 1 + 1 谢谢@Thanks!
LFM + 1 我很赞同!
王路飞99 + 1 好用!!!真的好用!!!
歌者与猫 + 1 有用
v.v + 1 热心回复!
1394926200 + 1 我很赞同!
xbxbxbxb + 1 + 1 热心回复!
52cavid + 1 + 1 我很赞同!
qjk123 + 1 + 1 热心回复!
mwdr3000 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lbwnba + 1 + 1 谢谢@Thanks!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jiaofu999 发表于 2021-3-5 01:04
重命名为.xxx.py

# 获取虎牙直播的真实流媒体地址。
# 虎牙"一起看"频道的直播间可能会卡顿,尝试将返回地址 tx.hls.huya.com 中的 tx 改为 bd、migu-bd。

import requests
import re
import base64
import urllib.parse
import hashlib
import time


class HuYa:

    def __init__(self, rid):
        self.rid = rid

    def get_real_url(self):
        try:
            room_url = 'https://m.huya.com/' + str(self.rid)
            header = {
                'Content-Type': 'application/x-www-form-urlencoded',
                'User-Agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 '
                              '(KHTML, like Gecko) Chrome/75.0.3770.100 Mobile Safari/537.36 '
            }
            response = requests.get(url=room_url, headers=header).text
            livelineurl = re.findall(r'liveLineUrl = "([\s\S]*?)";', response)[0]
            if livelineurl:
                if 'replay' in livelineurl:
                    real_url = {
                        'replay': "https:" + livelineurl,
                    }
                else:
                    s_url = self.live(livelineurl)
                    b_url = self.live(livelineurl.replace('_2000', ''))
                    real_url = "https:" + s_url.replace('tx.hls.huya.com', 'bd.hls.huya.com')
            else:
                raise Exception('未开播或直播间不存在')
        except Exception as e:
            raise Exception('未开播或直播间不存在')
        return real_url

    @staticmethod
    def live(e):
        i, b = e.split('?')
        r = i.split('/')
        s = re.sub(r'.(flv|m3u8)', '', r[-1])
        c = b.split('&', 3)
        c = [i for i in c if i != '']
        n = {i.split('=')[0]: i.split('=')[1] for i in c}
        fm = urllib.parse.unquote(n['fm'])
        u = base64.b64decode(fm).decode('utf-8')
        p = u.split('_')[0]
        f = str(int(time.time() * 1e7))
        ll = n['wsTime']
        t = '0'
        h = '_'.join([p, t, s, f, ll])
        m = hashlib.md5(h.encode('utf-8')).hexdigest()
        y = c[-1]
        url = "{}?wsSecret={}&wsTime={}&u={}&seqid={}&{}".format(i, m, ll, t, f, y)
        return url


def get_real_url(rid):
    try:
        hy = HuYa(rid)
        return hy.get_real_url()
    except Exception as e:
        print('Exception:', e)
        return False


if __name__ == '__main__':
    rid = input('输入虎牙直播房间号:\n')
    print(get_real_url(rid))
huhuhhho 发表于 2021-4-22 10:38
memory947 发表于 2021-3-4 17:40
 楼主| 颖火虫 发表于 2021-3-4 17:44
memory947 发表于 2021-3-4 17:40
不出意外接口应该是gayhub的

好家伙猜的真对
skyadmin 发表于 2021-3-4 17:46
直播感觉没落了
yoyoma211 发表于 2021-3-4 17:51
这个正好用的上哈,感谢楼主分享
12692873 发表于 2021-3-4 17:52
还真希望 公布源码 嘻嘻
 楼主| 颖火虫 发表于 2021-3-4 17:54
skyadmin 发表于 2021-3-4 17:46
直播感觉没落了

还好吧,我每天无聊的时候就看直播
6699902a 发表于 2021-3-4 17:58
我先试试,谢谢了;
sototo 发表于 2021-3-4 17:59
不错!!感谢分享!
feiteng666 发表于 2021-3-4 18:10
我先试试感谢楼主
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-28 03:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表