对于一个音乐文件和一个包含每个曲目的时间戳和名称的文本文件,是否有一个程序可以正确分离和命名每个曲目?
该文件不是翻录的 CD(cue、flac 等)。我有从 youtube 音乐文件中提取的连续普通作品文件,以及 youtube 上列出的其内容的文本列表。
(最好是 GUI)。
我在使用 Kubuntu 22.04。
答案1
人们不应该下载/提取 YouTube 音频,然后尝试根据单独的列表对其进行拆分,而应该考虑到此类音乐视频文件可能有章节,每个曲目都有一个单独的章节(就像有问题的文件一样)。
有一个 youtube-dl fork,它有一个单独下载章节的选项(实际上它还会下载完整的音频,然后将其拆分)。
它被称为yt-dlp。
为了下载单独音轨中的最佳 m4a 音频:
yt-dlp -f ba[ext=m4a] --split-chapters URL
首先列出可用的格式:
yt-dlp -F URL
结果是这样的:
[youtube] QsmFrf-1wYE: Downloading webpage
[youtube] QsmFrf-1wYE: Downloading android player API JSON
[info] Available formats for QsmFrf-1wYE:
ID EXT RESOLUTION FPS CH │ FILESIZE TBR PROTO │ VCODEC VBR ACODEC ABR ASR MORE INFO
──────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb2 mhtml 48x27 0 │ mhtml │ images storyboard
sb1 mhtml 80x45 0 │ mhtml │ images storyboard
sb0 mhtml 160x90 0 │ mhtml │ images storyboard
599 m4a audio only 2 │ 14.00MiB 31k https │ audio only mp4a.40.5 31k 22k ultralow, m4a_dash
600 webm audio only 2 │ 17.51MiB 39k https │ audio only opus 39k 48k ultralow, webm_dash
139 m4a audio only 2 │ 22.18MiB 49k https │ audio only mp4a.40.5 49k 22k low, m4a_dash
249 webm audio only 2 │ 25.65MiB 56k https │ audio only opus 56k 48k low, webm_dash
...
然后按章节分割下载所需的音频格式:
yt-dlp -f 139 --split-chapters URL
为了使该过程自动化一点,我安装了xclip
。快捷方式可以触发整个过程(首先选择 url,然后使用快捷方式),命令如下:
konsole --noclose -e yt-dlp -f ba[ext=m4a] --split-chapters $(xclip -o)
或者可以创建桌面/面板启动器,包含相同的命令:
[Desktop Entry]
Exec=konsole --noclose -e yt-dlp -f ba[ext=m4a] --split-chapters $(xclip -o)
Icon=im-youtube
Name[en_US]=Download youtube chapters
Name=Download youtube chapters
将其拖到 Plasma 面板上后,只需选择 URL 并单击按钮:
Plasma 更新:在 Plasma KDE 中,xclip
实际上不需要,如果剪贴板操作被使用。更多详细信息请参阅我的相关回答这里和这里。