破站今天又改版了 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);
}
}
可能会有错误~有错误请及时指正哦







