見出し画像

DeepLでまるごと自動翻訳してKindle版原書を読む方法

会社の推薦図書にインサイドWindows第7版上・下があったものの、高っか!!なので英語の勉強も兼ねて原書を購入し、普段は素早く読むためにDeepL翻訳を駆使する方法をググった時の備忘録。実行環境はM2 MBAです。

(経緯)紙の値段は原書の4割UP、Kindleの値段は原書2倍以上なんだよね。なので原書のKindle版を買うのが一番安いから、この方法を探すに至った。

邦訳版

原書

規約的に大丈夫?

基本的に私的使用のための複製なら問題なしなので、個人利用だけにとどめよう。

それよりもPDF化したものをDeepLやオンラインHTML変換ツールにアップロードした場合の規約のほうが個人的には気になる。(ネットになさそう。)

必要なもの

  • DeepL(Starterプランだと丸ごと、無料プランだと数十ページ)

  • XnConvert

  • Monosnap

  • PDF2HTMLツール(オンラインやAdobe Acrobatなど)

手順ダイジェスト

やることはKindleをスクショして、画像をPDF化、翻訳する工程。Kindleに挿入されている画像も残したいのであればHTML化も考えよう。

  1. AppleScriptの作成と設定

  2. Kindleを表示

  3. スクリプト実行

  4. XnConvertで一括画像トリミング(+リサイズ)

  5. 画像ファイルをPDF化

  6. DeepL翻訳

  7. PDFファイルをHTML化(模索中)

手順

1.AppleScriptの作成と設定

はじめにKindleページを進めつつ、フルスクリーンのスクリーンショットする操作を行います。手作業だとめんどくせぇので、Macに標準実装されている簡易プログラミング言語であるAppleScriptを使い、操作を自動化します。

  1. フルスクリーンのスクリーンショットを撮影する

  2. Kindleを1ページずつめくる

  3. 適当なところに保存する

AppleScriptの作成・編集・実行はユーティティフォルダ下にあるスクリプトエディタ.appを使います。

スクリプトエディタのアイコン

スクリプトでKindleのスクショを撮るには「システム環境設定」のプライバシーとセキュリティにある「画面収録」と「アクセシビリティ」で「スクリプトエディタ」をそれぞれ許可にします。(表示されない場合は追加でスクリプトエディタ.appを選択する。)

プライバシーとセキュリティ

スクリプトはこちらからダウンロード。コピー&ペーストしたい方は次をコピペしてください。

-- ページ数
set pages to 92

-- 対象アプリ
--Kindleの場合。楽天koboでも可能。
set target to "Kindle"

--保存フォルダ
--保存したいフォルダをあらかじめ作成して入力
set savepath to "~/Pictures/KindlePicturing/"

--開始ページ番号
set spage to 1

--めくり方向(1=左、2=右)
set pagedir to 2

--ページめくりウェイト(sec)
set pausetime to 2.0

--切り抜きサイズ(中心から)
--次の工程で一括トリミング・リサイズするので0のままでOK
set cropx to 0
set cropy to 0

--リサイズ横
set resizew to 0

--以下スクリプト本体
if pagedir = 1 then
	set keychar to (ASCII character 28)
else
	set keychar to (ASCII character 29)
end if

if target is not "" then
	tell application target
		activate
	end tell
end if

delay pausetime

repeat with i from spage to pages
	-- 9999ページまで対応
	if i < 10 then
		set dp to "000" & i
	else if i < 100 then
		set dp to "00" & i
	else if i < 1000 then
		set dp to "0" & i
        else if i < 10000 then
		set dp to "" & i
	end if
	
         -- スクショした画像名の設定
	set spath to (savepath & "p" & dp & ".png")
	
                -- "screencapture "の空白はshell実行にするのに必要
	do shell script "screencapture " & spath
	
	if cropx is not 0 and cropy is not 0 then
		if resize is not 0 then
			do shell script "sips -c" & cropy & "" & cropx & "--resampleWidth" & resizew & "" & spath & "--out" & spath
		else
			do shell script "sips -c" & cropy & "" & cropx & "" & spath & "--out" & spath
		end if
	end if
	
	tell application "System Events"
		keystroke keychar
	end tell
	
	delay pausetime
end repeat
activate

2.Kindleを表示

次のような配置でKindleとスクリプトを表示させます。

スクリプトとKindleの表示位置

3.スクリプト実行

フルスクリーンのスクリーンショットを撮影している関係で、実行中はMacの操作をしてはいけません。画像トリミング作業で一括トリミングができなくなります。終わるまで待機しましょう。

4.XnConvertで一括画像トリミング(+リサイズ)

XnConvertで一括画像トリミング(+リサイズ)を行います。

トリミング位置を設定

Monosnapはトリミング位置を測るための補助ツールです。command + Shit + 4でも同じことができるので、使いやすい方でトリミング位置をXnConvertに設定、実行しましょう。

5.画像ファイルをPDF化

  1. 画像ファイルをすべて選択し、右クリックor二本指でタップ

  2. クイックアクションから「PDFを作成」をクリックして作成する

「PDFを作成」の位置

プレビューのプリントからPDFに保存で作ったPDFは余白があるので、クイックアクションから「PDFを作成」を使う方がよさげ。

6.DeepL翻訳

DeepLのアプリからアップロードします。文字を抽出して、翻訳されて返ってきます。

DeepL翻訳アプリ

X.PDFファイルをHTML化

※1-6で得たPDFを以下の方法でHTML化すると、元が画像ファイルなのでテキスト抽出されず、画像だけのページが返ってくる。1-6とXの間に別工程が必要。

これに記載している通り、HTML化して無制限翻訳すればペーパーバックも怖くなくなると思うんですね。しかしKindleを私的複製したものを変換のためにアップロードしてもいいのか?が不明なので、可能なかぎりオフラインでできる方法をググってみたのでまとめる。

結論から言えば、Appleシリコン搭載Macユーザーはシェアウェアを使うかオンラインツールを使うのが良さそう。Intel系MacやWindowsが使える方や実機でUbuntu(などのDebian系OS)がある方は手元でできるかも?

利用するのはpdf2htmlEXで、これの現状は次のとおり。

■homebrewからインストール不可。リポジトリから削除されている。pdf2htmlEXの公式にある通り実行するとエラーがでる。

% brew install pdf2htmlex                
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
check-jsonschema

Error: pdf2htmlex has been disabled because it has an archived upstream repository!

■dockerイメージはダウンロードできない。

 % docker pull pdf2htmlex/pdf2htmlex      
Using default tag: latest
Error response from daemon: manifest for pdf2htmlex/pdf2htmlex:latest not found: manifest unknown: manifest unknown

■debianイメージはamd64のCPUでないとインストール不可。(docker上のUbuntuイメージから実行)

# dpkg -i pdf2htmlEX-0.18.8.rc1-master-20200630-Ubuntu-bionic-x86_64.deb
dpkg: error processing archive pdf2htmlEX-0.18.8.rc1-master-20200630-Ubuntu-bionic-x86_64.deb (--install):
 package architecture (amd64) does not match system (arm64)
Errors were encountered while processing:
 pdf2htmlEX-0.18.8.rc1-master-20200630-Ubuntu-bionic-x86_64.deb

なので、Appleシリコン搭載Macは現状これを使えない。方法がわかったら後述したい。

参考サイト


この記事が気に入ったらサポートをしてみませんか?