使用 youtube-dl 和 ffmpeg 从 YouTube 下载音频

使用 youtube-dl 和 ffmpeg 从 YouTube 下载音频

我正在尝试制作一个音频下载器,youtube-dl它将ffmpeg

  1. 下载 YouTube 上最佳格式的音频
  2. 在文件中嵌入缩略图。
  3. 将文件转换为 mp3。
  4. 删除文件夹中除转换后的 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 {}"

我的代码遇到的问题:

  1. 转换后的文件重命名不正确。它Filename.m4a.mp3按照我希望的方式命名Filename.mp3
  2. 视频缩略图保存为Filename.jpg,youtube-dl 创建一个名为的文件cookies.txt。这些不会被自动删除。
  3. 最后,出现此错误: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"

相关内容