跳到主要内容
OSSpark

搜索文章

993 字
5 分钟

在 Mac 上把已购机核有声书保存为 MP3

目录

在机核买了有声书,想在 Mac 上留一套按章节整理的音频文件,可以试试 gcoredl-macos。给它一个专辑 ID,它会按专辑顺序保存 MP3,并把曲目号、标题和专辑信息写进文件。

它是一个非官方命令行工具。按项目说明,需要 macOS 13 或更新版本,Intel 和 Apple Silicon 用不同的程序。处理受保护章节时,还要在浏览器里登录机核,用开发者工具复制自己的登录令牌。

图 001 MacBook 和桌上的黑色头戴式耳机

图 001 MacBook 与头戴式耳机。摄影 Moritz Kindler,Unsplash License。

从专辑 ID 到下载#

按项目说明选择对应的可执行文件。Apple Silicon 对应 gcoredl-darwin-arm64,Intel 对应 gcoredl-darwin-amd64。下载后可按项目说明赋予文件执行权限,再用 version 确认程序能运行。项目也提供源码构建步骤,可把程序编译为 gcoredl。

项目仓库与安装说明

先用 inspect 看章节列表和媒体类型。遇到受保护章节,按项目说明从已登录的网页复制令牌,运行 login,在两个隐藏提示里各粘贴一次。工具会把令牌存进 macOS 钥匙串。令牌只粘贴到隐藏提示里,别放进命令参数或截图。随后用 auth-check 检查第一章需要授权的音频能否拿到播放地址。

图 002 从查看章节、登录授权到下载的操作示意

图 002 受保护章节的操作顺序。只含公开章节的专辑可直接下载。

下面以本地程序名 gcoredl 为例。把 123 换成你要处理的专辑 ID。若直接使用下载的二进制,把命令里的 ./gcoredl 换成实际文件名。

Terminal window
./gcoredl inspect -album 123
./gcoredl login
./gcoredl auth-check -album 123
./gcoredl download -album 123

受保护章节能否下载取决于服务端给当前账号的授权。若返回 401 或 403,先核对登录状态和专辑访问权。auth-check 通过后,整张专辑的结果仍以下载结束时的汇总为准。用完可以执行 ./gcoredl logout,移除工具保存的凭证。

下载后会得到什么#

默认输出目录跟着专辑 ID 走,例如 output-123/。章节会按顺序命名为 001 - 章节标题.mp3 这样的文件。标题、作者、专辑和曲目号等信息会写入 ID3 标签。有可用封面时,工具也会把封面写入标签。源音频已经是 MP3 就直接处理,遇到需要转换的非 MP3 音频才会调用 ffmpeg。

图 003 示例输出目录和单个 MP3 文件内的标签字段

图 003 文件名和标签示意。示例专辑及章节名为占位文字。

早期修复后的实际运行曾保存一套四章的样本,系统工具识别到了 MP3 和 ID3 标签。那次运行早于 v2.1.1 的钥匙串变更。新版的真实账号下载、Apple Silicon 真机运行和播放器显示效果还有待复测。

下载中断后怎么接着做#

保留原输出目录,重新运行同一条下载命令。工具会按文件名跳过已存在的最终 MP3,其余章节重新下载。每章先写临时文件,完成转换和标签处理后才改为最终文件名。

图 004 重跑时跳过已有最终 MP3 并重新下载未完成章节

图 004 重跑以章节为单位。图中三章是示例。

重跑会从头下载未完成的章节,也只按路径判断某章是否已有最终文件。如果你发现某个已有 MP3 损坏,可以先把它移出输出目录,再重跑该专辑。

工具依赖机核网页使用的接口,网页变动可能影响授权或下载。保存和使用音频时仍需遵守平台条款和内容权利要求。