0

我想学习 shell 脚本,所以我尝试使用 youtube-dl 下载 youtube 视频,然后使用 ffmpeg 将其转换为 mp3。

youtube-dl http://youtube.com/watch?v=... 然后 我手动运行它ffmpeg -i downloadedFile -ab 256000 -ar 44100 audioFile.mp3

我知道我需要将两个参数传递给我的脚本,一个用于视频 url,另一个用于音频文件,以使事情尽可能简单,但我不知道如何开始。也许 grep url 中的视频 id 并使用它来知道要使用哪个文件转换为 mp3?(因为 youtube-dl 保存了以其 id 命名的视频)

有人可以向我推荐可以帮助我的文章或文档吗?

4

1 回答 1

1

您可以使用--outputyoutube-dl 的参数来拥有任意模板。此外,youtube-dl 已经可以转换为 mp3 了!尝试

#!/bin/sh
youtube-dl -o '%(title)s.%(ext)s' -x --audio-format mp3 -- "$1"
  • -o--output定义输出名称。您可以使用许多模板,包括%(title)s视频标题、%(ext)s扩展名和%(id)s视频 ID。您还可以使用静态文件名,例如 'audio.%(ext)s , which will result in anaudio.mp3` 文件。
  • -x--extract-audio建议 youtube-dl 将视频转换为音频文件(然后删除视频文件,除非您通过-k)。但是,与您的解决方案相比,youtube-dl 不会重新编码已经在 mp3 中的音频流 - 即使具有相对较高的比特率(例如 256k),当您解码 mp3 并随后重新编码时,您也会失去质量。
  • 如果您想要特定的比特率,请使用--audio-quality参数,例如--audio-quality 256k.
  • --audio-format参数建议 youtube-dl 将音频转换为给定的格式。无论格式如何,您都可以使用它best来始终获取原始音频(并且不会损失任何质量)。
  • "$1"是你的 shell 脚本的第一个参数。您可以传入完整的 URL、视频 ID 或一些快捷方式(例如ytsearch:python在 YouTube 上搜索“python”并选择第一个视频。
于 2013-05-08T07:27:45.930 回答