从 YouTube 下载 & 分割音乐
最近打算把某个小孩玩具改造成MP3播放器(其内置音乐已经听厌了),所以需要一些 mp3 音频。
YouTube上有大量的音乐合集视频,也有章节信息,下载下来分割一下就行了,比去各种下载站找资源更高效。
下载 YouTube 音频
之前下载 YouTube 视频用的是 youtube-dl
,但现在 homebrew 和 pip 都下载不到最新的了,repo里贴的下载链接也 access denied。
有个派生版本 yt-dlp
可以从 homebrew 安装,就用它了。参数跟 youtube-dl 基本一致,加上 -x
(--extract-audio
) 只下载音频。
brew install yt-dlp
yt-dlp -x https://www.youtube.com/watch\?v\=LEIukRNZSCY
得到一个 1个多小时的 opus 音频文件。
分割音频
credit: https://unix.stackexchange.com/a/400032/584020
从视频介绍里复制出章节信息,用 VSCode / Sublime 等编辑器可以快速处理成下面这种格式。
list.txt:
0:00 2:35 海底
2:35 6:32 我看到了光
6:32 9:07 美与节拍
...
再新建一个 awk progfile。
下面脚本里没有给文件名转义,所以上面的名字里注意下不要有特殊字符,或者改脚本。
上面的音频文件改成 input.opus
,或者改脚本里的文件名。
prog.txt:
{
# make ffmpeg command string using sprintf
cmd = sprintf("ffmpeg -i input.opus -ss %s -to %s %s.mp3", $1, $2, $3)
# execute ffmpeg command with awk's system function
system(cmd)
}
然后执行 awk 就得到分割后的 mp3
awk -f prog.txt list.txt