Closed DanNianya closed 1 month ago
俺也一样
抖音更新的相关API了,如果现在想录制抖音的话可以参考一下这里(需要编程基础):https://github.com/xxxxuanran/biliup/blob/00255219af4e67a24a5772ffd8cb277cfdebda23/biliup/Danmaku/douyin.py#L32-L57
抖音更新的相关API了,如果现在想录制抖音的话可以参考一下这里(需要编程基础):https://github.com/xxxxuanran/biliup/blob/00255219af4e67a24a5772ffd8cb277cfdebda23/biliup/Danmaku/douyin.py#L32-L57
大腿看不懂(๑•́ ₃ •̀๑)エー,什么时候更新呀,请你喝星巴克
啊原来是这样,我以为是我出了问题,从版本3更新到版本4又更新到版本5,哈哈哈哈原来是抖音更新的
啊原来是这样,我以为是我出了问题,从版本3更新到版本4又更新到版本5,哈哈哈哈原来是抖音更新的
贴一下我的报错。。。 raise WSServerHandshakeError( aiohttp.client_exceptions.WSServerHandshakeError: 200, message='Invalid response status', url=URL('wss://webcast3-ws-web-lf.douyin.com/webcast/im/push/v2/?room_id=-------------&compress=gzip&signature=00000000&aid=6383&device_platform=web&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=92.0.4515.159')
抖音更新的相关API了,如果现在想录制抖音的话可以参考一下这里(需要编程基础):https://github.com/xxxxuanran/biliup/blob/00255219af4e67a24a5772ffd8cb277cfdebda23/biliup/Danmaku/douyin.py#L32-L57
@SmallPeaches @xxxxuanran
请问这个不是直接把代码复制替换 到 biliup/biliup/Danmaku/douyin.py 就可以了么??? 如果不是简单的文本复制粘贴,那这里80%录屏兄弟要阵亡了。。。 另外V5版本 2024.5.30 还是提示弹幕下载程序异常退出,正在重试。。。(原来V4包都删了,重新下载的5.30解压缩还是提示,虽然实际上录制虎牙它是有弹幕的,但就是一直提示...)
抖音更新的相关API了,如果现在想录制抖音的话可以参考一下这里(需要编程基础):https://github.com/xxxxuanran/biliup/blob/00255219af4e67a24a5772ffd8cb277cfdebda23/biliup/Danmaku/douyin.py#L32-L57
求大佬有时间更新一下下,本人有点编程基础也看不懂啊,对代码库不熟,不是那么简单就能改的。
@prettyby @cms666 @LeonaWu @DanNianya
根据大佬指的路弄了一个临时解决方案
https://github.com/SecPhases/DanmakuRender/commit/fd6d85afede5845274ad699bbcdf5db98e68977e
需要在DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里填入你的cookies
需要cookie参数__ac_nonce
、__ac_signature
、sessionid
@prettyby @cms666 @LeonaWu @DanNianya 根据大佬指的路弄了一个临时解决方案 SecPhases@fd6d85a 需要在DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里填入你的cookies 需要cookie参数
__ac_nonce
、__ac_signature
、sessionid
感谢SmallPeaches大佬的项目、biliup和stream-rec的弹幕获取方案和SecPhases大佬的PR!
有两个小问题
@prettyby @cms666 @LeonaWu @DanNianya 根据大佬指的路弄了一个临时解决方案 SecPhases@fd6d85a 需要在DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里填入你的cookies 需要cookie参数
__ac_nonce
、__ac_signature
、sessionid
给大佬递茶.jpg,已经推送更新解决(请使用版本5)。
@prettyby @cms666 @LeonaWu @DanNianya 根据大佬指的路弄了一个临时解决方案 SecPhases@fd6d85a 需要在DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里填入你的cookies 需要cookie参数
__ac_nonce
、__ac_signature
、sessionid
给大佬递茶.jpg,已经推送更新解决(请使用版本5)。
请问我们该如何更新呢 ?
@prettyby @cms666 @LeonaWu @DanNianya 根据大佬指的路弄了一个临时解决方案 SecPhases@fd6d85a 需要在DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里填入你的cookies 需要cookie参数
__ac_nonce
、__ac_signature
、sessionid
给大佬递茶.jpg,已经推送更新解决(请使用版本5)。
已经更新至版本5,但是没改douyin.py还是有类似的“弹幕下载线程异常退出,正在重试...”报错,这次改完是必须要填写抖音cookie吗?怎么填写cookie有说明么之前没录制过b站的没填写过cookie,谢谢大佬了
更新至V5后仍无法正常获取弹幕,ass文件中弹幕部分为空 DMR-20240624.log
@prettyby @cms666 @LeonaWu @DanNianya 根据大佬指的路弄了一个临时解决方案 SecPhases@fd6d85a 需要在DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里填入你的cookies 需要cookie参数
__ac_nonce
、__ac_signature
、sessionid
给大佬递茶.jpg,已经推送更新解决(请使用版本5)。
更新到V5还是获取弹幕超时,正在重试
@prettyby @cms666 @LeonaWu @DanNianya 根据大佬指的路弄了一个临时解决方案 SecPhases@fd6d85a 需要在DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里填入你的cookies 需要cookie参数
__ac_nonce
、__ac_signature
、sessionid
给大佬递茶.jpg,已经推送更新解决(请使用版本5)。
更新到V5还是获取弹幕超时,正在重试
切换网络环境试试呢
@prettyby @cms666 @LeonaWu @DanNianya 根据大佬指的路弄了一个临时解决方案 SecPhases@fd6d85a 需要在DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里填入你的cookies 需要cookie参数
__ac_nonce
、__ac_signature
、sessionid
给大佬递茶.jpg,已经推送更新解决(请使用版本5)。
更新到V5还是获取弹幕超时,正在重试
切换网络环境试试呢
不行 弹幕文件好像是空的
我试了几个直播间都没问题,也许是你js环境没有安装好?
我试了几个直播间都没问题,也许是你js环境没有安装好?
请问如何更新 ?最新的包不就是5.30的么 也没新上传啊
git clone -b v5 https://github.com/SmallPeaches/DanmakuRender.git
From: prettyby @.> Sent: Monday, June 24, 2024 7:28:04 PM To: SmallPeaches/DanmakuRender @.> Cc: sora3 @.>; Comment @.> Subject: Re: [SmallPeaches/DanmakuRender] 抖音弹幕获取不到 (Issue #258)
我试了几个直播间都没问题,也许是你js环境没有安装好?
请问如何更新 ?最新的包不就是5.30的么 也没新上传啊
― Reply to this email directly, view it on GitHubhttps://github.com/SmallPeaches/DanmakuRender/issues/258#issuecomment-2186349509, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASKM34GXTU6W6RANXRZWC7DZI77EJAVCNFSM6AAAAABJUD3TCCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBWGM2DSNJQHE. You are receiving this because you commented.Message ID: @.***>
我试了几个直播间都没问题,也许是你js环境没有安装好?
经测试,部分ip未登录状态无法获取到弹幕,在按照@SecPhases 修改后的方法传入登录态cookies后,可以正常获取
@laomu61996 我基于大佬更新的v5做了一个可以在配置文件里填入cookies的版本(非必填) https://github.com/SecPhases/DanmakuRender/commit/a8ea65049ce35e5d9f4a1dccfa4a7b83f98db00d 但是我没有无法获取弹幕的环境,是否能用可能还需要您自行测试一下了
题外话,debug的时候看到开始录制的时候,headers一共被请求了四次,我猜测第一次应该是DMR\LiveAPI\douyin.py的Douyin类获取直播间信息,第二次是DMR\LiveAPI\danmaku\douyin__init__.py的Douyin类开头定义headers,第三次才是get_ws_info方法传入的部分获取的,第四次应该是获取get_signature时请求的吧? 除了第三次,其他请求headers时我都没有改使用自行填写的cookies,前两次应该没关系,但是第四次不知道会不会影响获取到弹幕
||题题外话,这两天忙着准备期末考,可能没多少时间弄这些了😢,有问题没回的话就是似了(x)||
@laomu61996 我基于大佬更新的v5做了一个可以在配置文件里填入cookies的版本(非必填) SecPhases@a8ea650 但是我没有无法获取弹幕的环境,是否能用可能还需要您自行测试一下了
题外话,debug的时候看到开始录制的时候,headers一共被请求了四次,我猜测第一次应该是DMR\LiveAPI\douyin.py的Douyin类获取直播间信息,第二次是DMR\LiveAPI\danmaku\douyininit.py的Douyin类开头定义headers,第三次才是get_ws_info方法传入的部分获取的,第四次应该是获取get_signature时请求的吧? 除了第三次,其他请求headers时我都没有改使用自行填写的cookies,前两次应该没关系,但是第四次不知道会不会影响获取到弹幕
||题题外话,这两天忙着准备期末考,可能没多少时间弄这些了😢,有问题没回的话就是似了(x)||
刚刚测试了一下https://github.com/SecPhases/DanmakuRender/commit/a8ea65049ce35e5d9f4a1dccfa4a7b83f98db00d,在global.yml和DMR-测试.yml中都填入了cookies,弹幕没有正常下载,不过在https://github.com/SecPhases/DanmakuRender/commit/fd6d85afede5845274ad699bbcdf5db98e68977e分支的修改中填入cookies可以正常获取弹幕
@laomu61996 我基于大佬更新的v5做了一个可以在配置文件里填入cookies的版本(非必填) SecPhases@a8ea650 但是我没有无法获取弹幕的环境,是否能用可能还需要您自行测试一下了 题外话,debug的时候看到开始录制的时候,headers一共被请求了四次,我猜测第一次应该是DMR\LiveAPI\douyin.py的Douyin类获取直播间信息,第二次是DMR\LiveAPI\danmaku\douyininit.py的Douyin类开头定义headers,第三次才是get_ws_info方法传入的部分获取的,第四次应该是获取get_signature时请求的吧? 除了第三次,其他请求headers时我都没有改使用自行填写的cookies,前两次应该没关系,但是第四次不知道会不会影响获取到弹幕 ||题题外话,这两天忙着准备期末考,可能没多少时间弄这些了😢,有问题没回的话就是似了(x)||
刚刚测试了一下SecPhases@a8ea650,在global.yml和DMR-测试.yml中都填入了cookies,弹幕没有正常下载,不过在SecPhases@fd6d85a分支的修改中填入cookies可以正常获取弹幕
请问cookies怎么获取呀
@laomu61996 我基于大佬更新的v5做了一个可以在配置文件里填入cookies的版本(非必填) SecPhases@a8ea650 但是我没有无法获取弹幕的环境,是否能用可能还需要您自行测试一下了 题外话,debug的时候看到开始录制的时候,headers一共被请求了四次,我猜测第一次应该是DMR\LiveAPI\douyin.py的Douyin类获取直播间信息,第二次是DMR\LiveAPI\danmaku\douyininit.py的Douyin类开头定义headers,第三次才是get_ws_info方法传入的部分获取的,第四次应该是获取get_signature时请求的吧? 除了第三次,其他请求headers时我都没有改使用自行填写的cookies,前两次应该没关系,但是第四次不知道会不会影响获取到弹幕 ||题题外话,这两天忙着准备期末考,可能没多少时间弄这些了😢,有问题没回的话就是似了(x)||
刚刚测试了一下SecPhases@a8ea650,在global.yml和DMR-测试.yml中都填入了cookies,弹幕没有正常下载,不过在SecPhases@fd6d85a分支的修改中填入cookies可以正常获取弹幕
可以了https://github.com/SecPhases/DanmakuRender/commit/fd6d85afede5845274ad699bbcdf5db98e68977e 这个分支可以正常获取弹幕了
@laomu61996 我基于大佬更新的v5做了一个可以在配置文件里填入cookies的版本(非必填) SecPhases@a8ea650 但是我没有无法获取弹幕的环境,是否能用可能还需要您自行测试一下了 题外话,debug的时候看到开始录制的时候,headers一共被请求了四次,我猜测第一次应该是DMR\LiveAPI\douyin.py的Douyin类获取直播间信息,第二次是DMR\LiveAPI\danmaku\douyininit.py的Douyin类开头定义headers,第三次才是get_ws_info方法传入的部分获取的,第四次应该是获取get_signature时请求的吧? 除了第三次,其他请求headers时我都没有改使用自行填写的cookies,前两次应该没关系,但是第四次不知道会不会影响获取到弹幕 ||题题外话,这两天忙着准备期末考,可能没多少时间弄这些了😢,有问题没回的话就是似了(x)||
刚刚测试了一下SecPhases@a8ea650,在global.yml和DMR-测试.yml中都填入了cookies,弹幕没有正常下载,不过在SecPhases@fd6d85a分支的修改中填入cookies可以正常获取弹幕
https://github.com/SecPhases/DanmakuRender/commit/0063e75c00e3b6fe8888a8f4e10b2005b2e5b024 试试这个?
@laomu61996 我基于大佬更新的v5做了一个可以在配置文件里填入cookies的版本(非必填) SecPhases@a8ea650 但是我没有无法获取弹幕的环境,是否能用可能还需要您自行测试一下了 题外话,debug的时候看到开始录制的时候,headers一共被请求了四次,我猜测第一次应该是DMR\LiveAPI\douyin.py的Douyin类获取直播间信息,第二次是DMR\LiveAPI\danmaku\douyininit.py的Douyin类开头定义headers,第三次才是get_ws_info方法传入的部分获取的,第四次应该是获取get_signature时请求的吧? 除了第三次,其他请求headers时我都没有改使用自行填写的cookies,前两次应该没关系,但是第四次不知道会不会影响获取到弹幕 ||题题外话,这两天忙着准备期末考,可能没多少时间弄这些了😢,有问题没回的话就是似了(x)||
刚刚测试了一下SecPhases@a8ea650,在global.yml和DMR-测试.yml中都填入了cookies,弹幕没有正常下载,不过在SecPhases@fd6d85a分支的修改中填入cookies可以正常获取弹幕
请问cookies怎么获取呀
打开https://live.douyin.com
按F12,打开控制台,使用指令console.log(document.cookie)
,打印出来的就是
我试了几个直播间都没问题,也许是你js环境没有安装好?
经测试,部分ip未登录状态无法获取到弹幕,在按照@SecPhases 修改后的方法传入登录态cookies后,可以正常获取
那你能在浏览器无痕模式里不登录看到弹幕吗?因为我也是试过几个不同环境的网络发现都没问题。
我试了几个直播间都没问题,也许是你js环境没有安装好?
经测试,部分ip未登录状态无法获取到弹幕,在按照@SecPhases 修改后的方法传入登录态cookies后,可以正常获取
那你能在浏览器无痕模式里不登录看到弹幕吗?因为我也是试过几个不同环境的网络发现都没问题。
浏览器里可以看到弹幕 但是工具获取不到,我可以提供ssh给大佬看下
现在暂时正常了...(可能是因为数据中心的ip触发风控,但是现在暂时是正常的,不管了)
插句嘴,抖音cookie的获取方式: 打开开发者工具,在控制台输入 document.cookie 回车 就可以了
~浏览器里可以看到弹幕 但是工具获取不到,我可以提供ssh给大佬看下~ 现在暂时正常了...(可能是因为数据中心的ip触发风控,但是现在暂时是正常的,不管了)
那我猜抖音应该是对一些数据中心的IP做了风控,我试的家用网络IP都是没有问题的,之后我更新一下加上自定义cookies的功能吧。
~浏览器里可以看到弹幕 但是工具获取不到,我可以提供ssh给大佬看下~ 现在暂时正常了...(可能是因为数据中心的ip触发风控,但是现在暂时是正常的,不管了)
那我猜抖音应该是对一些数据中心的IP做了风控,我试的家用网络IP都是没有问题的,之后我更新一下加上自定义cookies的功能吧。
大佬,自定义cookies要改的是哪个文件啊?我发现你更新的有好几个文件,不知道要把我的cookie填在哪个文件里,谢谢
~浏览器里可以看到弹幕 但是工具获取不到,我可以提供ssh给大佬看下~ 现在暂时正常了...(可能是因为数据中心的ip触发风控,但是现在暂时是正常的,不管了)
那我猜抖音应该是对一些数据中心的IP做了风控,我试的家用网络IP都是没有问题的,之后我更新一下加上自定义cookies的功能吧。
大佬,自定义cookies要改的是哪个文件啊?我发现你更新的有好几个文件,不知道要把我的cookie填在哪个文件里,谢谢
DMR/Config/default.yml 这里
请问抖音要将获取到的cookies:__ac_nonce=xxx; __ac_signature=xxx; sessionid=xxx填入文件DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里面的下面这里的什么位置啊?还是说我找错了吗?谢谢
cookies = {}
@classmethod def refresh_cookies(cls): with requests.Session() as sess: try: response = sess.get(f'https://live.douyin.com/462574904325',headers=cls.base_headers,timeout=5) assert response.cookies.get('__ac_nonce') cls.cookies['__ac_nonce'] = response.cookies.get('__ac_nonce') except Exception as e: logging.exception(f'获取抖音cookies错误: {e}') try: response = sess.get(f'https://live.douyin.com',headers=cls.base_headers,timeout=5) assert response.cookies.get('ttwid') cls.cookies['ttwid'] = response.cookies.get('ttwid') except Exception as e: logging.exception(f'获取抖音cookies错误: {e}')
请问抖音要将获取到的cookies:__ac_nonce=xxx; __ac_signature=xxx; sessionid=xxx填入文件DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里面的下面这里的什么位置啊?还是说我找错了吗?谢谢
cookies = {}
@classmethod def refresh_cookies(cls): with requests.Session() as sess: try: response = sess.get(f'https://live.douyin.com/462574904325',headers=cls.base_headers,timeout=5) assert response.cookies.get('ac_nonce') cls.cookies['__ac_nonce'] = response.cookies.get('ac_nonce') except Exception as e: logging.exception(f'获取抖音cookies错误: {e}')
try:
response = sess.get(f'https://live.douyin.com',headers=cls.base_headers,timeout=5)
assert response.cookies.get('ttwid')
cls.cookies['ttwid'] = response.cookies.get('ttwid')
except Exception as e:
logging.exception(f'获取抖音cookies错误: {e}')
@laomu61996 我基于大佬更新的v5做了一个可以在配置文件里填入cookies的版本(非必填) SecPhases@a8ea650 但是我没有无法获取弹幕的环境,是否能用可能还需要您自行测试一下了 题外话,debug的时候看到开始录制的时候,headers一共被请求了四次,我猜测第一次应该是DMR\LiveAPI\douyin.py的Douyin类获取直播间信息,第二次是DMR\LiveAPI\danmaku\douyininit.py的Douyin类开头定义headers,第三次才是get_ws_info方法传入的部分获取的,第四次应该是获取get_signature时请求的吧? 除了第三次,其他请求headers时我都没有改使用自行填写的cookies,前两次应该没关系,但是第四次不知道会不会影响获取到弹幕 ||题题外话,这两天忙着准备期末考,可能没多少时间弄这些了😢,有问题没回的话就是似了(x)||
刚刚测试了一下SecPhases@a8ea650,在global.yml和DMR-测试.yml中都填入了cookies,弹幕没有正常下载,不过在SecPhases@fd6d85a分支的修改中填入cookies可以正常获取弹幕
可以了SecPhases@fd6d85a 这个分支可以正常获取弹幕了
请问抖音要将获取到的cookies:__ac_nonce=xxx; __ac_signature=xxx; sessionid=xxx填入文件DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里面的下面这里的什么位置啊?还是说我找错了吗?谢谢
cookies = {}
@classmethod def refresh_cookies(cls): with requests.Session() as sess: try: response = sess.get(f'https://live.douyin.com/462574904325',headers=cls.base_headers,timeout=5) assert response.cookies.get('ac_nonce') cls.cookies['__ac_nonce'] = response.cookies.get('ac_nonce') except Exception as e: logging.exception(f'获取抖音cookies错误: {e}')
try:
response = sess.get(f'https://live.douyin.com',headers=cls.base_headers,timeout=5)
assert response.cookies.get('ttwid')
cls.cookies['ttwid'] = response.cookies.get('ttwid')
except Exception as e:
logging.exception(f'获取抖音cookies错误: {e}')
@laomu61996 我基于大佬更新的v5做了一个可以在配置文件里填入cookies的版本(非必填) SecPhases@a8ea650 但是我没有无法获取弹幕的环境,是否能用可能还需要您自行测试一下了 题外话,debug的时候看到开始录制的时候,headers一共被请求了四次,我猜测第一次应该是DMR\LiveAPI\douyin.py的Douyin类获取直播间信息,第二次是DMR\LiveAPI\danmaku\douyininit.py的Douyin类开头定义headers,第三次才是get_ws_info方法传入的部分获取的,第四次应该是获取get_signature时请求的吧? 除了第三次,其他请求headers时我都没有改使用自行填写的cookies,前两次应该没关系,但是第四次不知道会不会影响获取到弹幕 ||题题外话,这两天忙着准备期末考,可能没多少时间弄这些了😢,有问题没回的话就是似了(x)||
刚刚测试了一下SecPhases@a8ea650,在global.yml和DMR-测试.yml中都填入了cookies,弹幕没有正常下载,不过在SecPhases@fd6d85a分支的修改中填入cookies可以正常获取弹幕
可以了SecPhases@fd6d85a 这个分支可以正常获取弹幕了
请问抖音要将获取到的cookies:__ac_nonce=xxx; __ac_signature=xxx; sessionid=xxx填入文件DanmakuRender/DMR/LiveAPI/danmaku/douyin.py里面的下面这里的什么位置啊?还是说我找错了吗?谢谢
cookies = {}
@classmethod def refresh_cookies(cls): with requests.Session() as sess: try: response = sess.get(f'https://live.douyin.com/462574904325',headers=cls.base_headers,timeout=5) assert response.cookies.get('ac_nonce') cls.cookies['__ac_nonce'] = response.cookies.get('ac_nonce') except Exception as e: logging.exception(f'获取抖音cookies错误: {e}')
try:
response = sess.get(f'https://live.douyin.com',headers=cls.base_headers,timeout=5)
assert response.cookies.get('ttwid')
cls.cookies['ttwid'] = response.cookies.get('ttwid')
except Exception as e:
logging.exception(f'获取抖音cookies错误: {e}')
如果可以获取弹幕的话就没必要加cookies了,多一步反而容易被追踪风控。
可能是抖音弹幕服务器更新ws地址算法或者心跳验证机制了
报错: 200, message='Invalid response status', url=URL('wss://webcast3-ws-web-lf.douyin.com/webcast/im/push/v2/?room_id=7382585545945336617&compress=gzip&signature=00000000&aid=6383&device_platform=web&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=92.0.4515.159') Traceback (most recent call last): File "E:\DanmakuRender-4\DanmakuRender-4\DMR\Downloader\danmakuio.py", line 112, in dmc_task await dmc.start() File "E:\DanmakuRender-4\DanmakuRender-4\DMR\LiveAPI\danmaku__init.py", line 96, in start await self.init_ws() File "E:\DanmakuRender-4\DanmakuRender-4\DMR\LiveAPI\danmaku__init__.py", line 54, in init_ws self.ws = await self.hs.ws_connect(ws_url, headers=self.site_api.headers) File "C:\Users\86157\AppData\Local\Programs\Python\Python39\lib\site-packages\aiohttp\client.py", line 851, in _ws_connect raise WSServerHandshakeError( aiohttp.client_exceptions.WSServerHandshakeError: 200, message='Invalid response status', url=URL('wss://webcast3-ws-web-lf.douyin.com/webcast/im/push/v2/?room_id=7382585545945336617&compress=gzip&signature=00000000&aid=6383&device_platform=web&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=92.0.4515.159')