破站今天又改版了 pc 端的 api 真的难受,拿手机重新抓了一遍包,修了修然后正好无聊
想了想似乎懒癌发作想弄什么什么都没弄,既然正好吃完饭有点时间就拿手机蛋疼的写了这么个脚本
因为礼物信息需要 socket 监控弹幕,普通 fpm 运行下的 php 是肯定搞不定的,这个脚本是直接抓取我直播间的弹幕查看是否有礼物需要领取
输入自己的 cookie 直接监控 php脚本就可以了,想多快就自己决定了,不过一定不要太...长了
直接丢代码
<?php /* Name:简易 B 站领小电视 Design:KIENG */ $cookie = '输入你的帐号 cookie'; function curl($url, $cookie = null, $refer = null) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_REFERER, $refer); curl_setopt($ch, CURLOPT_COOKIE, $cookie); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 BIDUBrowser/8.3 Safari/537.36"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 6); $re = curl_exec($ch); curl_close($ch); return $re; } $msglist = json_decode(curl('http://api.live.bilibili.com/AppRoom/msg?room_id=2026835'),true); $msg = $msglist['data']['room'][9]['text']; $time = $msglist['data']['room'][9]['timeline']; $id = md5($msg.$time); $log = file_get_content('log.db'); if(strpos($log,$id)){ exit('没有需要抢的'); } $id); if(strpos($msg,'小电视')){ file_put_content('log.db',$log.<a href="https://blog.kieng.cn/tag/php" title="查看更多关于 PHP 的文章" target="_blank">PHP</a>_EOL. $roomid = str_replace('小电视 X1','',$msg); $raffleId = json_decode(curl('http://api.live.bilibili.com/gift/v2/smalltv/check?roomid='.$roomid),true);//5.6 以下<a href="https://blog.kieng.cn/tag/php" title="查看更多关于 PHP 的文章" target="_blank">PHP</a>版本问题麻烦一点咯 foreach($raffleId['data'] as $data){ $raffle = $data['raffleId']; echo curl('http://api.live.bilibili.com/gift/v2/smalltv/join?roomid='.$roomid.'&raffleId='.$raffle,$cookie,'http://live.bilibili.com/'.$roomid); } }
可能会有错误~有错误请及时指正哦