Sjj1024 / douyin-live

Python学习项目,仅供学习参考,严禁一切不合规使用
655 stars 176 forks source link

现在加密了,能破解吗?wss要验权 #38

Closed HoneyPig closed 3 months ago

HoneyPig commented 3 months ago

ERROR - Handshake status 200 OK -+-+- {'server': 'Tengine', 'content-length': '0', 'connection': 'keep-alive', 'date': 'Thu, 20 Jun 2024 12:51:51 GMT', 'handshake-msg': 'DEVICE_BLOCKED', 'handshake-status': '415', 'server-timing': 'inner; dur=46', 'x-tt-trace-host': '01605246675ef5ae8314390f72629b9b2b8b79eeca22cfb5f231de438406c260b1e45cc0c786eee910c4a85052ace9d2ab48f5224a242e9c77738ffa79b8bf537b284a64c7212573b7728875ceb8c70dd0ca8382ef41da83453f32a400c050db33', 'x-tt-trace-tag': 'id=03;cdn-cache=miss;type=dyn', 'x-tt-trace-id': '00-2406202051514F99D06C44530EDBB8B4-6D1C9D52717B806A-00', 'x-tt-logid': '202406202051514F99D06C44530EDBB8B4', 'via': 'vcache13.cn4100[163,0]', 'timing-allow-origin': '*', 'eagleid': 'dcb9a4a117188879115898380e'} -+-+- b'' - goodbye

liulang100 commented 3 months ago

我也出现类似的问题了,现在抓不到数据,和你一样,怎么解决???今晚刚刚出现

HoneyPig commented 3 months ago

image要解密。。。问作者

liulang100 commented 3 months ago

哥 我V是 lsccero 求教!!! 没看懂,这个是什么 密钥吗?我新下载的ZIP也不能抓数据呀。

liulang100 commented 3 months ago

image要解密。。。问作者

哥我没懂,你能加我V吗 lsccero 这是什么意思,你现在能抓取数据了吗???

HoneyPig commented 3 months ago

我也没看懂,在研究,今晚不行的,要么自己研究,要么等作者吧

liulang100 commented 3 months ago

我也没看懂,在研究,今晚不行的,要么自己研究,要么等作者吧

还有什么其他能抓抖音直播礼物的接口吗??? GitHub上只有这一个。

HoneyPig commented 3 months ago

你可以直接把wss链接复制出来,还能用,但是用代码的话,得破解

liulang100 commented 3 months ago

你可以直接把wss链接复制出来,还能用,但是用代码的话,得破解

哥 你加我V :lsccero 教下我 有红包,你现在能抓了?

HoneyPig commented 3 months ago

作者更新了啊,你按作者那样,把连接写死,只能抓一个直播间

liulang100 commented 3 months ago

作者更新了啊,你按作者那样,把连接写死,只能抓一个直播间

我刚刚 download 最新的jzip了, 还是会goodbye , 按理说 下载最新的 应该就行了呀,需要我手动配置的 除了直播间链接还有什么,还需要手动改什么密钥吗??? 听你的意思好像一个直播间对应一个密钥 自己复制粘贴??? 求告知!!!! image

HoneyPig commented 3 months ago

对的,你需要去网页找到这个wss的链接,才能用 image

ozbao commented 3 months ago

解密应该走不通了吧,能不能直接自动获取wss的链接

liulang100 commented 3 months ago

对的,你需要去网页找到这个wss的链接,才能用 image

您用的什么浏览器,我用Google 抓出来和你不一样哈,我的链接短的,没有这么多东西,然后就算抓到和你一样的,添加在哪个关键字前面,我看后面作者一长串 有个ROOMID 还有别的关键字,我不清楚粘贴在哪个字段前。是F12 NEWWORK ws吗 我的和你不一样

si262001 commented 3 months ago

直接替换dy_live.py的292行的socket_url , 就是贴图中的那个链接,全部替换,不要管什么关键字了。

liulang100 commented 3 months ago

直接替换dy_live.py的292行的socket_url , 就是贴图中的那个链接,全部替换,不要管什么关键字了。

我替换了还是goodbye, 我用的chrome ,F12 ws,链接很短,没你的长,你用的什么浏览器,你抓一下这个试试https://live.douyin.com/858035476541

liulang100 commented 3 months ago

直接替换dy_live.py的292行的socket_url , 就是贴图中的那个链接,全部替换,不要管什么关键字了。

我替换了还是goodbye, 我用的chrome ,F12 ws,链接很短,没你的长,你用的什么浏览器,我抓出来是这个 wss://frontier-im.douyin.com/ws/v2?aid=6383&fpid=9&device_id=7316792826104563240&access_key=7a728618be8b36596573403c0e51811f&device_platform=douyin_pc

si262001 commented 3 months ago
截屏2024-06-21 00 02 54

注意看name是v2/?app_name的那个链接 chrome浏览器

liulang100 commented 3 months ago

截屏2024-06-21 00 02 54 注意看name是v2/?app_name的那个链接 chrome浏览器

那现在每次开播,这个wss都是变化的,都得重新获取填上。。。。。这也太慢了,这个自动获取做得到吗???

HoneyPig commented 3 months ago

做的到就不需要一直研究了,得破解signature,需要js大神

liulang100 commented 3 months ago

做的到就不需要一直研究了,得破解signature,需要js大神

Selenium + python能干出来不?

si262001 commented 3 months ago

做的到就不需要一直研究了,得破解signature,需要js大神

Selenium + python能干出来不?

可以 selenium 通过CDP 监听 WebSocket 通信

HoneyPig commented 3 months ago

image 其实就这段代码,没有大神可以破译吗,研究一晚上了,嵌套太多了

azber commented 3 months ago

https://www.cnblogs.com/steed4ever/p/18207749 这篇文章好像有用

si262001 commented 3 months ago

做的到就不需要一直研究了,得破解signature,需要js大神

Selenium + python能干出来不?

可以 selenium 通过CDP 监听 WebSocket 通信

xxx

Sjj1024 commented 3 months ago

正在搞了.........稍安勿躁

cnwarden commented 3 months ago

也是一样,等待破解 DEVICE_BLOCKED

liulang100 commented 3 months ago

做的到就不需要一直研究了,得破解signature,需要js大神

Selenium + python能干出来不?

可以 selenium 通过CDP 监听 WebSocket 通信

xxx

哥 这个代码能发我吗 这个算是折中方案吧,我去部署一下。

liulang100 commented 3 months ago

做的到就不需要一直研究了,得破解signature,需要js大神

Selenium + python能干出来不?

可以 selenium 通过CDP 监听 WebSocket 通信

xxx

哥 这个代码能发我吗 这个算是折中方案吧,我去部署一下。

显示提交被删除了 老哥你上传了??

JiaLeDe commented 3 months ago

做的到就不需要一直研究了,得破解signature,需要js大神

Selenium + python能干出来不?

可以 selenium 通过CDP 监听 WebSocket 通信

xxx

哥 这个代码能发我吗 这个算是折中方案吧,我去部署一下。

显示提交被删除了 老哥你上传了??

被删了

liulang100 commented 3 months ago

做的到就不需要一直研究了,得破解signature,需要js大神

Selenium + python能干出来不?

可以 selenium 通过CDP 监听 WebSocket 通信

xxx

哥 这个代码能发我吗 这个算是折中方案吧,我去部署一下。

显示提交被删除了 老哥你上传了??

被删了

哥 你加我V :lsccero 请你喝两杯奶茶 求赐脚本源码!!!!

liulang100 commented 3 months ago

做的到就不需要一直研究了,得破解signature,需要js大神

Selenium + python能干出来不?

可以 selenium 通过CDP 监听 WebSocket 通信

xxx

哥 这个代码能发我吗 这个算是折中方案吧,我去部署一下。

显示提交被删除了 老哥你上传了??

被删了

我现在抓出来了,wss链接,还有个问题 这里面礼物会重复播报,有什么过滤的解决办法吗???

HoneyPig commented 3 months ago

礼物消息里面,每个礼物有连击和没连击的消息,所以会重复吧,作者代理里面,连击9下会1+2+3+4+5+6+7+8+9这么计算,其实就只有9个小心心,你取最后消息里面有reaptend的来计算就好了,这样不会重复算combo的连击

junjunya2020 commented 3 months ago

现在有签名了 还是报错 wss://webcast5-ws-web-lf.douyin.com/webcast/im/push/v2/?app_name=douyin_web&version_code=180800&webcast_sdk_version=1.0.14-beta.0&update_version_code=1.0.14-beta.0&compress=gzip&device_platform=web&cookie_enabled=true&screen_width=1512&screen_height=982&browser_language=zh-CN&browser_platform=MacIntel&browser_name=Mozilla&browser_version=5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/126.0.0.0%20Safari/537.36&browser_online=true&tz_name=Asia/Shanghai&internal_ext=internal_src:dim|wss_push_room_id:7382870874787367718|wss_push_did:7347516590731134502|first_req_ms:1718958540257|fetch_time:1718958540387|seq:1|wss_info:0-1718958540387-0-0|wrds_v:7382870712479910356&host=https://live.douyin.com&aid=6383&live_id=1&did_rule=3&endpoint=live_pc&support_wrds=1&user_unique_id=7347516590731134502&im_path=/webcast/im/fetch/&identity=audience&need_persist_msg_count=15&insert_task_id=&live_reason=&room_id=7382870874787367718&heartbeatDuration=0&signature=6gK6lxl48wh+Mxdc

2024-06-21 17:23:12,193 - ERROR - Handshake status 200 OK -+-+- {'server': 'volc-dcdn', 'content-length': '0', 'connection': 'keep-alive', 'date': 'Fri, 21 Jun 2024 09:23:11 GMT', 'handshake-msg': 'DEVICE_BLOCKED', 'handshake-status': '415', 'server-timing': 'inner; dur=35, cdn-cache;desc=MISS, origin;dur=92, edge;dur=27, cdn-cache;desc=MISS', 'x-tt-trace-host': '0101cdcd08f0a075176e8b5b0f68cd801f026ba67213d3c0320386f4072f62f0466d048a030ae32bc13f85213f711bc284988c6a2077a360b5d3778d2500c139f66f24d3c536ec24d746907baae6194f5467f388a4f096ba3e7c11cbe8af6088f7f5cdadeb310f5cf57d3602ce9f4490a85fcc719a49fb0ea9e912c02e92923501', 'x-tt-trace-tag': 'id=5', 'x-tt-trace-id': '00-3a1b6332030108dfcfdc6fa54b2618ef-3a1b6332030108df-01', 'x-tt-logid': '20240621172311D3BCA30B266A3CD87770', 'via': 'n157-149-138.whmp.Creative,n173-229-055.stcm03.Creative', 'x-request-ip': '120.239.57.207', 'x-dsa-trace-id': '171896179124b36e0bebeda66f611742a6e2cc1523', 'x-dsa-origin-status': '200'} -+-+- b'' - goodbye

liulang100 commented 3 months ago

现在有签名了 还是报错 wss://webcast5-ws-web-lf.douyin.com/webcast/im/push/v2/?app_name=douyin_web&version_code=180800&webcast_sdk_version=1.0.14-beta.0&update_version_code=1.0.14-beta.0&compress=gzip&device_platform=web&cookie_enabled=true&screen_width=1512&screen_height=982&browser_language=zh-CN&browser_platform=MacIntel&browser_name=Mozilla&browser_version=5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/126.0.0.0%20Safari/537.36&browser_online=true&tz_name=Asia/Shanghai&internal_ext=internal_src:dim|wss_push_room_id:7382870874787367718|wss_push_did:7347516590731134502|first_req_ms:1718958540257|fetch_time:1718958540387|seq:1|wss_info:0-1718958540387-0-0|wrds_v:7382870712479910356&host=https://live.douyin.com&aid=6383&live_id=1&did_rule=3&endpoint=live_pc&support_wrds=1&user_unique_id=7347516590731134502&im_path=/webcast/im/fetch/&identity=audience&need_persist_msg_count=15&insert_task_id=&live_reason=&room_id=7382870874787367718&heartbeatDuration=0&signature=6gK6lxl48wh+Mxdc

2024-06-21 17:23:12,193 - ERROR - Handshake status 200 OK -+-+- {'server': 'volc-dcdn', 'content-length': '0', 'connection': 'keep-alive', 'date': 'Fri, 21 Jun 2024 09:23:11 GMT', 'handshake-msg': 'DEVICE_BLOCKED', 'handshake-status': '415', 'server-timing': 'inner; dur=35, cdn-cache;desc=MISS, origin;dur=92, edge;dur=27, cdn-cache;desc=MISS', 'x-tt-trace-host': '0101cdcd08f0a075176e8b5b0f68cd801f026ba67213d3c0320386f4072f62f0466d048a030ae32bc13f85213f711bc284988c6a2077a360b5d3778d2500c139f66f24d3c536ec24d746907baae6194f5467f388a4f096ba3e7c11cbe8af6088f7f5cdadeb310f5cf57d3602ce9f4490a85fcc719a49fb0ea9e912c02e92923501', 'x-tt-trace-tag': 'id=5', 'x-tt-trace-id': '00-3a1b6332030108dfcfdc6fa54b2618ef-3a1b6332030108df-01', 'x-tt-logid': '20240621172311D3BCA30B266A3CD87770', 'via': 'n157-149-138.whmp.Creative,n173-229-055.stcm03.Creative', 'x-request-ip': '120.239.57.207', 'x-dsa-trace-id': '171896179124b36e0bebeda66f611742a6e2cc1523', 'x-dsa-origin-status': '200'} -+-+- b'' - goodbye

我刚刚测试了,可以用,你每次开播wss都得重新获取,它每次开播就变了。你再试试? 我刚才成功获取点赞和礼物了。

junjunya2020 commented 3 months ago

现在有签名了 还是报错 wss://webcast5-ws-web-lf.douyin.com/webcast/im/push/v2/?app_name=douyin_web&version_code=180800&webcast_sdk_version=1.0.14-beta.0&update_version_code=1.0.14-beta.0&compress=gzip&device_platform=web&cookie_enabled=true&screen_width=1512&screen_height=982&browser_language=zh-CN&browser_platform=MacIntel&browser_name=Mozilla&browser_version=5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/126.0.0.0%20Safari/537.36&browser_online=true&tz_name=Asia/Shanghai&internal_ext=internal_src:dim|wss_push_room_id:7382870874787367718|wss_push_did:7347516590731134502|first_req_ms:1718958540257|fetch_time:1718958540387|seq:1|wss_info:0-1718958540387-0-0|wrds_v:7382870712479910356&host=https://live.douyin.com&aid=6383&live_id=1&did_rule=3&endpoint=live_pc&support_wrds=1&user_unique_id=7347516590731134502&im_path=/webcast/im/fetch/&identity=audience&need_persist_msg_count=15&insert_task_id=&live_reason=&room_id=7382870874787367718&heartbeatDuration=0&signature=6gK6lxl48wh+Mxdc 2024-06-21 17:23:12,193 - ERROR - Handshake status 200 OK -+-+- {'server': 'volc-dcdn', 'content-length': '0', 'connection': 'keep-alive', 'date': 'Fri, 21 Jun 2024 09:23:11 GMT', 'handshake-msg': 'DEVICE_BLOCKED', 'handshake-status': '415', 'server-timing': 'inner; dur=35, cdn-cache;desc=MISS, origin;dur=92, edge;dur=27, cdn-cache;desc=MISS', 'x-tt-trace-host': '0101cdcd08f0a075176e8b5b0f68cd801f026ba67213d3c0320386f4072f62f0466d048a030ae32bc13f85213f711bc284988c6a2077a360b5d3778d2500c139f66f24d3c536ec24d746907baae6194f5467f388a4f096ba3e7c11cbe8af6088f7f5cdadeb310f5cf57d3602ce9f4490a85fcc719a49fb0ea9e912c02e92923501', 'x-tt-trace-tag': 'id=5', 'x-tt-trace-id': '00-3a1b6332030108dfcfdc6fa54b2618ef-3a1b6332030108df-01', 'x-tt-logid': '20240621172311D3BCA30B266A3CD87770', 'via': 'n157-149-138.whmp.Creative,n173-229-055.stcm03.Creative', 'x-request-ip': '120.239.57.207', 'x-dsa-trace-id': '171896179124b36e0bebeda66f611742a6e2cc1523', 'x-dsa-origin-status': '200'} -+-+- b'' - goodbye

我刚刚测试了,可以用,你每次开播wss都得重新获取,它每次开播就变了。你再试试? 我刚才成功获取点赞和礼物了。 可以加下你微信吗Yjun1113043123 还是不行 我这里 我是直接用网上别人的热门直播间都获取不了 主播账号信息: {'id_str': '103247358766', 'sec_uid': 'MS4wLjABAAAATTnUv9c_EMyjqyLqZAEd6rK13paYaWlG9rsPcyQ2moo', 'nickname': '小A本体', 'avatar_thumb': {'url_list': ['https://p11.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_c6c3976bbc3b8162517df7a3e444cdc0.jpeg?from=3067671334', 'https://p3.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_c6c3976bbc3b8162517df7a3e444cdc0.jpeg?from=3067671334', 'https://p26.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_c6c3976bbc3b8162517df7a3e444cdc0.jpeg?from=3067671334']}, 'follow_info': {'follow_status': 0, 'follow_status_str': '0'}, 'subscribe': {'is_member': False, 'level': 0, 'identity_type': 0, 'buy_type': 0, 'open': 1}, 'open_id_str': ''} 直播流m3u8链接地址是: https://pull-f3.douyincdn.com/third/stream-691818228526088875_or4.m3u8?auth_key=1719567005-0-0-f8cbac383cd48b136183d0efbdf6b272 直播流FLV地址是: https://pull-f3.douyincdn.com/third/stream-691818228526088875_ld.flv?auth_key=1719567005-0-0-479f7597d99b795dc85acaec2a4e350b 间隔10秒更新一下排行 wss://webcast5-ws-web-lf.douyin.com/webcast/im/push/v2/?app_name=douyin_web&version_code=180800&webcast_sdk_version=1.0.14-beta.0&update_version_code=1.0.14-beta.0&compress=gzip&device_platform=web&cookie_enabled=true&screen_width=1512&screen_height=982&browser_language=zh-CN&browser_platform=MacIntel&browser_name=Mozilla&browser_version=5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/126.0.0.0%20Safari/537.36&browser_online=true&tz_name=Asia/Shanghai&internal_ext=internal_src:dim|wss_push_room_id:7382878425462901504|wss_push_did:7347516590731134502|first_req_ms:1718958540257|fetch_time:1718958540387|seq:1|wss_info:0-1718958540387-0-0|wrds_v:7382870712479910356&host=https://live.douyin.com&aid=6383&live_id=1&did_rule=3&endpoint=live_pc&support_wrds=1&user_unique_id=7347516590731134502&im_path=/webcast/im/fetch/&identity=audience&need_persist_msg_count=15&insert_task_id=&live_reason=&room_id=7382878425462901504&heartbeatDuration=0&signature=6gK6lxl48wh+Mxdc 推送打赏排名出错:Expecting value: line 1 column 1 (char 0) 2024-06-21 18:00:06,112 - ERROR - [onError] [webSocket Error事件] [房间Id:7382878425462901504] 2024-06-21 18:00:06,112 - ERROR - Handshake status 200 OK -+-+- {'server': 'volc-dcdn', 'content-length': '0', 'connection': 'keep-alive', 'date': 'Fri, 21 Jun 2024 10:00:05 GMT', 'handshake-msg': 'DEVICE_BLOCKED', 'handshake-status': '415', 'server-timing': 'inner; dur=36, cdn-cache;desc=MISS, origin;dur=153, edge;dur=0', 'x-tt-trace-host': '015e6b3bb60f5f25c734b0bff0c82f9354ab5d81c66c085ba14fd45339e7cca5650056a5f822da24d9c4aae78b5a7f89455d52ae6d34f62c5514e1c4c66b867f0c6edca5e0fa06d4b039a07011caef3294f1b8fbdd68800e090f8144d15e13ffb2067304ef00be2a206ac802ea4e9c5bd6', 'x-tt-trace-tag': 'id=5', 'x-tt-trace-id': '00-3a3d2b3403010833f88119939f7c18ef-3a3d2b3403010833-01', 'x-tt-logid': '20240621180005716242FCCB6EA1D9236F', 'via': 'n157-024-226.szmpct.Creative', 'x-request-ip': '219.128.249.195', 'x-dsa-trace-id': '171896400532861ef6193cf8e5baf3e1844793ebd4', 'x-dsa-origin-status': '200'} -+-+- b'' - goodbye

进程已结束,退出代码为 15

HoneyPig commented 3 months ago

wss://webcast5-ws-web-lf.douyin.com/webcast/im/push/v2/?app_name=douyin_web&version_code=180800&webcast_sdk_version=1.0.14-beta.0&update_version_code=1.0.14-beta.0&compress=gzip&device_platform=web&cookie_enabled=true&screen_width=1512&screen_height=982&browser_language=zh-CN&browser_platform=MacIntel&browser_name=Mozilla&browser_version=5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/126.0.0.0%20Safari/537.36&browser_online=true&tz_name=Asia/Shanghai&internal_ext=internal_src:dim|wss_push_room_id:7382870874787367718|wss_push_did:7347516590731134502|first_req_ms:1718958540257|fetch_time:1718958540387|seq:1|wss_info:0-1718958540387-0-0|wrds_v:7382870712479910356&host=https://live.douyin.com&aid=6383&live_id=1&did_rule=3&endpoint=live_pc&support_wrds=1&user_unique_id=7347516590731134502&im_path=/webcast/im/fetch/&identity=audience&need_persist_msg_count=15&insert_task_id=&live_reason=&room_id=7382870874787367718&heartbeatDuration=0&signature=6gK6lxl48wh+Mxdc

根据room_id生产的签名,room_id每一场直播都是不同的,所以一次签名只能用一场直播

wangqingshaui commented 3 months ago

我看见代码已经更新,我尝试换一个直播间地址链接还是失败。

D:\GoPath\src\douyin-live>python main.py 记得修改config.py里面的直播地址啊,不然获取不到数据的! 获取线上数据失败:如果你不用将直播数据推送到你们的服务器上,可以忽略此提示 start http senders http sender 2024-06-21 19:34:57,184 - DEBUG - Starting new HTTPS connection (1): live.douyin.com:443 2024-06-21 19:34:57,785 - DEBUG - https://live.douyin.com:443 "GET /646454278948 HTTP/1.1" 200 None 2024-06-21 19:34:58,112 - INFO - 房间标题: 2024从心出发 2024-06-21 19:34:58,113 - INFO - 主播账号信息: {'id_str': '3250600708947220', 'sec_uid': 'MS4wLjABAAAAYEtPgHW5Gj95nkipioMCASqoftEcbuCcujHPHanYb82zxOEw6CEUrRES7oVYbK_M', 'nickname': '与辉同行', 'avatar_thumb': {'url_list': ['https://p3.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_fa67e937c8033253f9c9252f5453916b.jpeg?from=3067671334', 'https://p11.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_fa67e937c8033253f9c9252f5453916b.jpeg?from=3067671334', 'https://p26.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_fa67e937c8033253f9c9252f5453916b.jpeg?from=3067671334']}, 'follow_info': {'follow_status': 0, 'follow_status_str': '0'}, 'subscribe': {'is_member': False, 'level': 0, 'identity_type': 0, 'buy_type': 0, 'open': 0}, 'open_id_str': ''} 主播账号信息: {'id_str': '3250600708947220', 'sec_uid': 'MS4wLjABAAAAYEtPgHW5Gj95nkipioMCASqoftEcbuCcujHPHanYb82zxOEw6CEUrRES7oVYbK_M', 'nickname': '与辉同行', 'avatar_thumb': {'url_list': ['https://p3.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_fa67e937c8033253f9c9252f5453916b.jpeg?from=3067671334', 'https://p11.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_fa67e937c8033253f9c9252f5453916b.jpeg?from=3067671334', 'https://p26.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_fa67e937c8033253f9c9252f5453916b.jpeg?from=3067671334']}, 'follow_info': {'follow_status': 0, 'follow_status_str': '0'}, 'subscribe': {'is_member': False, 'level': 0, 'identity_type': 0, 'buy_type': 0, 'open': 0}, 'open_id_str': ''} 2024-06-21 19:34:58,114 - INFO - 直播流m3u8链接地址是: https://pull-hls-spe-l1.douyinliving.com/fantasy/stream-691818189864043190_hd/playlist.m3u8?_neptune_token=MIGmBAw5J_rvnfhTQNfkQQUEgYO7LGCFrqiN7SP82Gn_mTCKlWNmDJ1egp237FszTeR8JdMoEvqyBsQc2YDKGMnHUDGq0_wyyfkRWOyqX5WwrGyIDJiKg5hG05aXmXXqOO07ah8Zp_WKKYjK9X8BmOVov8svg4g6RfOWUi9wRnGZ-YaMUbU9oh9lrt48QVWBPSC2wegAiQQQe8NEfMZpMlHjJR6vZ5Z6-w&keeptime=00015180&wsSecret=63e097af2e93795a2bf09d9b6737eefb&wsTime=6675658c 直播流m3u8链接地址是: https://pull-hls-spe-l1.douyinliving.com/fantasy/stream-691818189864043190_hd/playlist.m3u8?_neptune_token=MIGmBAw5J_rvnfhTQNfkQQUEgYO7LGCFrqiN7SP82Gn_mTCKlWNmDJ1egp237FszTeR8JdMoEvqyBsQc2YDKGMnHUDGq0_wyyfkRWOyqX5WwrGyIDJiKg5hG05aXmXXqOO07ah8Zp_WKKYjK9X8BmOVov8svg4g6RfOWUi9wRnGZ-YaMUbU9oh9lrt48QVWBPSC2wegAiQQQe8NEfMZpMlHjJR6vZ5Z6-w&keeptime=00015180&wsSecret=63e097af2e93795a2bf09d9b6737eefb&wsTime=6675658c 2024-06-21 19:34:58,114 - INFO - 直播流FLV地址是: https://pull-flv-spe-l1.douyinliving.com/fantasy/stream-691818189864043190_sd.flv?_neptune_token=MIGmBAw5J_rvnfhTQNfkQQUEgYO7LGCFrqiN7SP82Gn_mTCKlWNmDJ1egp237FszTeR8JdMoEvqyBsQc2YDKGMnHUDGq0_wyyfkRWOyqX5WwrGyIDJiKg5hG05aXmXXqOO07ah8Zp_WKKYjK9X8BmOVov8svg4g6RfOWUi9wRnGZ-YaMUbU9oh9lrt48QVWBPSC2wegAiQQQe8NEfMZpMlHjJR6vZ5Z6-w\u0026keeptime=00015180\u0026wsSecret=0a51209c76d9f38e614b23c4c85d9e29\u0026wsTime=6675658c 直播流FLV地址是: https://pull-flv-spe-l1.douyinliving.com/fantasy/stream-691818189864043190_sd.flv?_neptune_token=MIGmBAw5J_rvnfhTQNfkQQUEgYO7LGCFrqiN7SP82Gn_mTCKlWNmDJ1egp237FszTeR8JdMoEvqyBsQc2YDKGMnHUDGq0_wyyfkRWOyqX5WwrGyIDJiKg5hG05aXmXXqOO07ah8Zp_WKKYjK9X8BmOVov8svg4g6RfOWUi9wRnGZ-YaMUbU9oh9lrt48QVWBPSC2wegAiQQQe8NEfMZpMlHjJR6vZ5Z6-w\u0026keeptime=00015180\u0026wsSecret=0a51209c76d9f38e614b23c4c85d9e29\u0026wsTime=6675658c 间隔10秒更新一下排行 2024-06-21 19:34:58,116 - DEBUG - Starting new HTTPS connection (1): live.douyin.com:443 2024-06-21 19:34:58,422 - DEBUG - https://live.douyin.com:443 "GET /webcast/ranklist/audience/?aid=6383&app_name=douyin_web&live_id=1&device_platform=web&language=zh-CN&cookie_enabled=true&screen_width=2560&screen_height=1440&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=117.0.0.0&webcast_sdk_version=2450&room_id=7382823501717261108&rank_type=30 HTTP/1.1" 200 0 推送打赏排名出错:Expecting value: line 1 column 1 (char 0) 2024-06-21 19:34:59,380 - ERROR - [onError] [webSocket Error事件] [房间Id:7382823501717261108] 2024-06-21 19:34:59,381 - ERROR - Handshake status 200 OK -+-+- {'server': 'volc-dcdn', 'content-length': '0', 'connection': 'keep-alive', 'date': 'Fri, 21 Jun 2024 11:35:42 GMT', 'handshake-msg': 'DEVICE_BLOCKED', 'handshake-status': '415', 'server-timing': 'inner; dur=75, cdn-cache;desc=MISS, origin;dur=1168, edge;dur=0', 'x-tt-trace-host': '0144ba290ab64fa3de2a8ea46f3adf01cf15f5bc867eef79bb828fd6a70e50401e20f7343139242c91c2ed1ccc6359595cf6f1895a68ccade380996c79e36a68132e1ec2856f760801b6aceb44c3ac5b0d92ee566161ba92833fee4e88e2e708e513cac05fb0e22eae29f99c46d45e877b', 'x-tt-trace-tag': 'id=5', 'x-tt-trace-id': '00-3a94b06a03010c55752374f01a4918ef-3a94b06a03010c55-01', 'x-tt-logid': '20240621193542DEA5CBBC782B01DB1554', 'via': 'n173-162-044.qdcu01.Creative', 'x-request-ip': '125.47.111.151', 'x-dsa-trace-id': '1718969741b84d8ab4abd9f3f32e6e6d3ba3a5f740', 'x-dsa-origin-status': '200'} -+-+- b'' - goodbye 2024-06-21 19:34:59,384 - INFO - 直播抓取时长:2.2024261951446533,点赞数量总计:0, 评论数量总计: 0, 礼物数量总计:0, 礼物价值总计: 0 2024-06-21 19:34:59,385 - INFO - [onClose] [webSocket Close事件] [房间Id:7382823501717261108]

Sjj1024 commented 3 months ago

新的直播加密signature字段只能在浏览器环境中生成,所以python版本暂时维护不了,因为即便是使用execjs也模拟不出来浏览器环境。正在搞新的一个带界面化的直播监控项目。如果还想临时使用,可以使用浏览器F12检查获取直播间websocket连接,然后替换wssServerStart函数下面的socket_url地址,就可以运行了。至于signature解密的js代码放在assets/test.html文件中,可以自行研究。

wizim404321 commented 3 months ago

新的直播加密signature字段只能在浏览器环境中生成,所以python版本暂时维护不了,因为即便是使用execjs也模拟不出来浏览器环境。正在搞新的一个带界面化的直播监控项目。如果还想临时使用,可以使用浏览器F12检查获取直播间websocket连接,然后替换wssServerStart函数下面的socket_url地址,就可以运行了。至于signature解密的js代码放在assets/test.html文件中,可以自行研究。

可以用 没错

stefaniework commented 3 months ago

新的直播加密signature字段只能在浏览器环境中生成,所以python版本暂时维护不了,因为即便是使用execjs也模拟不出来浏览器环境。正在搞新的一个带界面化的直播监控项目。如果还想临时使用,可以使用浏览器F12检查获取直播间websocket连接,然后替换wssServerStart函数下面的socket_url地址,就可以运行了。至于signature解密的js代码放在assets/test.html文件中,可以自行研究。

坐等大佬新项目,目前还可以用,明天试试扎气球,🙂

tmige commented 3 months ago

新的直播加密signature字段只能在浏览器环境中生成,所以python版本暂时维护不了,因为即便是使用execjs也模拟不出来浏览器环境。正在搞新的一个带界面化的直播监控项目。如果还想临时使用,可以使用浏览器F12检查获取直播间websocket连接,然后替换wssServerStart函数下面的socket_url地址,就可以运行了。至于signature解密的js代码放在assets/test.html文件中,可以自行研究。

我的办法: 搞个按钮,直接跳出浏览器。把signature显示出来。

def get_Signature(self):
        url = self.ui.lineEdit.text()  #直播间地址
        pattern = r'(\w+):\/\/([\.a-zA-Z0-9_-]+)'
        match = re.match(pattern, url)
        if match:
            #print(match.group())
            live_falg = match.group()
        else:
            live_falg = None
        if live_falg == 'https://live.douyin.com':
            h = {
                'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
                'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36',
                'cookie': '__ac_nonce=0638733a400869171be51',
            }
            res = requests.get(url=url, headers=h)
            data = res.cookies.get_dict()
            res = res.text
            res = re.search(r'roomId\\":\\"(\d+)\\"', res)
            res = res.group(1)
            liveRoomId = res
            #print(liveRoomId,'file://' + os.path.realpath('tools/tools.html'))
            with open('tools/roomid.js', mode='w', encoding='utf-8') as file:
                file.write('var roomId = "'+liveRoomId+'";')
            webbrowser.open('file://' + os.path.realpath('tools/tools.html'))
tmige commented 3 months ago

微信图片_20240622164041

RandomEnch commented 3 months ago

可以通过execjs+Node.js实现本地生成,使用代理找调用的参数,手动补全浏览器环境即可,需要把webmssdk中的envcode改为1,并且把byted_acrawler.frontierSign挂载到window下,注释掉setTimeout函数可解决生成后仍未退出的问题

async def generate_signature(live_id, room_id, user_id):
    with open('./env.js', 'r', encoding='utf-8') as f:
        env = f.read()
    with open('./vFun.js', 'r', encoding='utf-8') as f:
        vFun = f.read()
    with open('./webmssdk.es5.js', 'r', encoding='utf-8') as f:
        webmssdk = f.read()

    env += f"\ndocument.referrer = 'https://live.douyin.com/{live_id}';\n"
    js_code = env + webmssdk + "\n" + vFun
    ctx = execjs.compile(js_code)

    result = ctx.call("creatSignature", room_id, user_id)
    if result:
        return dict(result)['X-Bogus']
    return None
// 仅展示需要补齐的环境,具体参数自行去浏览器寻找
window = global;
Request = {};
Headers = {};
document = {}
navigator = {}
window.innerHeight = 910;
window.innerWidth = 1920;
window.outerHeight = 28;
window.outerWidth = 160;
window.screenX = 0;
window.screenY = 9;
window.pageYOffset = 0;
window.pageXOffset = 0;
window.screen = {}
window.onwheelx = {"_Ax": "0X21"}
window.navigator = navigator
window.navigator.cookieEnabled = true;
window.navigator.platform = "Win32";
window.navigator.language = "zh-CN";
window.navigator.appCodeName = "Mozilla";
window.navigator.appVersion = "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36";
window.navigator.onLine = true;
window.addEventListener = function() {};
window.sessionStorage = {}
window.localStorage = {}

document.hidden = true;
document.webkitHidden = true;
document.cookie = ''
navigator.userAgent = "";
...
!function(_0xe67213, _0x19937e) {
    var _0x40472c = w_0x25f3;
    'object' == typeof exports && _0x40472c(0x384) != typeof module ? _0x19937e(window.byted_acrawler = {}) : _0x40472c(0x1ee) == typeof define && define['amd'] ? define([_0x40472c(0x1b8)], _0x19937e) : _0x19937e((_0xe67213 = _0x40472c(0x384) != typeof globalThis ? globalThis : _0xe67213 || self)[_0x40472c(0x1f5)] = {});
....
var _0x5eb39b = -0x55 + 0x8a3 + -0x80f & _0x6caf[_0x5a9e67(0x326)];
_0x1ffaa7[0x18e0 * 0x1 + 0xd8d + -0x266d] = _0x4fa808 << -0x1 * 0x1117 + -0x144f + 0x256c | _0x5eb39b,
_0x1ffaa7[-0x177d + 0x3 * 0xb39 + -0xa2d] = 1 >> -0x163b + 0x2c3 + 0x1380 & 0x15b3 + -0x1efd + 0xa49 * 0x1,
_0x1ffaa7[-0x5e3 + -0x1 * 0x1535 + 0x1b1a * 0x1] = 0x64a + -0xc * 0xa3 + 0x259 & 1,
_0x1ffaa7[0x81 * 0x11 + 0xa49 * 0x1 + -0x12d7] = _0xe06992[_0x5a9e67(0x382)];
....
zhaoxinyuan996 commented 3 months ago

好像有一个问题,单单构造singature好像是不够的,直接复制wss链接之后,wss消息体也只会出现心跳和一些房间信息,进间和弹幕消息体都没有。。

Jarvi168 commented 3 months ago

正在搞了.........稍安勿躁

https://github.com/biliup/biliup/commit/b19131548dd50713482fd721986806ebdcd5782f 作者可以参考这个项目做修复

HoneyPig commented 3 months ago

已完美解决,感谢楼主提供的方案

使用 pyppeteer 模拟浏览器 pip install pyppeteer

image

image

然后服务器运行就好了,哈哈哈 image

停了2天都服务终于可以用了 image

image

HoneyPig commented 3 months ago

新的直播加密signature字段只能在浏览器环境中生成,所以python版本暂时维护不了,因为即便是使用execjs也模拟不出来浏览器环境。正在搞新的一个带界面化的直播监控项目。如果还想临时使用,可以使用浏览器F12检查获取直播间websocket连接,然后替换wssServerStart函数下面的socket_url地址,就可以运行了。至于signature解密的js代码放在assets/test.html文件中,可以自行研究。

作者,我可以了,你看看

zlpu commented 3 months ago

已完美解决,感谢楼主提供的方案

使用 pyppeteer 模拟浏览器 pip install pyppeteer

image

image

然后服务器运行就好了,哈哈哈 image

停了2天都服务终于可以用了 image

image

大佬,请共享你的代码

zlpu commented 3 months ago

另外好像这个项目的方法也可以 https://github.com/biliup/biliup/blob/master/biliup/Danmaku/douyin.py