Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]获取用户数据失败,请从web端获取新ttwid #335

Open
doio opened this issue Mar 2, 2023 · 45 comments
Open

[BUG]获取用户数据失败,请从web端获取新ttwid #335

doio opened this issue Mar 2, 2023 · 45 comments
Assignees
Labels
故障(bug) 代码问题导致的错误(Bugs caused by code problems) 额外求助(help wanted) 非项目代码错误的求助(Extra attention is needed) 无效(invalid) 非代码故障导致错误或异常(Non-code faults causing errors or anomalies)

Comments

@doio
Copy link

doio commented Mar 2, 2023

描述出现的错误
【注意】获取用户数据失败,请从web端获取新ttwid

bug复现
复现这次行为的步骤:
复制了抖音链接到 conf 里面,执行 TikTokTool.exe

截图
如果适用,添加屏幕截图以帮助解释您的问题。

桌面(请填写以下信息):
-操作系统:Windows 11 64-bit
-vpn代理[例如开启、关闭]
-版本 v1.3.0.54

附文
下载一个用户的图文和视频出现这个

2023-03-02_20-44-44

@doio doio added 故障(bug) 代码问题导致的错误(Bugs caused by code problems) 额外求助(help wanted) 非项目代码错误的求助(Extra attention is needed) 无效(invalid) 非代码故障导致错误或异常(Non-code faults causing errors or anomalies) labels Mar 2, 2023
@zhiben5201
Copy link

刚好也就是刚才,我也发现这个问题,而且无法通过重启路由器等方式自行修复

@eightrivers
Copy link

同样的问题出现+1

大概8个小时前还是正常的~

@zhiben5201
Copy link

折腾了半天还是不会弄啊,我是EDGE浏览器,找不到你说的那个COOKIE的地方,往上自己搜索方法出来的东西不知道该怎么复制
1677813539774

@Hsirehc
Copy link

Hsirehc commented Mar 3, 2023

2023-03-03 09:03亲测解决

以前只需要ttwid,昨天更新后是增加了其他的密钥验证 只需要把cookie里的所有内容都填进去就可以

【如何更改】 1.获得cookie (1)在电脑浏览器中打开任意抖音主页 (2)按F12---->点击network选项卡--->点击doc选项 (3)再在左下角name选项卡中任选一项---->Headerr--->RequestHeaders--->cookie (4)复制cookie里的内容 如果仍然不会,请谷歌“如何查看网页cookies”

2.将获得的cookie填在__init__.py (1)打开本项目文件夹 (2)打开Util文件夹 (3)打开文件__init__.py

将新获得的cookie【补充】进旧的cookie 注意是【补充】 要保留【f'msToken={generate_random_str(107)};】字段 形如: 'Cookie': f'msToken={generate_random_str(107)};ttwid=...............................}

获取作品信息返回还是为空

@zhiben5201
Copy link

标题器

没有COOKIES的选项
1677815039933

@eightrivers
Copy link

2023-03-03 09:03亲测解决
以前只需要ttwid,昨天更新后是增加了其他的密钥验证 只需要把cookie里的所有内容都填进去就可以
【如何更改】 1.获得cookie (1)在电脑浏览器中打开任意抖音主页 (2)按F12---->点击network选项卡--->点击doc选项 (3)再在左下角name选项卡中任选一项---->Headerr--->RequestHeaders--->cookie (4)复制cookie里的内容 如果仍然不会,请谷歌“如何查看网页cookies”
2.将获得的cookie填在__init__.py (1)打开本项目文件夹 (2)打开Util文件夹 (3)打开文件__init__.py
将新获得的cookie【补充】进旧的cookie 注意是【补充】 要保留【f'msToken={generate_random_str(107)};】字段 形如: 'Cookie': f'msToken={generate_random_str(107)};ttwid=...............................}

获取作品信息返回还是为空

以上的这个帖子被删除掉了么?

@zhiben5201
Copy link

2023-03-03 09:03亲测解决
以前只需要ttwid,昨天更新后是增加了其他的密钥验证 只需要把cookie里的所有内容都填进去就可以
【如何更改】 1.获得cookie (1)在电脑浏览器中打开任意抖音主页 (2)按F12---->点击network选项卡--->点击doc选项 (3)再在左下角name选项卡中任选一项---->Headerr--->RequestHeaders--->cookie (4)复制cookie里的内容 如果仍然不会,请谷歌“如何查看网页cookies”
2.将获得的cookie填在__init__.py (1)打开本项目文件夹 (2)打开Util文件夹 (3)打开文件__init__.py
将新获得的cookie【补充】进旧的cookie 注意是【补充】 要保留【f'msToken={generate_random_str(107)};】字段 形如: 'Cookie': f'msToken={generate_random_str(107)};ttwid=...............................}

获取作品信息返回还是为空

以上的这个帖子被删除掉了么?

我尝试了半天是不行的,估计是发帖者自己删了吧

@eightrivers
Copy link

2023-03-03 09:03亲测解决
以前只需要ttwid,昨天更新后是增加了其他的密钥验证 只需要把cookie里的所有内容都填进去就可以
【如何更改】 1.获得cookie (1)在电脑浏览器中打开任意抖音主页 (2)按F12---->点击network选项卡--->点击doc选项 (3)再在左下角name选项卡中任选一项---->Headerr--->RequestHeaders--->cookie (4)复制cookie里的内容 如果仍然不会,请谷歌“如何查看网页cookies”
2.将获得的cookie填在__init__.py (1)打开本项目文件夹 (2)打开Util文件夹 (3)打开文件__init__.py
将新获得的cookie【补充】进旧的cookie 注意是【补充】 要保留【f'msToken={generate_random_str(107)};】字段 形如: 'Cookie': f'msToken={generate_random_str(107)};ttwid=...............................}

获取作品信息返回还是为空

以上的这个帖子被删除掉了么?

我尝试了半天是不行的,估计是发帖者自己删了吧

好吧,坐等大佬更新~

先抱拳谢过!

@Vinsea
Copy link

Vinsea commented Mar 3, 2023

@doio @zhiben5201 @eightrivers 。我这解决了。不能用exe,得直接用python执行脚本
就是把cookie的值全部覆盖__init__.py里对应的值就行。可能抖音官方新加了什么header校验吧

@zhiben5201
Copy link

@doio @zhiben5201 @eightrivers 。我这解决了。不能用exe,得直接用python执行脚本 就是把cookie的值全部覆盖__init__.py里对应的值就行。可能抖音官方新加了什么header校验吧

谢谢,我完全没有编码这方面知识储备,根本看不懂,白天找COOKIE都找了半天,目前也只能等作者更新了

@Johnserf-Seed
Copy link
Owner

都写了是自行替换,就是我更新了cookie还是会失效的 自行替换打包

@Vinsea
Copy link

Vinsea commented Mar 3, 2023

都写了是自行替换,就是我更新了cookie还是会失效的 自行替换打包

@Johnserf-Seed 我排查发现在原来基础上加上 sid_guard 这个字段就好了,但不知道这个字段干啥用的

@zhiben5201
Copy link

都写了是自行替换,就是我更新了cookie还是会失效的 自行替换打包

@Johnserf-Seed 我排查发现在原来基础上加上 sid_guard 这个字段就好了,但不知道这个字段干啥用的

求教程,这方面确实一窍不通

@zhiben5201
Copy link

都写了是自行替换,就是我更新了cookie还是会失效的 自行替换打包

具体怎么操作啊,我没有一点编码知识,找到了COOKIES,尝试了各种复制编辑__init__.py的方法都没用

@eightrivers
Copy link

照抄这段,亲测有效
微信截图_20230304125845

@zhiben5201
Copy link

照抄这段,亲测有效 微信截图_20230304125845

谢谢,这个抄到哪里?

@zhiben5201
Copy link

照抄这段,亲测有效 微信截图_20230304125845

1677913339562
这样改对吗,数据是我自己浏览器找到的

@eightrivers
Copy link

照抄这段,亲测有效 微信截图_20230304125845

1677913339562 这样改对吗,数据是我自己浏览器找到的

看起来你可能没有python的运行环境,可能这样改了也不好使~~

捯饬这个最好还是需要有一些编程基础,要不就等大神改完后打包成exe,你直接执行就好了

@eightrivers
Copy link

亲测只需要添加一个新的cookie就好了,名字是:passport_csrf_token,当前有效值为:'7492ca4093c9c7266e9593af38731059'

@zhiben5201
Copy link

亲测只需要添加一个新的cookie就好了,名字是:passport_csrf_token,当前有效值为:'7492ca4093c9c7266e9593af38731059'

我确实没有一点编程基础,从小就只对文科感兴趣,电脑也了解个皮毛,照猫画虎可以,但这个确实不行

@eightrivers
Copy link

亲测只需要添加一个新的cookie就好了,名字是:passport_csrf_token,当前有效值为:'7492ca4093c9c7266e9593af38731059'

我确实没有一点编程基础,从小就只对文科感兴趣,电脑也了解个皮毛,照猫画虎可以,但这个确实不行

文科同学能注册github账号讨论技术问题,也是蛮让人敬佩的,加油!

@zhiben5201
Copy link

亲测只需要添加一个新的cookie就好了,名字是:passport_csrf_token,当前有效值为:'7492ca4093c9c7266e9593af38731059'

我确实没有一点编程基础,从小就只对文科感兴趣,电脑也了解个皮毛,照猫画虎可以,但这个确实不行

文科同学能注册github账号讨论技术问题,也是蛮让人敬佩的,加油!

我本身以为自己的电脑水平不错了,而且也非常喜欢研究,但这次这个问题上我确实感觉不行了,前面各位大神的回复每个字我都认识,但就是不明白是什么意思,可能这次我不得不放弃躺平了

@Johnserf-Seed
Copy link
Owner

等我晚点更新,又研究出来odin_tt的生成了,下个版本把cookie放配置文件读,就不需要这么麻烦一次一次改了

@harryleo2022
Copy link

等我晚点更新,又研究出来odin_tt的生成了,下个版本把cookie放配置文件读,就不需要这么麻烦一次一次改了

太nice了,小白坐等大佬更新了

@mr-lz
Copy link

mr-lz commented Mar 5, 2023

亲测只需要添加一个新的cookie就好了,名字是:passport_csrf_token,当前有效值为:'7492ca4093c9c7266e9593af38731059'

亲测有效。
具体步骤:
项目目录 → Util目录 → __init__.py
图片

@zhiben5201
Copy link

zhiben5201 commented Mar 5, 2023

亲测只需要添加一个新的cookie就好了,名字是:passport_csrf_token,当前有效值为:'7492ca4093c9c7266e9593af38731059'

亲测有效。 具体步骤: 项目目录 → Util目录 → __init__.py 图片

试了一下,如果只是修改这个文本的话,我这边还是无效的
1678023668909

@zhiben5201
Copy link

我直接用 headers 里的 cookies 把 f' ' 之间的内容一股脑替换,然后就正常运行下载了。

这个方法不用自己手动编辑只需要复制粘贴就可以了吗

@ismakegame
Copy link

请输入抖音链接:https://www.douyin.com/user/MS4wLjABAAAAO4r0HtGsT6phVBHgGwrRAZmEEoNoOMbinibaPmIkc38
Traceback (most recent call last):
File "E:\tools\tiktokdownload\TikTokDownload.py", line 168, in
video_download(url, music, name)
File "E:\tools\tiktokdownload\TikTokDownload.py", line 126, in video_download
key = re.findall('video/(\d+)?', str(r.url))[0]
IndexError: list index out of range
PS E:\tools\tiktokdownload>
到这步报错了

@liy010
Copy link

liy010 commented Mar 7, 2023

请输入抖音链接:https://www.douyin.com/user/MS4wLjABAAAAO4r0HtGsT6phVBHgGwrRAZmEEoNoOMbinibaPmIkc38 Traceback (most recent call last): File "E:\tools\tiktokdownload\TikTokDownload.py", line 168, in video_download(url, music, name) File "E:\tools\tiktokdownload\TikTokDownload.py", line 126, in video_download key = re.findall('video/(\d+)?', str(r.url))[0] IndexError: list index out of range PS E:\tools\tiktokdownload> 到这步报错了

你用错了,这个程序是下载单条视频的,你输入的是用户主页的链接肯定爬取不到

@moexizer
Copy link

moexizer commented Mar 7, 2023

我直接用 headers 里的 cookies 把 f' ' 之间的内容一股脑替换,然后就正常运行下载了。

这个方法不用自己手动编辑只需要复制粘贴就可以了吗

对,全粘贴进去把 f‘ ’ 里的内容替换掉。

@zjplab
Copy link

zjplab commented Mar 7, 2023

Cookie 这个76行改成这样:

'Cookie': f'msToken={generate_random_str(107)};ttwid={generate_ttwid()};odin_tt={odin_tt}; passport_csrf_token={generate_random_str(32)}; passport_csrf_token_default={generate_random_str(32)};'

@Hsirehc
Copy link

Hsirehc commented Mar 7, 2023

Cookie 这个76行改成这样:

'Cookie': f'msToken={generate_random_str(107)};ttwid={generate_ttwid()};odin_tt={odin_tt}; passport_csrf_token={generate_random_str(32)}; passport_csrf_token_default={generate_random_str(32)};'

兄弟牛批

@zhiben5201
Copy link

Cookie 这个76行改成这样:

'Cookie': f'msToken={generate_random_str(107)};ttwid={generate_ttwid()};odin_tt={odin_tt}; passport_csrf_token={generate_random_str(32)}; passport_csrf_token_default={generate_random_str(32)};'

卧槽,真的好了,太感谢了

@chenkongming
Copy link

Cookie 这个76行改成这样:

'Cookie': f'msToken={generate_random_str(107)};ttwid={generate_ttwid()};odin_tt={odin_tt}; passport_csrf_token={generate_random_str(32)}; passport_csrf_token_default={generate_random_str(32)};'

我赞

@vjqi
Copy link

vjqi commented Mar 10, 2023

期待odin_tt的生成算法

@Johnserf-Seed
Copy link
Owner

image
image
新版本等下推送

@Johnserf-Seed
Copy link
Owner

期待odin_tt的生成算法

odin_tt生成是app端的接口,方法是先请求注册设备获取设备id,再用设备id请求abtest接口。在返回的set-cookie中就有odin_tt参数了,比较麻烦所以直接在网页的cookie里拿吧

@Johnserf-Seed
Copy link
Owner

这次的更新大家会用吗,先开启server,然后把cookie填配置文件就可以批量下载了

@doio
Copy link
Author

doio commented Mar 10, 2023

这次的更新大家会用吗,先开启server,然后把cookie填配置文件就可以批量下载了

会用了,哇, PS 界面现在好炫酷!!

作者牛逼!!

2023-03-10_23-04-29

@FredYuuu
Copy link

从前天下午开始最近版本用户主页数据返回内容为空了,手动替换cookie依然无法解决

@GH-XING
Copy link

GH-XING commented May 21, 2023

1.3.0.80版本,这版本还是出现“获取用户数据失败,请从web端获取新ttwid填入配置文件”这个问题,请求各位大佬帮忙解决,谢谢。

Johnserf-Seed added a commit that referenced this issue Jun 9, 2023
由于接口变化大,如遇刷新cookie还是无法获取的情况可以注释referer键或切换网络环境清除缓存重试。
#437 #432 #403 #335 #330 #329 #311
Johnserf-Seed added a commit that referenced this issue Aug 4, 2023
…#287 #294 #312 #320 #332 #335 #341 #343 #346 #355 #357 #360 #361 #362 #364 #365 #367 #370 #372 #374 #376 #377 #379 #380 #381 #382 #383 #393 #394 #397 #398 #399 #401 #402 #403 #404 #406 #407 #408 #410 #414 #416 #419 #420 #422 #423 #426 #431 #432 #433 #434 #435 #436 #437 #446 #448 #449 #450 #451 #452 #454 #455 #456 #567 #460 #466 #469 #470 #471 #472 #475 #476 #477 #480 #481 #483 #484 #485

1、全面升级aiohttp作为异步网络请求,asyncio为密集型IO
2、将导入的库做一个分类排序
3、新增昵称映射、登录、版本自定义模块
4、删除图集模块(现统一由Profile模块处理)
5、优化初始化控制台输出信息,由rich美化
6、偷懒欠了一屁股issues🥴
#155 #191 #202 #203 #206 #220 #226 #227 #243 #267 #287 #294 #312 #320 #332 #335 #341 #343 #346 #355 #357 #360 #361 #362 #364 #365 #367 #370 #372 #374 #376 #377 #379 #380 #381 #382 #383 #393 #394 #397 #398 #399 #401 #402 #403 #404 #406 #407 #408 #410 #414 #416 #419 #420 #422 #423 #426 #431 #432 #433 #434 #435 #436 #437 #446 #448 #449 #450 #451 #452 #454 #455 #456 #567 #460 #466 #469 #470 #471 #472 #475 #476 #477 #480 #481 #483 #484 #485
Johnserf-Seed added a commit that referenced this issue Aug 4, 2023
…294 #312 #320 #332 #335 #341 #343 #346 #355 #357 #360 #361 #362 #364 #365 #367 #370 #372 #374 #376 #377 #379 #380 #381 #382 #383 #393 #394 #397 #398 #399 #401 #402 #403 #404 #406 #407 #408 #410 #414 #416 #419 #420 #422 #423 #426 #431 #432 #433 #434 #435 #436 #437 #446 #448 #449 #450 #451 #452 #454 #455 #456 #567 #460 #466 #469 #470 #471 #472 #475 #476 #477 #480 #481 #483 #484 #485

1、重构所有逻辑改使用异步,便于个人开发调用
2、create_user_folder函数用于创建作品保存目录并返回路径
3、re_match匹配用户的唯一标识
4、get_request_data返回接口的数据
5、get_all_sec_user_id返回用户的唯一标识
6、get_diff_type_url根据传入配置文件中的mode和用户sec_user_id,生成不同作品类型的接口链接
7、get_user_base_info获取用户im基本数据
8、get_user_profile_info获取用户完整信息
9、get_user_post_info获取用户的作品信息
10、get_Profile 相当于main
#155 #191 #202 #203 #206 #220 #226 #227 #243 #267 #287 #294 #312 #320 #332 #335 #341 #343 #346 #355 #357 #360 #361 #362 #364 #365 #367 #370 #372 #374 #376 #377 #379 #380 #381 #382 #383 #393 #394 #397 #398 #399 #401 #402 #403 #404 #406 #407 #408 #410 #414 #416 #419 #420 #422 #423 #426 #431 #432 #433 #434 #435 #436 #437 #446 #448 #449 #450 #451 #452 #454 #455 #456 #567 #460 #466 #469 #470 #471 #472 #475 #476 #477 #480 #481 #483 #484 #485
Johnserf-Seed added a commit that referenced this issue Aug 4, 2023
 #320 #332 #335 #341 #343 #346 #355 #357 #360 #361 #362 #364 #365 #367 #370 #372 #374 #376 #377 #379 #380 #381 #382 #383 #393 #394 #397 #398 #399 #401 #402 #403 #404 #406 #407 #408 #410 #414 #416 #419 #420 #422 #423 #426 #431 #432 #433 #434 #435 #436 #437 #446 #448 #449 #450 #451 #452 #454 #455 #456 #567 #460 #466 #469 #470 #471 #472 #475 #476 #477 #480 #481 #483 #484 #485

1、引入了 "update" 参数来决定是否每次进行版本更新
2、自定义URL常量,方便修改
3、使用 os.path.join() 代替手动拼接路径,以提高跨平台兼容性
4、提取了进度条显示功能,简化了 zip_Download 方法
5、优化了对用户输入的处理,改用循环重新询问,直到用户输入有效值为止
6、使用 shutil.move() 和 shutil.rmtree() 代替 os.rename() 和 os.removedirs(),以解决部分情况下无法移动或删除文件的问题
#155 #191 #202 #203 #206 #220 #226 #227 #243 #267 #287 #294 #312 #320 #332 #335 #341 #343 #346 #355 #357 #360 #361 #362 #364 #365 #367 #370 #372 #374 #376 #377 #379 #380 #381 #382 #383 #393 #394 #397 #398 #399 #401 #402 #403 #404 #406 #407 #408 #410 #414 #416 #419 #420 #422 #423 #426 #431 #432 #433 #434 #435 #436 #437 #446 #448 #449 #450 #451 #452 #454 #455 #456 #567 #460 #466 #469 #470 #471 #472 #475 #476 #477 #480 #481 #483 #484 #485
Johnserf-Seed added a commit that referenced this issue Dec 31, 2023
…#220 #223 #230 #242 #258 #260 #295 #312 #313 #320 #322 #332 #335 #341 # #343 #346 #348 #355 #357 #360 #361 #362 #364 #367 #370 #372 #373 #374 #376 #377 #379 #380 #381 #382 #383 #393 #394 #395 #396 #398 #399 #400 #401 #402 #403 #404 #405 #407 #408 #410 #412 #414 #416 #423 #424 #426 #432 #435 #438 #442 #443 #449 #450 #455 #456 #457 #459 #460 #465 #467 #470 #472 #473 #474 #475 #481 #482 #483 #488 #492 #493 #499 #502 #503 #504 #505 #507 #509 #512 #514 #524 #525 #530 #539 #540 #541 #547 #550 #554 #558 #563 #568 #569 #572 #574 #575 #576 #577 #578 #582 #583 #584 #587 #589 #590 #594 #595 #597 #598 #600 #601 #604 #605 #606 #608 #611 #617 #618 #619

[Added]
1. 新增了对直播间信息的详细获取和下载功能。
2. 添加详细直播间信息的下载支持。
3. 引入了提取评论的功能。
4. 新增支持下载 TikTok 数据,包括发布作品、喜欢作品、图集作品等。
5. 提供了自动生成 XB 参数的接口,支持真实和虚假的 msToken。
6. 引入接口数据过滤器,提高数据采集和处理效率。
7. 增加支持长短链解析的功能。
8. 新增了对合集作品的详细获取和下载功能。
9. 引入了 SSO 扫码登录和自动获取Cookie的功能,可通过 `--auto-cookie` 参数实现。

[Changed]
1. 优化了异步下载的网络并发数、超时重试设置,降低采集错误率。
2. 修改了文件检查逻辑,添加了黑名单选项,不再检查黑名单中的作品是否存在。(未来)
3. 对命令行交互进行了调整,添加了更多的配置选项,提供了更灵活的 CLI 模式。
4. 改进了版本更新机制,全新开发的 F2 现在依赖 pip 进行升级。
5. 对于多用户配置,现在可以为不同用户建立不同的配置与下载模式。

[Security]
1. 修复了可能导致信息泄露的漏洞。

[Deprecated]
1. 废弃了一些低版本接口的相关功能,建议使用更新的接口。

[Fixed]
1. 修复了一些在异步下载中可能导致的错误。
2. 修复了一些异步下载线程控制的错误。

[Removed]
1. 移除了不再支持的功能和接口。

[Documentation]
1. 更新了文档,提供了更详细的配置和使用说明。
2. 补充了开发者必读的内容,包括配置文件、调试日志级别等。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
故障(bug) 代码问题导致的错误(Bugs caused by code problems) 额外求助(help wanted) 非项目代码错误的求助(Extra attention is needed) 无效(invalid) 非代码故障导致错误或异常(Non-code faults causing errors or anomalies)
Projects
None yet
Development

No branches or pull requests