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

时间:2018-12-20 15:05:29

标签: python unicode youtube-dl

在创建输出文件时,是否有获取youtube-dl.extract_info()函数以使用unicode的功能?

我遇到了一个问题,如果您下载标题中带有诸如|之类的Unicode字符的东西,那么输出文件名将不会具有相同的字符。它将替换为_

以这个song title为例。 如果我使用youtube-dl下载,则会得到此文件名【Nightcore】→ Pretty Girl _ Lyrics-dMAOnScOyGE。相同的情况发生在不同种类的字符上。

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

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

1 个答案:

答案 0 :(得分:1)

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

但是,不建议这样做,也不建议立即使用。这是因为|在Windows上是无效字符,如果在错误的脚本中扩展,则可以用来执行任意命令。

一次支持不安全的文件名,但是我将它们从youtube-dl中删除了,因为太多的人在用脚开枪射击自己,并且经常报告的问题显然会让任何攻击者在他们的计算机上执行任意代码。