我有一个包含大约 50 首歌曲标题的文本文件。
我正在寻找一个 CLI 实用程序,它可以从文本文件中获取每个标题,在 YouTube 上搜索它,获取前 4 个视频链接,然后下载该链接的音频。
到目前为止,我尝试过youtube-dl
,那里有一个搜索功能,但它只返回元数据,我似乎找不到那里的视频链接。
答案1
- WAV 不是现代音频容器格式;不太清楚为什么你想要一个仅支持恒定速率和块大小音频编解码器的容器格式。但由于这对于流媒体服务来说是一件非常尴尬的事情,因此您必须下载音频并将其转码为某种此类编解码器,然后将其放入 WAV 容器中。幸运的
yt-dlp -x --audio-format wav
是,它为你做到了。 (yt-dlp
是 的一个分支youtube-dl
,还没有检查过。)。再次强调,如果需要 WAV,请修复您对该音频所做的任何操作,而不是转码为适合 WAV 的编解码器,这通常意味着千兆字节的未压缩音频。 yt-dlp ytsearchN:Search string
将获得“搜索字符串”的前 N 个结果(youtube-dl
当前没有该功能,您需要yt-dlp
)- 将所有内容放在一起,
ytdlp -x --audio-format wav ytsearch:YOURTERMSHERE
可以为每个 YOURTERMSHERE 搜索词执行您想要的操作。 - 要逐行读取完整文件,只需将其通过管道传输到 stdin
yt-dlp
并使用--batch-file -
:
抢声.sh:
#!/usr/bin/env zsh
sed 's/^/ytsearch4:/' < $1 | yt-dlp --batch-file - -x --audio-format wav
(未经测试)
chmod 755 grabsound.sh
允许您直接运行该程序,然后您就可以执行/path/to/grabsound.sh yourtextfile.txt
.
再次强烈建议你不是使用WAV。即使您打算稍后转码为不同的格式,您最终在这里做的事情也是不必要的,因为您最好更快地即时解码原始音频,而不是转码为(主要是未压缩的 PCM) )WAV。