seal 中文文档 下载 App

mutagen 元数据引擎 — Seal 怎么把封面和信息写进音频文件

mutagen 是什么

mutagen 是一个 Python 库,专门处理音频文件的元数据标签读写。它几乎覆盖了所有主流音频格式的标签规范:MP3(ID3v2)、AAC/M4A、FLAC、Opus、WAV、WMA 等。

Seal 作为一个安卓应用,内部用 Kotlin 写 UI,但 yt-dlp 内核本身就是 Python 项目——Seal 通过 youtubedl-android 库把 yt-dlp 和 mutagen 一起打包进了安卓包内。下载完成后 Seal 可以调用 mutagen 在本机直接写入标签,不需要上传任何数据到远程服务。

Seal 具体写了什么

当音频文件下载完成时,Seal 会调用 mutagen 依次写入以下字段:

字段来源说明
标题(Title)yt-dlp 解析到的视频标题直接用原始标题,不做截断
艺术家(Artist)上传者/频道名如果视频是多人合作,可能取第一个上传者
专辑(Album)播放列表标题或空v1.12.0 起也写入了专辑字段
专辑艺术家频道名方便在播放器里按艺人分组
封面(AlbumArt)视频封面图的 JPG 版嵌入音频文件本身,播放器打开直接显示
曲目号播放列表位置从 0 开始的顺序

为什么这在手机下载器里少见

大多数手机端视频下载器在下载音频时不会处理元数据——它们要么存成不带标签的原始文件,要么只改文件名(比如 "video123.mp3")。Seal 能做到完整标签写入,得益于两个条件:

  1. yt-dlp 内核在解析阶段已经拿到了视频站的结构化元数据(标题、上传者、封面图 URL)
  2. mutagen 可以在安卓设备本地直接读写几乎所有音频格式的标签(大多数同类库要么不支持安卓,要么只支持少数格式)

封面强制写入可以关掉

v1.10.0 起,"强制内嵌元数据"变成了可选设置。某些场景你可能不想让音频文件自带封面(比如想用自己找的封面替换),可以在设置里关掉。

关掉后下载的音频文件还是有标题和艺术家标签,只是不嵌封面图。

继续到 播客归档实战 看这套能力在真实场景里怎么用,或跳 MKV 重封装 了解 v1.12.0 起默认改容器格式的原因。