解决MAC系统观看虎牙直播,发热卡顿问题。(已失效,虎牙更新了h5,卡顿问题似乎已经解决)

最近发现VLC会出现没有声音的问题,推荐使用iina亲测有效。 具体设置方法如下:[iina设置说明](https://jingyan.baidu.com/article/cb5d6105ad9445005d2fe059.html)

这里利用了VLC及相似的软件可以播放网络视频的功能,下面以VLC为例。

  1. 首先我们需要下载VLC或者其他可以播放在线视频的软件
  2. 安装完成后
    File->Open NetWork 输入虎牙直播间的url 打开即可
  3. 那么如何获得特定直播间的url
    通过Firefox或者Chrome等浏览器查看直播间的源码
    url = sFlvUrl + ‘/’ + sStreamName + ‘.’ + sFlvUrlSuffix + ‘?’ + sFlvAntiCode 这四部分的内容可以在源码中通过command+f搜索得到。将这个url输入到VLC就可以看到喜爱的直播了。
    下面是效果图
  4. 如何快速获取这个url呢,在这里我提供了一个python脚本。
import requests
import json
import os

def loadRecommend():
    # 判断文件是否存在不存在则创建
    if os.path.isfile("recommend.txt"):
        # 如果存在
        # 加载推荐列表
        str1 = "猜你想看\n"
        with open("recommend.txt", 'r') as f:
            str1 += f.read()
        return str1
    else :
        # 如果不存在
        print("欢迎使用,系统已帮您创建推荐文件!\n")
        with open("recommend.txt", "a") as f:
            print("已创建recommend.txt")
        return ""



def getHTML(url):
    # 获取网站源码

     try:
         r = requests.get(url,timeout=30)
         r.raise_for_status()
         r.encoding = 'utf-8'
         return r.text
     except:
         return ""
def getVLCURL(html):
    # 根据源码,获取URL

    vlcURL = ''

    # 获取stream
    streamBeg = html.find("\"stream\":")
    streamEnd = html.find("};", streamBeg)
    stream = html[streamBeg + 10  : streamEnd - 8]
    
    try:
        stream_json = json.loads(stream)
        # data是个列表
        data = stream_json['data']

        data_json = data[0]
        gameStreamInfoList = data_json['gameStreamInfoList']

        # gameStreamInfoList同样是个列表

        # 需要sFlvUrl  sStreamName  sFlvUrlSuffix sFlvAntiCode
        gameStreamInfoList_json = gameStreamInfoList[0]

        sFlvUrl = gameStreamInfoList_json['sFlvUrl']
        # print(sFlvUrl)
        # print(type(sFlvUrl))
        sStreamName = gameStreamInfoList_json['sStreamName']
        sFlvUrlSuffix = gameStreamInfoList_json['sFlvUrlSuffix']
        sFlvAntiCode = gameStreamInfoList_json['sFlvAntiCode']

        sFlvAntiCode = sFlvAntiCode.replace('amp;','')
        vlcURL = sFlvUrl + '/' + sStreamName + '.' + sFlvUrlSuffix + '?' + sFlvAntiCode
        # 将字符串中的下划线替换为空格
        vlcURL = vlcURL.replace('_', ' ')
    except json.decoder.JSONDecodeError:
        print("房间号错误!!")
    except TypeError:
        print("房间未开播!!")
    # BL 蓝光
    # HD 高清
    # Fluency 流畅
    # &ratio=2500  &ratio=500
    BL_vlcURL = vlcURL
    HD_vlcURL = vlcURL + "&ratio=2500"
    F_vlcURL = vlcURL + "&ratio=500"
    URLList = [BL_vlcURL, HD_vlcURL, F_vlcURL]
    # 依次返回蓝光,高清,流畅
    return URLList
    
def updateRecommend(html, roomID):
    # 获取直播关键字
    keyWordsBeg = html.find(")
    keyWordsEnd = html.find("\"/>", keyWordsBeg)
    keyWords = html[keyWordsBeg + 31 : keyWordsEnd]
    # print(keyWords)

    # 判断是否有重复,重复则不再在写入
    str1 = loadRecommend()
    if str1.find(roomID) != -1:
        print("推荐列表已更新")
    else:
        with open("recommend.txt", "a") as f:
            content = "ID:" + roomID + "——————" + keyWords + "\n"
            f.write(content)
        print("推荐列表已更新")
    




    



if __name__ == "__main__":
    # 加载推荐房间
    recommend = loadRecommend()
    print(recommend)

    url = "https://www.huya.com/"
    roomID = input("请输入房间名称: ")
    url += roomID
    # 获取网页源码
    html = getHTML(url)

    # 获取播放链接
    URLList = getVLCURL(html)

    # 更新推荐列表
    updateRecommend(html, roomID)

    # 打印播放链接
    print("蓝光画质:" + URLList[0])
    print("\n")
    print("高清画质:" + URLList[1])
    print("\n")
    print("流畅画质:" + URLList[2])
    print("\n")












通过在控制台输入房间地址栏中对应的地址如20119169,程序就会在控制台打印可供VLC使用的url,直接复制粘贴就好了。
解决MAC系统观看虎牙直播,发热卡顿问题。(已失效,虎牙更新了h5,卡顿问题似乎已经解决)_第1张图片
5. 下面贴出我的github地址,可以在这里找到脚本的最新更新。
文章写于2020-4-5
github仓库地址

你可能感兴趣的:(解决MAC系统观看虎牙直播,发热卡顿问题。(已失效,虎牙更新了h5,卡顿问题似乎已经解决))