我正在尝试制作一个音频下载器,youtube-dl
它将ffmpeg
:
- 下载 YouTube 上最佳格式的音频
- 在文件中嵌入缩略图。
- 将文件转换为 mp3。
- 删除文件夹中除转换后的 mp3 文件之外的所有内容。
下面是我想出的代码:
@echo off
cls
set /p playlist="Enter YouTube Link: "
youtube-dl -f bestaudio[ext=m4a] -i --write-thumbnail --embed-thumbnail -o "%%(title)s.%%(ext)s" %playlist% --exec "ffmpeg -i {} -codec:a libmp3lame -qscale:a 0 {}.mp3 && del {}"
我的代码遇到的问题:
- 转换后的文件重命名不正确。它
Filename.m4a.mp3
按照我希望的方式命名Filename.mp3
- 视频缩略图保存为
Filename.jpg
,youtube-dl 创建一个名为的文件cookies.txt
。这些不会被自动删除。 - 最后,出现此错误:https://i.stack.imgur.com/wHYyw.png
[swscaler @ 00000143e0a4ffc0] 使用了弃用的像素格式,请确保正确设置范围 [mp3 @ 00000143e09f0340] 对于无法有效支持的复用器而言,帧速率过高。请考虑指定较低的帧速率、不同的复用器或 -vsync 2
如果您能帮助我解决这些问题,我将不胜感激。谢谢!
答案1
下面是目前正在执行我需要的所有操作的代码:
@echo off
cls
set /p playlist="Enter YouTube Link: "
youtube-dl -f bestaudio[ext=m4a] --extract-audio --write-thumbnail --embed-thumbnail -o "%%(title)s.%%(ext)s" %playlist% --exec "ffmpeg -i {} -codec:a libmp3lame -qscale:a 0 {}.mp3 && del {}"
@For /R %%f in (*) Do (if not "%%~xf"==".mp3" Del "%%~f")
@For %%G In (*.m4a.mp3) Do @For %%H In ("%%~nG") Do @Ren "%%G" "%%~nH%%~xG"