bilibili直播地址获取

本文介绍了一个简单的Python脚本,该脚本能够从B站抓取指定直播间流地址并使用本地播放器播放。此外,还讨论了如何通过修改代码来实现录播功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一点尝试,获取纯净的播放地址,并使用播放器播放,代码如下

#----------------------import-------------------------
import requests,os
import easygui as g
import time
from threading import Thread

#----------------------常数区---------------------------
res = requests.session()

dic={}
#----cookie保存在cookie.txt文件-----
cookie=open('cookie.txt','r').read()

h={
        "cookie": cookie
    }

#----------------------函数区------------------------------

#-------获取地址---------
def getm3u8(cid):
    url = 'https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo?room_id='+str(cid)+'&no_playurl=0&mask=1&qn=0&platform=web&protocol=0,1&format=0,2&codec=0,1'
    s = res.get(url,headers=h).json()['data']['playurl_info']['playurl']['stream'][0]['format'][0]['codec'][0]
    #stream【0】获取的是flv地址,需配合extra使用,strea【1】获取的是m3u8地址,无需配合extra,但不是所有但房间都有m3u8地址
    return s['url_info'][0]['host']+s['base_url']+s['url_info'][0]['extra']

#------本地播放-----------
def play(s):
    ss = '/Applications/IINA.app/Contents/MacOS/IINA "'#此为mac播放器IIna,如使用ffplay,此行换为 ss='ffplay -v warning "'
    cmd = ss + s+'"'
    os.system(cmd)




#------获取直播列表-------
def getlist():
    page=1
    sat=1
    ts=str(int(time.time()*1000))
    while sat!=0:
        url='https://api.live.bilibili.com/xlive/web-ucenter/v1/xfetter/GetWebList?page='+str(page)+'&page_size=10&_='+ts
        s=res.get(url,headers=h).json()['data']['list']
        sat=len(s)
        for i in s:
            rid=i['roomid']
            name=i['uname']
            
            dic.update({name:rid})
        page+=1

#-------简易ui-------------
def mai():
    cho = g.choicebox('', '', choices=dic.keys())
    if cho!=None:
        url = getm3u8(dic[cho])

        Thread(target=play,args=(url,)).start()
        mai()




#--------------------主函数---------------------------
if __name__ == '__main__':
    getlist()
    mai()


一点个人的尝试,实际使用价值不是很大,目前能想到的用处就是地址获取后也可以用软件进行录播,也欢迎大家一起交流

在这里插入图片描述

这是老魏的公众号,会发布一些爬虫案例和经验分享,感兴趣的小伙伴可以关注下哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值