B站直播心心助手

我的我的 都是我的

< Feedback on B站直播心心助手

Review: Good - script works

§
Posted:
Edited:
直播间提示自动挂小心心以后,CPU就会迅速上升至100%,然后没多久网页就会卡死,随后报错out of memory,我用的是新版的Microsoft edge,还请麻烦大佬解决一下这个问题。

已修复
这作者连掐断直播流都不会,属实不行
提示一下:直播是通过window.fetch进行资源获取的
十六夜Author
§
Posted:
已修复
十六夜Author
§
Posted:
抱歉 我菜是菜了点 我改天研究一下 确实在sealoong大神的代码里看到过 没注意 不过我也是有掐流的 只不过方法比较奇葩
§
Posted:

老哥如果你会写的话能否给个代码@就可以疯狂输出,不过看到你上一条没脑子的评论我就觉得你应该不会写😅
我前些天也在研究这玩意,直播间内所有请求都能拦截唯独直播流拦截不了。。。
我觉得可能是因为获取直播流的GET请求发起的时间很早,油猴脚本还没载入它就请求成功了
十六夜目前是用flash播放的方法掐流的吧,虽然也可以但考虑到flash迟早要被淘汰,从现在开始研究别的方法也挺好。

§
Posted:
Edited:

首先说一下, @就可以疯狂输出 所提及的是正确的
提供一下我的代码, 我在服务器挂机月费老爷经验时参照sealong的代码写的

const func=()=>{
    try {
        // 拦截直播流
        unsafeWindow.window.fetch = () => new Promise(() => {
            throw new Error();
        });
    } catch (err) {};
const go= async ()=>{
    for(let i=0;i<100;i++)
    {
        setTimeout(()=>func(),i*10);
    }
}

方法就是循环拦截100次, 虽然激进但是确实可行, 100次即便是在我的垃圾服务器上, CPU占用依然很低, 而且这属于初始化的范畴, 为了后续的高性能, 牺牲一下初始化时的性能是可以接受的 十六夜大佬可以考虑改进一下我的代码 我退b站也有一段时间了, 不太了解心心的具体事项, 但是我在想非要打开一个直播间吗, 如果只是模拟发送心跳是否可行?因为拦截了直播流之后, 这个房间除了房间号以外, 和其余任何房间几乎等价. 欢迎一起讨论

§
Posted:
Edited:

@Smoke-N-Mirrors 这样会存在一个问题,那就是有一个用来加密心跳参数的wasm文件也是通过fetch获取,所以最好这么写,确保无关请求不会被拦截

const originFetch = fetch;
unsafeWindow.fetch = (...arg) => {
    console.log('fetch arg', ...arg);
    if (arg[0].indexOf('bilivideo.com') > -1) {
        //console.log('拦截直播流')
        return new Promise(() => {
            throw new Error();
        });
    } else {
        //console.log('通过')
        return originFetch(...arg);
    }
}

(之前写的有点问题改一下) 小心心的心跳参数加密相当恐怖,光是计算其中一个参数的js代码就要写大概800行。除此之外还有其它验证,有些时候明明请求有错误也返回一个成功的response,测试起来挺花时间的。我研究了很久也没成功。

§
Posted:
Edited:

只要主页面拦截了,用layer在iframe打开的窗口中的直播流也能拦截。

@LEXBURNER
你的恶意言论已经为您举报了
§
Posted:
心跳确实蛮麻烦的...本来是直接拦截b站自己的,结果b站一改就呵呵了,还直接影响原本正常挂心。不过有大佬出算法了,就是搭服务麻烦点。接着就看b站还会不会再改啥的了...
十六夜Author
§
Posted:
卧槽 都是大神 小弟学习了
§
Posted:

拦截直播流其实不是什么麻烦事,直接匹配一下URL就能确定这个请求是不是直播流。 我的一个单独脚本的实现 https://github.com/SeaLoong/TampermonkeyScripts/blob/master/%E7%A7%BB%E9%99%A4Bilibili%E7%9B%B4%E6%92%AD%E6%92%AD%E6%94%BE%E5%99%A8.user.js 为了方便使用(断开已建立的连接等)而不是全局拦截直播流,我做了一些特殊的功能,实际上拦截的部分只有很少。

十六夜Author
§
Posted:
卧槽是大神!

Post reply

Sign in to post a reply.