如何解决yt-dlp获取文件名时韩文及特殊符号丢失问题
yt-dlp 获取文件名时韩文与特殊字符丢失的解决方法
期望获取的视频文件名:
"[M⧸V] 김예림(림킴) - Confess To You :: 킹더랜드(King the Land) OST Part.2 [vzH3-8_Y7oo].mp4"
问题重现
执行以下代码:
import subprocess url='https://www.youtube.com/watch?v=vzH3-8_Y7oo' filename = subprocess.getoutput(f'yt-dlp -f 399 {url} --print filename') print(filename)
得到输出:
[MV] () - Confess To You :: (King the Land) OST Part.2 [vzH3-8_Y7oo].mp4
可见文件名中的韩文全部丢失,原斜杠位置变为空括号;中文可正常显示,但韩文无法识别,尝试用unicodedata处理也无效。
解决方法
在yt-dlp命令中添加--encoding utf-8参数,同时在subprocess调用时指定编码为utf-8,修正后的代码如下:
import subprocess cmd = "yt-dlp -f 399 https://www.youtube.com/watch?v=vzH3-8_Y7oo --print filename --encoding utf-8" videos = subprocess.run(cmd.split(), capture_output=True, encoding='utf-8').stdout print(videos)
通过指定UTF-8编码,可确保韩文和特殊字符被正确解析输出。
内容的提问来源于stack exchange,提问作者Gordon Chao
相关产品推荐
相关产品推荐

