pretty code

2021年12月29日 星期三

最有才的解 DRM 方式

今天 Google 跳出來了一篇文章《Quick and dirty way to rip an eBook from Android》,裡面只是簡單寫個 shell script 再加上 adb command 就把電子書再轉成掃瞄圖檔的電子書。

原理就是利用抓圖及觸發觸控翻頁,就可以輕鬆的抓完整本書囉。

備註:據我實驗的結果,圖片品質、執行時間及校稿時間都是此方法的致命傷,玩玩可以,但不實用,直接買 Kobo 及 Google 的書就好了。另外,某些國外資訊類的電子書都是無 DRM 的,購買後都可以直接下載,想在哪看就在哪看。

2021/12/30 更新

經實測確實還蠻好用的,不過要注意左右邊座標要設偏一點,否則流式 EPUB 的書有可能剛好點到註解,整個頁面就跳轉到亂掉了XD

另外,抓圖的那台機器,如果速度太慢,要調整一下 delay 值,我也遇到點了後已經 delay 4 秒,但翻頁還是翻不過去,是哪台機器就不說了XD

雖然用手機應該不會有這些問題,但手機螢幕如果不是 4 比 3,抓圖比例也怪,故也是兩難呀!

2021/12/31 更新

我的天呀,居然還有點一頁會跳兩頁的書,難怪沒有人想用這個方法!也許用 PC 閱讀軟體才是最好的方式,程式好寫又簡單不需要另外一台機器,不過,據我先期驗證的結果,某些書商版式的書,點開時不知道是在做解密還是幹嘛,光 delay 可能都不只要 4 秒,故這個方法,後續還要校稿,自動化的意義就不大了。

結論:這還是一個很有才的方式,但因為書商閱讀軟體寫的不好,還是需要後續校稿,故這個方式不實用。

2021/12/31 下午 更新

雖然覺得不實用,但還是想知道使用 PC 實作起來會如何?下午花了約快 2 個小時使用 Golang 實作它,大部份的時間都花在找套件。

原本以為 Node.js 會比較容易,但在編譯時還是遇到一些問題,Golang 一開始也是遇到問題,在換了作者建議的 C Compiler 後,便順利的編譯成功。

看來要在 Windows 下實作,呼叫 Win32 API 還是比較快,記得以前用 C 只需要不到 40 行即可。

目前覺得用 PC 才是唯一的最佳解,雖然也是不好用就是。另外我也找到了偶爾會 delay 的原因了,有些書商會定時在背景同步,如果同步的流程做得不好,確實有可能會造成翻頁 delay,不論是在 PC 或 Android 皆有可能。

花費了那麼多功夫測試,還不如把時間拿來多看幾本書,如果可以有一台完美的開放式閱讀器,就什麼問題都解決了。

沒有留言: