移除 Audible 有聲書的 DRM

之所以想把 Audible 收藏備份,是早前在推上看到這篇 xkcd :

Steal this comic

有些好書你真的只能在有 DRM 的市場找到,而我們當然也想支持作者和出版社,所以只好先買書再用麻煩的方法解除 DRM 了。要留意以下的方法並不是破解 Audible DRM ,只是用和 Audible app 一樣的方法下載和解碼,再轉換檔案而已。

下載 Audible 有聲書

要移除 DRM ,首先當然要下載有 DRM 的檔案。Audible 除了由 app 播放外,也支援下載有聲書到 iTunes 使用。登入 Audible 後在 Library 裡可以看到 "Download" 的選項 (記得把 Audio Quality 設為 Enhanced),點它就會下載 aax 格式的 DRM 有聲書。

取得 Audible 認證碼

如果把這些有聲書匯入到 iTunes 它會叫你登入 Audible 再取得認證碼。同樣我們要轉換格式也要先認證。到 audible-activator,跟著它的 README 登入就可以了。

  1. 複製 audible activator: git clone https://github.com/inAudible-NG/audible-activator.git
  2. 安裝需要的 python 庫: pip install requests selenium
  3. (如果還沒有) 安裝 Chrome 瀏覽器和 chromedriver
  4. 登入 ./audible-activator.py

如果登入不成功,可以試試它的 debug 模式手動登入 (例如要 2FA 或 captcha 時) ./audible-activator.py -d。成功後會得到一組認證碼,記下來之後使用。

轉換檔案

接著就可以移除 aax 的 DRM 了。建議使用 KrumpetPirateAAXtoMP3 。它轉換 AAX 時會保留書的章節,將每一章寫作獨立的 MP3。在它之上我寫了 AAXtoM4A,它會直接把 AAX 無損解碼後寫成 AAC,速度和效果比轉換為 MP3 更好。

  1. 先 clone 其中一個程式:git clone https://github.com/KrumpetPirate/AAXtoMP3.gitgit clone https://github.com/siuying/AAXtoM4A.git
  2. 轉換檔案:AAXtoMP3 <認證碼> {INPUT_FILES}AAXtoM4A {INPUT_FILES}
    1. 想一次過轉換一大推檔案可以用 xargs:ls -1 *.txt | xargs ./AAXtoM4A <AUTHCODE>
    2. 不想每次也手動打認證碼的話,可以將認證碼寫到一個叫 .authcode 的檔案上,儲存到當前目錄資料夾上
  3. 轉換後就會以作者 > 書名 > 章節的格式寫下 mp3 / m4a 格式了

看到一堆沒有 DRM 可以安全備份的檔案感覺真好。這過程第一次設定會頗麻煩,但之後只要行一個 command line 指令就行了,希望記下來會幫到同樣有需要的朋友。