python youtube-dl 输出文件不是 unicode?

python youtube-dl output file not in unicode?

有没有办法让 youtube-dl.extract_info() 函数在创建输出文件时使用 unicode?

我遇到过这样的问题,如果您下载标题中带有 | 等 unicode 字符的内容,那么输出文件名将不会具有相同的字符。它将被替换为 _

以这个song title为例。 如果我用 youtube-dl 下载它,那么我得到这个文件名 【Nightcore】→ Pretty Girl _ Lyrics-dMAOnScOyGE。同样的事情发生在不同类型的角色身上。

有什么办法可以阻止这种情况吗? 因为如果您想事后对该文件执行任何操作,那会很烦人。

要获取新文件名,我需要执行 os.listdir(dir) 之类的操作来获取文件。所以获取新文件名也不是不可能,但我只是想知道有没有更简单的方法。

|_ 的编码在 sanitize_filename in youtube_dl/utils.py 中被硬编码。您可以通过用您自己的实现替换 youtube_dl.utils.sanitize_filename 以编程方式关闭它。

但是,不建议这样做,开箱即用也不支持。这是因为 | 是 Windows 上的无效字符,如果在错误的脚本中展开,可用于执行任意命令。

一度支持不安全的文件名,但我将它们从 youtube-dl 中删除,因为太多人搬起石头砸自己的脚,并且经常报告明显会让任何攻击者在他们的机器上执行任意代码的问题。