выходной файл Python YouTube-DL не в Unicode? - PullRequest
0 голосов
/ 20 декабря 2018

Есть ли способ заставить функцию youtube-dl.extract_info() использовать Unicode при создании выходного файла?

Я столкнулся с проблемой, что если вы загружаете что-то с символами Unicode, такими как | в заголовке, тоимя выходного файла не будет иметь тот же символ.Вместо этого он будет заменен на _.

Возьмем, к примеру, название песни .Если я скачаю его с youtube-dl, то получу имя этого файла 【Nightcore】→ Pretty Girl _ Lyrics-dMAOnScOyGE.То же самое происходит с разными персонажами.

Есть ли способ остановить это?Потому что это раздражает, если вы хотите потом что-нибудь сделать с этим файлом.

Чтобы получить новое имя файла, мне нужно сделать что-то вроде os.listdir (dir), чтобы получить файл.Поэтому получить новое имя файла не невозможно, но мне просто интересно, есть ли более простой способ.

1 Ответ

0 голосов
/ 20 декабря 2018

Кодировка от | до _ жестко закодирована в sanitize_filename в youtube_dl/utils.py.Вы можете отключить его программно, заменив youtube_dl.utils.sanitize_filename своей собственной реализацией.

Однако это не рекомендуется и не поддерживается сразу после установки.Это связано с тем, что | является недопустимым символом в Windows, и его можно использовать для выполнения произвольных команд, если он раскрыт в ошибочном скрипте.

За один раз были поддержаны небезопасные имена файлов, но я удалил их из youtube-dl, потому чтослишком много людей стреляли себе в ногу и часто сообщали о проблемах, которые явно позволили бы любому злоумышленнику выполнить произвольный код на своих машинах.

...