如何从 YouTube 视频下载 MP3 曲目

如何从 YouTube 视频下载 MP3 曲目

有几个问答主题解释了如何使用终端下载 YouTube 视频。

但是,我也想学习如何将视频的音轨提取为 MP3 文件——也只使用终端。

在解释如何提取 MP3 之前,先简要解释如何使用youtube-dl或其他类似的实用程序,这样可以将所有信息集中在一个地方——尽管这方面已在其他帖子中介绍过。

答案1

您也可以直接从 YouTube 下载 mp3,而无需使用 ffmpeg 进行转换

youtube-dl --extract-audio --audio-format mp3 <video URL>

来自在线帮助:

-x, --extract-audio        convert video files to audio-only files (requires
                           ffmpeg or avconv and ffprobe or avprobe)

还要记住,youtube-dl 默认使用 avconv,因此您应该考虑在命令行中指定 avconv 或 FFmpeg。来自在线帮助:

--prefer-avconv                  Prefer avconv over ffmpeg for running the
                                 postprocessors (default)
--prefer-ffmpeg                  Prefer ffmpeg over avconv for running the
                                 postprocessors

通过查看,可以看到保留原始视频、调整音频的比特率或质量以及其他一些选项youtube-dl -h

答案2

从 YouTube 下载

安装youtube-dl来自 Ubuntu 官方存储库:

sudo apt-get install youtube-dl

或者正如官方自述文件所建议的那样使用curlwget。这将允许您升级sudo youtube-dl -U

要下载视频,请执行以下操作:

youtube-dl <url>

例如

youtube-dl http://www.youtube.com/watch?v=_z-hEyVQDRA

您还可以指定其他选项

-b            Best quality
-m            Mobile version
-d            High Definition
-g            Don’t download, just show the url
-c            Resume download of a video which was interrupted before
-w            Don’t overwrite existing file

man youtube-dl要在终端中执行,请执行完整的开关列表。

信息来自 这里

转换为 mp3

现在安装ffmpeg来自官方 repo。

sudo apt-get install ffmpeg

接下来,输入以下命令,确保 flv 文件已从 youtube 下载

ls *flv

这将列出您拥有的所有 flv 文件。您应该看到一个 flv 文件,其名称与您下载的 youtube 网址的“v”部分相同。

例如如果你下载了http://www.youtube.com/watch?v=_z-hEyVQDRA,那么你应该有一个名为_z-hEyVQDRA.flv

接下来你需要复制该文件名,然后将其放入 ffmpg 命令中,例如

ffmpeg -i <file name>.flv -acodec libmp3lame <song name>.mp3

因此对于此示例,您需要输入

ffmpeg -i _z-hEyVQDRA.flv -acodec libmp3lame MasterOfPuppets.mp3

一旦成功完成,您将获得您想要的 mp3 文件。

笔记

  • 为了进行清理,您可能需要键入rm _z-hEyVQDRA.flv以删除不再需要的 flv 文件。
  • 信息来自这里

答案3

这个问题已经回答了很多次了,但我想我应该添加一些真正有用的东西。在我看来,当你安装 youtube-dl 包时,这应该只是包含别名。

我将这些添加到我的 .bashrc 中。如果我想将视频下载为 mp3,我可以这样做,或者将整个播放列表下载为 mp3,我可以使用 mp3p,然后使用播放列表的 url。

它非常简单,并且通过在下载之间设置 30 秒间隔来尊重 YouTube 的洪水或机器人保护。这也有助于确保您的 IP 不会被禁止。

# youtube-dl alias
mp3 () {
    youtube-dl --ignore-errors -f bestaudio --extract-audio --audio-format mp3 --audio-quality 0 -o '%(title)s.%(ext)s' "$1"
}

mp3p () {
    youtube-dl --ignore-errors --sleep-interval 30 -i -f bestaudio --extract-audio --audio-format mp3 --audio-quality 0 -o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' "$1"
}

dlv () {
    youtube-dl --ignore-errors -o '%(title)s.%(ext)s' "$1"
}

dlp () {
    youtube-dl --yes-playlist --ignore-errors --sleep-interval 30 -o '%(playlist)s/%(title)s.%(ext)s' "$1"
}

答案4

对于此任务,我使用youtube-dl(依赖于ffmpeg)和以下选项以获得最佳效果。您可以将单首歌曲甚至整个播放列表的 URL 传递给它。

youtube-dl --prefer-ffmpeg --extract-audio --audio-format mp3 --audio-quality 0 --embed-thumbnail <VIDEO_SONG_OR_PLAYLIST_URL>

分解所提供选项的含义:

  • --prefer-ffmpeg— 告诉youtube-dl喜欢ffmpeg(而不是avconv)。
  • --extract-audio— 提取音频流并丢弃视频。
  • --audio-format mp3— 以 mp3 格式保存音频流。
  • --audio-quality 0— 以尽可能高的质量保存音频。此处的可能值为 0-9(您也可以传递明确的比特率,例如 128K)。如果您不传递此选项,youtube-dl 将使用默认值 5,这通常会导致音频质量低于使用值 0 时获得的音频质量。
  • --embed-thumbnail— (可选)将视频缩略图作为专辑封面元数据嵌入到已保存的音频文件中(将显示在媒体播放器应用程序中)。

相关内容