GithubHelp home page GithubHelp logo

scx567888 / live-room-watcher Goto Github PK

View Code? Open in Web Editor NEW
245.0 245.0 69.0 4.05 MB

📺 可抓取直播间 弹幕, 礼物, 点赞, 原始流地址等

License: MIT License

Batchfile 0.09% PowerShell 4.20% Java 95.71%
chat douyin java kuaishou live-room tiktok webcast

live-room-watcher's People

Contributors

dependabot[bot] avatar scx567888 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

live-room-watcher's Issues

maven打包后,执行jar包报错

运行命令: java -jar live-room-watcher-0.0.4.jar
执行报错如下:
Exception in thread "main" java.lang.NoClassDefFoundError: io/netty/handler/codec/http/cookie/Cookie
at cool.scx.live_room_watcher.Main.main(Main.java:8)
Caused by: java.lang.ClassNotFoundException: io.netty.handler.codec.http.cookie.Cookie
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 1 more

sdk校验更新

我破解了signature js加密
传入值依然200 socket 连接失败 有空麻烦看看

有时候返回200的一个可能原因

在我的一台linux服务器上(这台服务器可能因为频繁访问抖音而受到了部分限制),发现当ws链接中的fetch_time太旧时,多次重试均返回200。当fetch_time的值改为System.currentTimeMillis()后,可以获取弹幕。另外,在一个新线程中启动弹幕获取,如果该线程不是守护线程,也会返回200。但在我Windows系统的机器上均未出现上述情况。

DouyinHack已经完全不可用

目前已完全无法连接到抖音直播间,提示信息为RENDER_DATA解析失败
人工检查发现RENDER_DATA确实已经消失了
可能抖音官方修改了机制或者藏起来了
作者大大能麻烦更新下吗

经常报警,能优化吗?

image io.netty.handler.codec.http.websocketx.CorruptedWebSocketFrameException: Max frame length of 65536 has been exceeded. at io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation(WebSocket08FrameDecoder.java:427) at io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.decode(WebSocket08FrameDecoder.java:288) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:1583)

直播礼物数据丢失

大部分时间数据都是正常的,但在开播几个小时之后,会离奇的出现礼物丢失的情况,各个抛异常的点都打日志了,结果还是一个报错的没有,大佬能帮忙看下这个问题吗?是抖音直播服务端确实会漏礼物还是我获取礼物的逻辑有问题。

private static int GetGiftCount(Gift gift) {
        DouYinGift gift1 = (DouYinGift) gift;
        GiftMessage giftMessage = gift1.giftMessage;

        if (giftMessage.getGroupId() == 0){

            if (giftMessage.getRepeatCount() == 0){
                LOGGER.error("giftMessage.getRepeatCount() == 0");
                LOGGER.error(giftMessage.getRepeatCount() + ":" + giftMessage.getGroupCount() + ":" + giftMessage.getTotalCount()
                        + ":" + giftMessage.getGroupId() + ":" + giftMessage.getGiftId());
            }
            return (int) giftMessage.getRepeatCount();
        }

        String uniqueId = gift.user().userId() + giftMessage.getGiftId() + giftMessage.getGroupId();

        giftGroupMap.putIfAbsent(uniqueId, new AtomicInteger(0));
        AtomicInteger atomicInteger = giftGroupMap.get(uniqueId);

        int currentCount;
        int count = (int) giftMessage.getRepeatCount();

        while (count > (currentCount = atomicInteger.get())){

            if (!atomicInteger.compareAndSet(currentCount,count)){
                continue;
            }

            return count - currentCount;
        }                   

        return 0;
    }

关于脱敏数据的问题

发现很多昵称都是***,返回的用户id也是空的,关于获取到真实数据大佬有什么思路吗

image

快手不行吗?

通过 KuaiShouHackLiveRoomWatcher 来抓快手的,会报错,空指针。 必须去申请APP_ID等,然后通过KuaiShouLiveRoomWatcher吗?

启动 DouYinHackLiveRoomWatcherTest 报错

Exception in thread "main" java.lang.NoSuchMethodError: 'void sun.misc.Unsafe.ensureClassInitialized(java.lang.Class)'
at com.oracle.truffle.api.library.LibraryFactory.ensureLibraryInitialized(LibraryFactory.java:384)
at com.oracle.truffle.api.library.LibraryFactory.getUncached(LibraryFactory.java:364)
at com.oracle.truffle.api.library.LibraryFactory.(LibraryFactory.java:210)
at com.oracle.truffle.api.interop.InteropLibraryGen.(InteropLibraryGen.java:178)
at com.oracle.truffle.api.interop.InteropLibraryGen.(InteropLibraryGen.java:169)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:529)
at java.base/java.lang.Class.forName(Class.java:508)
at com.oracle.truffle.api.library.LibraryFactory.loadGeneratedClass(LibraryFactory.java:791)
at com.oracle.truffle.api.library.LibraryFactory.resolveImpl(LibraryFactory.java:740)
at com.oracle.truffle.api.library.LibraryFactory.resolve(LibraryFactory.java:733)
at com.oracle.truffle.api.interop.InteropLibrary.(InteropLibrary.java:2941)
at com.oracle.truffle.polyglot.PolyglotValueDispatch.(PolyglotValueDispatch.java:170)
at com.oracle.truffle.polyglot.PolyglotImpl.initialize(PolyglotImpl.java:169)
at org.graalvm.polyglot.impl.AbstractPolyglotImpl.setConstructors(AbstractPolyglotImpl.java:288)
at org.graalvm.polyglot.Engine$1.loadAndValidateProviders(Engine.java:1107)
at org.graalvm.polyglot.Engine$1.run(Engine.java:1067)
at org.graalvm.polyglot.Engine$1.run(Engine.java:1061)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
at org.graalvm.polyglot.Engine.initEngineImpl(Engine.java:1061)
at org.graalvm.polyglot.Engine$ImplHolder.(Engine.java:143)
at org.graalvm.polyglot.Engine.getImpl(Engine.java:367)
at org.graalvm.polyglot.Engine$Builder.build(Engine.java:665)
at cool.scx.live_room_watcher.util.GraalvmJSHelper.(GraalvmJSHelper.java:8)
at cool.scx.live_room_watcher.impl.douyin_hack.DouYinHackHelper.parseBody(DouYinHackHelper.java:35)
at cool.scx.live_room_watcher.impl.douyin_hack.DouYinHackLiveRoomInfo.(DouYinHackLiveRoomInfo.java:18)
at cool.scx.live_room_watcher.impl.douyin_hack.DouYinHackLiveRoomWatcher.getLiveRoomInfo(DouYinHackLiveRoomWatcher.java:142)
at cool.scx.live_room_watcher.impl.douyin_hack.DouYinHackLiveRoomWatcher.startWatch(DouYinHackLiveRoomWatcher.java:153)
at cool.scx.live_room_watcher.test.DouYinHackLiveRoomWatcherTest.tes1(DouYinHackLiveRoomWatcherTest.java:43)
at cool.scx.live_room_watcher.test.DouYinHackLiveRoomWatcherTest.main(DouYinHackLiveRoomWatcherTest.java:15)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.