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]下载喜欢的视频,创建的文件夹名非用户名而是第一个视频发布者的名字 #208

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

Comments

@zhouhongjian
Copy link

zhouhongjian commented Sep 3, 2022

描述出现的错误
下载个人喜欢的视频,创建的文件夹名我预期应该是个人用户的nickname。实际创建的文件夹名是喜欢列表的第一个视频发布者的nickname。看了下commitid为9e7be09f的最新代码,Profile文件的90行对nickname的获取逻辑,没有针对mode进行区分。不过没什么影响,可以忽略。

不太确定配置文件中,uid配的链接都可以输入什么地址。我是用https://www.douyin.com/user/实际id,如果认定是mode=like的情况下,应该可以直接访问这个连接,我在postman里面看返回结果,发现可以用class= Nu66P_ba的<span>的text或者<title>的text做截断都可以实现。

bug复现
复现这次行为的步骤:
1.配置文件的mode设置成like
2.设置自己的用户主页地址
3.启动基于最新的commitid为9e7be09f编译后的TikTokTool.exe
4.去下载目录查看like文件夹下的子文件夹名

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

软件的请求逻辑是 根据长短链接(v.douyin.com or douyin.com/user)获取用户唯一sec_id,再根据(like or post)配合sec_id请求接口。用max_cursor翻页返回所有作品。

like模式无法获取本人的昵称是因为我并不打算把账号登录功能加入,因为会造成潜在隐患,比如被封禁,而且不安全。
你提到的90行代码是没有问题的,是我设计之初没有考虑怎样合适的处理这个喜欢页问题。后续修复就是把like页按所点赞用户名称分类下载。如果你有更好的想法你可以在这个issues里提出

@zhouhongjian
Copy link
Author

zhouhongjian commented Sep 3, 2022

访问这2个链接好像不需要登录的,可能姿势不对。另外,有点不太能get到按所点赞用户名称分类,是按视频发布者分类还是怎么分类呢😅

@Johnserf-Seed
Copy link
Owner

访问这2个链接好像不需要登录的,可能姿势不对。另外,有点不太能get到_按所点赞用户名称分类_,是按视频发布者分类还是怎么分类呢😅

获取作品当然不需要登陆,你的意思不就是下载喜欢页希望保存在自己的名称文件夹里,like这个没办法依靠接口看见你的昵称😅

@Johnserf-Seed
Copy link
Owner

所以你提的方法,mode是like的情况下xpath获取span标签里的用户名 可用,后续修复

@zhouhongjian
Copy link
Author

好的😀,大佬有考虑mode再加上收藏页么,我好像没找到对应api,随便提一下😃

@zhouhongjian
Copy link
Author

我另外发现了个小问题,就是like和post模式对文件的命名方式不一样。但是,Download.py的代码(76行的注释:检查视频下载情况)对文件是否存在的判断,只针对post进行了处理,like模式的判断就永远是false,所以like模式会一直重复下载。

@Whichbfj28
Copy link

访问这2个链接好像不需要登录的,可能姿势不对。另外,有点不太能get到_按所点赞用户名称分类_,是按视频发布者分类还是怎么分类呢sweat_smile

获取作品当然不需要登陆,你的意思不就是下载喜欢页希望保存在自己的名称文件夹里,like这个没办法依靠接口看见你的昵称sweat_smile

我也遇到这个问题。那么我可以不用昵称吗。我自己新建一个文件(比如melink)来保存喜欢的视频。要修改py的那个地方?

@Johnserf-Seed
Copy link
Owner

访问这2个链接好像不需要登录的,可能姿势不对。另外,有点不太能get到_按所点赞用户名称分类_,是按视频发布者分类还是怎么分类呢sweat_smile

获取作品当然不需要登陆,你的意思不就是下载喜欢页希望保存在自己的名称文件夹里,like这个没办法依靠接口看见你的昵称sweat_smile

我也遇到这个问题。那么我可以不用昵称吗。我自己新建一个文件(比如melink)来保存喜欢的视频。要修改py的那个地方?

我的建议是不需要改,如果要改只需要在Util/Profile.pygetProfile()函数中判断mode是like的情况,给self.nickname赋上你想要的名称即可

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

3 participants