f2 icon indicating copy to clipboard operation
f2 copied to clipboard

视频标题中的部分字符被替换为下划线

Open prismriverrr opened this issue 11 months ago • 5 comments

此视频为例,下载好后,文件名中的假名、标点符号被替换为了下划线。

2025-01-09 18-44-00_有同学问________啥意思_咋来的__大家好_我是日语朋友YC老师_一个独立的日语网课老师_上课滴滴___......发音_#日语语法_#日语台词_#日语教学_#日语学习_video.mp4

另外,这种标题较长的视频,文件名可否保留完整名称,不要省略。

prismriverrr avatar Jan 23 '25 15:01 prismriverrr

Hey @prismriverrr! I'm here to help you with any bugs, questions, or contributions you have. Let's tackle this issue together!

在视频标题中,某些字符被替换为下划线是因为代码库使用了 replaceT 函数来处理非法字符。该函数使用正则表达式 r"[^\u4e00-\u9fa5a-zA-Z0-9#]" 来识别非法字符,并将其替换为下划线 _。这意味着除了中文字符、英文字母、数字和 # 之外的字符都会被替换 [1]

关于长标题的视频文件名被截断的问题,代码库中 format_file_name 函数会根据操作系统的文件名长度限制来截断文件名。默认情况下,文件名长度限制为 200 个字符 [2]。如果你希望保留完整的名称,可以考虑修改 format_file_name 函数的调用,增加一个长度限制参数来控制文件名的长度 [3][4]

To continue talking to Dosu, mention @dosu.


Help Dosu learn! Give it feedback: Great Response | Irrelevant Answer | Incorrect Sources | Too Verbose | Hallucination | Other

dosubot[bot] avatar Jan 23 '25 15:01 dosubot[bot]

这是因为有些字符不是合法的文件名,原始的文案信息会保存到desc.txt里,可以手动去改

Johnserf-Seed avatar Jan 23 '25 15:01 Johnserf-Seed

这是因为有些字符不是合法的文件名,原始的文案信息会保存到desc.txt里,可以手动去改

desc.txt也是被替换了的。

Image

prismriverrr avatar Jan 23 '25 15:01 prismriverrr

你指的是比如windwos平台不允许用作文件名的字符吗(比如/ \ : *),日文假名一般都是可以用作文件名的吧。如果是特殊字符,可否考虑替换成平台允许的近似字符。我记得yt-dlp就是这么做的。

我需要精确检索文件名,由于是批量下载,手动通过desc.txt修改也不太方便,所以希望标题文字不要被替换,并且尽可能保留原视频标题长度。

prismriverrr avatar Jan 23 '25 15:01 prismriverrr

https://github.com/Johnserf-Seed/f2/blob/main/f2/apps/douyin/dl.py#L195 这里可以手动改成desc_raw 记录的就是原格式,如果日文的假名可以替代的话那我会在下个版本中处理这个情况。

Johnserf-Seed avatar Jan 23 '25 15:01 Johnserf-Seed