Johnserf-Seed / TikTokDownload

抖音去水印批量下载用户主页作品、喜欢、收藏、图文、音频
https://github.com/Johnserf-Seed/f2
MIT License
6.52k stars 1.26k forks source link

[BUG] 文件名过长会直接卡住 #483

Open AIEOV opened 1 year ago

AIEOV commented 1 year ago

描述出现的错误

提示 :正在对 1667387515000 页进行第 1 次尝试! 提示 :第 1662709205000 页抓获数据成功!

Traceback (most recent call last): File "/home/ubuntu/0001/TikTokDownload/TikTokTool.py", line 32, in profile.getProfile(cmd.setting()) File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 132, in getProfile self.getData(self.api_post_url) File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 182, in getData self.getVideoInfo(result) File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 303, in getVideoInfo self.getNextData() File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 233, in getNextData self.getVideoInfo(result) File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 303, in getVideoInfo self.getNextData() File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 233, in getNextData self.getVideoInfo(result) File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 303, in getVideoInfo self.getNextData() File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 233, in getNextData self.getVideoInfo(result) File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 303, in getVideoInfo self.getNextData() File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 233, in getNextData self.getVideoInfo(result) File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 303, in getVideoInfo self.getNextData() File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 233, in getNextData self.getVideoInfo(result) File "/home/ubuntu/0001/TikTokDownload/Util/Profile.py", line 302, in getVideoInfo Util.Download().ImageDownload(datas) File "/home/ubuntu/0001/TikTokDownload/Util/Download.py", line 184, in ImageDownload Util.os.makedirs(path) File "", line 225, in makedirs OSError: [Errno 36] File name too long: 'Download/pic/柴郡猫郡主/2022-09-10 10.21.42中秋是传统节日_不管几天假期都要重视_大家要重视起来_用自己的力量多多宣传_不给Tou国可乘之机_我穿的是南北朝汉元素_汉服拍照真的是太美啦_朋友说我这套是哪家府上的小姐偷跑出版本过低_升级后'

bug复现 复现这次行为的步骤: 正常工作 但遇到这个报错 应该是某某一个视频名字过长,但是会直接卡在这里无法跳过,重复运行依然会卡在这 OSError: [Errno 36] File name too long: '

桌面(请填写以下信息): ubuntu 22

附文 顺便请教一下 “2、运行./server.bat启动本地接口解析 (确保本地安装Node.js -” ./server.bat 提示权限不足
通过sudo chmod 777 server.bat 解决 然后我再开另一个ssh窗口运行tiktoktool 这样感觉有点傻 server.bat 是运行后就可以关闭还是一直打开?或者我开个screen挂在后面?

Johnserf-Seed commented 1 year ago

那段时间的版本还没写出来纯py的XB,所以本地使用接口服务可自行调用。新版不需要再开Server

wangnan789 commented 1 year ago

那段时间的版本还没写出来纯py的XB,所以本地使用接口服务可自行调用。新版不需要再开Server

1.4的版本还是有此错误发生 [ 提示 ]:异常,[Errno 36] File name too long: '/TikTokDownload-1.4.0.0/Download/post/meiyu晓萱内衣裤严选/2023-08-18 16.30.00_还没想好七夕给女朋友送什么礼物吗_那就安排这款冰皮内裤吧_穿上身真的太舒服了_冰冰凉凉_丝丝滑滑好穿不贵# 新品上新#大数据是不会乱推的#七夕#男朋友#七夕我要种草浪漫' [2023-08-19 22:12:04,354] - Log.py] - ERROR: [ 提示 ]:异常,[Errno 36] File name too long: '/TikTokDownload-1.4.0.0/Download/post/meiyu晓萱内衣裤严选/2023-08-18 16.30.00_还没想好七夕给女朋友送什么礼物吗_那就安排这款冰皮内裤吧_穿上身真的太舒服了_冰冰凉凉_丝丝滑滑好穿不贵#新品上新#大数据是不会乱推的#七夕#男朋友#七夕我要种草浪漫'

Johnserf-Seed commented 1 year ago

那段时间的版本还没写出来纯py的XB,所以本地使用接口服务可自行调用。新版不需要再开Server

1.4的版本还是有此错误发生 [ 提示 ]:异常,[Errno 36] File name too long: '/TikTokDownload-1.4.0.0/Download/post/meiyu晓萱内衣裤严选/2023-08-18 16.30.00_还没想好七夕给女朋友送什么礼物吗_那就安排这款冰皮内裤吧_穿上身真的太舒服了_冰冰凉凉_丝丝滑滑好穿不贵# 新品上新#大数据是不会乱推的#七夕#男朋友#七夕我要种草浪漫' [2023-08-19 22:12:04,354] - Log.py] - ERROR: [ 提示 ]:异常,[Errno 36] File name too long: '/TikTokDownload-1.4.0.0/Download/post/meiyu晓萱内衣裤严选/2023-08-18 16.30.00_还没想好七夕给女朋友送什么礼物吗_那就安排这款冰皮内裤吧_穿上身真的太舒服了_冰冰凉凉_丝丝滑滑好穿不贵#新品上新#大数据是不会乱推的#七夕#男朋友#七夕我要种草浪漫'

这个的修复还没推送呢

Johnserf-Seed commented 1 year ago
操作系统 文件名最大长度(字节) 路径最大长度
Linux 255 4096
MAC 255 1024
Windows(未开启长文件名) 255 260
Windows(开启长文件名) 255 32767

https://blog.csdn.net/weixin_45565886/article/details/131659741

所以Windows系统的解决办法就是开启长文件名,后续代码也会修改。

在Windows 10和Windows Server 2016以后的版本中,微软引入了一个新特性,允许用户超出传统的260字符的路径限制。这个特性被称为“长路径支持”(Long Paths Support)。要在Windows上启用长文件名,请按照以下2个不同步骤操作:

使用组策略编辑器:

a. Win + R 打开gpedit.msc来运行组策略编辑器。 b. 导航到计算机配置 > 管理模板 > 系统 > 文件系统。 c. 找到启用Win32长路径,双击打开它。 d. 选择已启用选项,然后点击确定

使用注册表编辑器:

a. Win + R 打开regedit来运行注册表编辑器。 b. 导航到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem。 c. 找到一个名为LongPathsEnabledDWORD16值(如果不存在,需要创建一个)。 d. 双击LongPathsEnabled,将其值设置为1。 e. 保存更改并关闭注册表编辑器。

wangnan789 commented 1 year ago

操作系统 文件名最大长度(字节) 路径最大长度 Linux 255 4096 MAC 255 1024 Windows(未开启长文件名) 255 260 Windows(开启长文件名) 255 32767

https://blog.csdn.net/weixin_45565886/article/details/131659741

所以Windows系统的解决办法就是开启长文件名,后续代码也会修改。

在Windows 10和Windows Server 2016以后的版本中,微软引入了一个新特性,允许用户超出传统的260字符的路径限制。这个特性被称为“长路径支持”(Long Paths Support)。要在Windows上启用长文件名,请按照以下2个不同步骤操作:

使用组策略编辑器:

a. Win + R 打开gpedit.msc来运行组策略编辑器。 b. 导航到计算机配置 > 管理模板 > 系统 > 文件系统。 c. 找到启用Win32长路径,双击打开它。 d. 选择已启用选项,然后点击确定

使用注册表编辑器:

a. Win + R 打开regedit来运行注册表编辑器。 b. 导航到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem。 c. 找到一个名为LongPathsEnabledDWORD16值(如果不存在,需要创建一个)。 d. 双击LongPathsEnabled,将其值设置为1。 e. 保存更改并关闭注册表编辑器。

linux系统该如何呢?好多次都是卡在文件名太长而停止

RallyQ commented 3 months ago

用{desc}作为文件名的话,有时候视频简介或使用的#@标签过多,造成文件名太长,也没必要,能否限制desc文件名长度? 或者指导一下改哪个文件的参数能做到?谢谢!

RallyQ commented 3 months ago

自己找到限制文件名长度所在文件了,小尾巴_video也去掉了^-^