文章目录ytmdl从 YouTube 下载歌曲并自动补齐元数据ytmdl从 YouTube 下载歌曲并自动补齐元数据ytmdl 是一个 Python 命令行工具专门用来从 YouTube 下载音乐。它和普通下载工具的区别在于下载完成后会自动从 iTunes、Spotify、Gaana 等平台抓取歌曲的元数据包括艺术家、专辑名、发行日期、封面图等信息一并写入音频文件。目前这个项目在 GitHub 上获得了 3500 多个 Star。用 YouTube 下载音乐的人大多遇到过同一个问题下载下来的文件只有音频没有歌曲信息。文件名可能是乱码播放器里显示的是视频标题而不是歌名专辑封面也没有。手动一个个去编辑这些信息很麻烦尤其是批量下载的时候。ytmdl 就是为了解决这个问题而做的。工作原理ytmdl 底层调用 youtube-dl 来获取 YouTube 视频的音频流。下载完成后它会用你输入的歌曲名称去多个元数据源搜索匹配的结果。找到匹配的元数据后自动写入到音频文件的 ID3 标签里。整个过程中用户可以手动选择搜索结果也可以用--quiet参数让工具自动选第一个匹配项。支持的元数据源ytmdl 支持从以下平台获取歌曲信息iTunesSpotifyGaana可以通过配置文件指定使用哪些元数据源也可以通过--itunes-id或--spotify-id参数直接指定 ID 进行精确查找。输出格式默认输出 mp3 格式也支持 m4a 和 opus。可以通过--format参数或配置文件来修改。ytmdl 还支持动态目录结构。比如配置SONG_DIR为/音乐$Album-Artist-Title下载的文件就会自动按「专辑/艺术家/歌名.mp3」的层级存放。播放列表支持除了单首歌曲ytmdl 也能处理 YouTube 播放列表。直接把播放列表的 URL 当作参数传入即可。还可以用--pl-start、--pl-end、--pl-items来指定下载范围比如只下载列表中的第 1、3、5 首。下载播放列表时如果某首歌失败了加--ignore-errors参数可以跳过错误继续下载后面的。安装方式ytmdl 支持多种安装方式。通过 pip 安装pip install ytmdlArch Linux 用户可以从 AUR 安装yay -S ytmdlNixOS 用户nix-env -iA nixos.ytmdlWindows 用户需要先安装 ffmpeg然后用 pip 安装 ytmdl。ffmpeg 的二进制文件从官网下载后把所在目录加到系统 PATH 里就行。安装完成后第一次运行 ytmdl 会自动在~/.config/ytmdl/下生成配置文件。基本用法下载一首歌ytmdl 歌名指定输出目录ytmdl 歌名 -o /path/to/save从指定的 YouTube 链接下载ytmdl --url https://youtube.com/watch?vxxxxx批量下载把歌名写在一个文本文件里一行一首ytmdl --list songs.txt跳过元数据只下载音频ytmdl --skip-meta 歌名手动输入元数据信息ytmdl --manual-meta 歌名配置选项配置文件位于~/.config/ytmdl/config可以修改以下默认值配置项说明默认值SONG_DIR歌曲保存目录当前目录SONG_QUALITY音频质量320kbpsMETADATA_PROVIDERS元数据源全部DEFAULT_FORMAT默认格式mp3ON_META_ERROR元数据写入失败时的处理exitITUNES_COUNTRYiTunes 搜索区域USSPOTIFY_COUNTRYSpotify 搜索区域US其他功能ytmdl 支持音频裁剪。加--trim参数后会用语音和音乐分割引擎识别出歌曲的起止位置去掉开头和结尾的非音乐部分。这个功能在视频包含开场白或结尾杂音时比较实用。工具还提供了日志级别控制通过--level参数可以调整日志详细程度。ytmdl 的开发维护状态正常代码开源在 GitHub 上采用 MIT 协议。或结尾杂音时比较实用。工具还提供了日志级别控制通过--level参数可以调整日志详细程度。ytmdl 的开发维护状态正常代码开源在 GitHub 上采用 MIT 协议。[外链图片转存中…(img-N7uMtsAS-1782450554626)]