缘由

个人时不时的会在Audible网站买本有声书来听,既练听力也为消遣。有鉴于Amazon过去曾数次被爆直接删除用户图书,DRM保护也给平常使用增加了不便,所以还是希望能去掉限制,真正将付费购买的东西掌握在自己手上。

前两天机缘巧合下读到了移除 Audible 有聲書的 DRM,看项目代码才后知后觉伟大的FFmpeg项目早在2015年便已经支持了Audible的AAX格式转码,照着该博文实践并完善了一下Mac下的实作,总算可以转换出令自己满意的m4b文件导入到iTunes里面好好收听了。

DeDRM

准备工作

  • 使用HomeBrew安装需要使用的应用

    1
    
    brew install chromedriver ffmpeg mp4v2
  • pip安装Selenium,这里必须是pip2,因为下面要用的audible-activator是Python 2项目

    1
    
    sudo pip2 install selenium requests
  • 从Audible网站下载购买的有声书AAX文件,为了音质右上角的 Audio Quality 最好选择 Enhanced

获取Audible的激活码

audible-activator是个Python 2脚本,可以获取个人的Audible账号激活码,FFmpeg需要用来去除文件的DRM保护。

  • 安装

    1
    2
    3
    4
    
    git clone https://github.com/inAudible-NG/audible-activator.git
    cd audible-activator
    # sed替换项目代码的chromedriver文件路径,这里也可以将chromedriver复制到该目录
    sed -i '' 's,chromedriver_path = "./chromedriver",chromedriver_path = "/usr/local/bin/chromedriver",' audible-activator.py
  • 运行

    1
    2
    3
    4
    5
    
    $ ./audible-activator.py
    Username: 输入账号邮箱
    Password: 输入账号密码
    [*] Player ID is 2qwedl5r123abc/vhijkkK/abcd=
    activation_bytes: 这里获得了激活码,记下来备用

去除DRM,并转码成m4b

原博文上提供的项目是将目标文件转成了m4a,我在测试时发现了几个问题:

  1. m4a在导入到iTunes时会置入 Music 栏目而不是 Audiobooks
  2. m4a不会记忆文件的播放位置
  3. 最终文件没有将封面图片写入tag,需要手动修改

相应的解决方案:

  • 问题1、2很简单,只要将文件后缀名从m4a改到m4b即可
  • 问题3的原因是FFmpeg现在不能直接将Artwork写入mov文件,参见相关issue。所以需要换一种方法,这里使用mp4v2项目里的 mp4art 命令写入Artwork。

于是便有了AAXtoM4B这个fork项目。

1
2
3
  git clone https://github.com/jostyee/AAXtoM4B.git
  cd AAXtoM4B
  echo "$上面获得的激活码" > .authcode

然后就可以将下载好的有声书AAX文件一次性转换好。

1
ls ~/Downloads/audible.com/*.aax | xargs ./AAXtoMP3 -e:m4b -c

最后将目录拖入iTunes完成导入,即可随时享受。 iTunes

相关阅读


UPDATE

History

Version Action Time
1.0 Initial commit Nov 23, 2017
1.1 Update upstream repo usage Apr 18, 2018
2.0 Rewrite codes May 26, 2018