ytmdl:从 YouTube 下载歌曲并自动补齐元数据
2026/7/4 4:32:31 网站建设 项目流程

文章目录

  • ytmdl:从 YouTube 下载歌曲并自动补齐元数据

ytmdl:从 YouTube 下载歌曲并自动补齐元数据

ytmdl 是一个 Python 命令行工具,专门用来从 YouTube 下载音乐。它和普通下载工具的区别在于,下载完成后会自动从 iTunes、Spotify、Gaana 等平台抓取歌曲的元数据,包括艺术家、专辑名、发行日期、封面图等信息,一并写入音频文件。

目前这个项目在 GitHub 上获得了 3500 多个 Star。

用 YouTube 下载音乐的人大多遇到过同一个问题:下载下来的文件只有音频,没有歌曲信息。文件名可能是乱码,播放器里显示的是视频标题而不是歌名,专辑封面也没有。手动一个个去编辑这些信息很麻烦,尤其是批量下载的时候。

ytmdl 就是为了解决这个问题而做的。


工作原理

ytmdl 底层调用 youtube-dl 来获取 YouTube 视频的音频流。下载完成后,它会用你输入的歌曲名称去多个元数据源搜索匹配的结果。找到匹配的元数据后,自动写入到音频文件的 ID3 标签里。

整个过程中用户可以手动选择搜索结果,也可以用--quiet参数让工具自动选第一个匹配项。


支持的元数据源

ytmdl 支持从以下平台获取歌曲信息:

  • iTunes
  • Spotify
  • Gaana

可以通过配置文件指定使用哪些元数据源,也可以通过--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 ytmdl

Arch Linux 用户可以从 AUR 安装:

yay -S ytmdl

NixOS 用户:

nix-env -iA nixos.ytmdl

Windows 用户需要先安装 ffmpeg,然后用 pip 安装 ytmdl。ffmpeg 的二进制文件从官网下载后,把所在目录加到系统 PATH 里就行。

安装完成后,第一次运行 ytmdl 会自动在~/.config/ytmdl/下生成配置文件。


基本用法

下载一首歌:

ytmdl "歌名"

指定输出目录:

ytmdl "歌名" -o /path/to/save

从指定的 YouTube 链接下载:

ytmdl --url "https://youtube.com/watch?v=xxxxx"

批量下载,把歌名写在一个文本文件里,一行一首:

ytmdl --list songs.txt

跳过元数据,只下载音频:

ytmdl --skip-meta "歌名"

手动输入元数据信息:

ytmdl --manual-meta "歌名"

配置选项

配置文件位于~/.config/ytmdl/config,可以修改以下默认值:

配置项说明默认值
SONG_DIR歌曲保存目录当前目录
SONG_QUALITY音频质量320kbps
METADATA_PROVIDERS元数据源全部
DEFAULT_FORMAT默认格式mp3
ON_META_ERROR元数据写入失败时的处理exit
ITUNES_COUNTRYiTunes 搜索区域US
SPOTIFY_COUNTRYSpotify 搜索区域US

其他功能

ytmdl 支持音频裁剪。加--trim参数后,会用语音和音乐分割引擎识别出歌曲的起止位置,去掉开头和结尾的非音乐部分。这个功能在视频包含开场白或结尾杂音时比较实用。

工具还提供了日志级别控制,通过--level参数可以调整日志详细程度。

ytmdl 的开发维护状态正常,代码开源在 GitHub 上,采用 MIT 协议。

或结尾杂音时比较实用。

工具还提供了日志级别控制,通过--level参数可以调整日志详细程度。

ytmdl 的开发维护状态正常,代码开源在 GitHub 上,采用 MIT 协议。

[外链图片转存中…(img-N7uMtsAS-1782450554626)]

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询