본문 바로가기
정보공유/알면 좋은 것들

킨들 클라우드 리더 pdf로 변환하기(kindle cloud reader to pdf)

by 크라크라 2018. 3. 2.

# 왜?


 아마존은 현재 세계에서 가장 유명한 유통 사이트인데요, 책을 전자책(킨들)의 형태로 제공하는 사이트 중에서도 가장 크다고 볼 수 있습니다. 그런데 킨들을 읽기 위해서는 주로 킨들 파이어 등으로 대표되는 전자책 리더 또는 핸드폰을 사용합니다. 물론 데스크탑 앱도 제공하지요. 하지만 데스크탑 앱의 경우에는 국가가 맞지 않으면 설치를 못하게 되어있습니다. 그래서 웹을 통해서 킨들을 종종 보고는 합니다만은 아무래도 이런 자료를 유출하지는 않더라도 언제든지 오프라인에서 보고 싶다는 생각을 하게 되었습니다. 그래서 여기 저기 찾다보니까 어떤 능력자분께서 할 수 있는 방법을 올려두었더라구요. 사실, 조금 귀찮은 일이고 어쩌면 아마존의 지역을 미국으로 바꾸는 것이 훨씬 쉽고 간단할 수 있습니다. 이건 다른 글에서 다시 정리하도록 하겠습니다.

(read.amazon.com 을 방문해보세요)



*** 주의할 것: 모든 파일이 다 되지는 않습니다. 안될 수도 있습니다!!!



# 무엇이 필요한가? 


(1) Node.js 설치

(2) 각종 라이브러리 설치

(3) read.amazon.com 에서 책 다운로드 받기 및 파일 경로 알기

(4) 제가 제공한 경로에서 파일 다운받기

(5) main.js 파일 수정 및 실행하기

(6) Calibre 라는 프로그램 설치 => pdf 로 변환


여기에서 기존에 Node.js가 깔려있으신분들은 (1)~(2)는 생략하셔도 됩니다. (6)의 경우는 이번 포스팅에서 얘기하지는 않겠습니다. 생성된 html 파일을 그냥 microsoft edge 또는 chrome 으로 바로 보시면 pdf 처럼 볼 수 있습니다.




(1) Node.js 설치


https://nodejs.org/en/ 

위의 사이트를 방문하시면 바로 Node.js 설치파일을 받으실 수 있습니다. 딱히 최신 릴리즈가 필요하진 않으므로, 가장 많이 추천되는 버전을 받아줍니다. 2018.03.02일 기준으로 8.9.4 버전이 되겠네요. 받으신다음에는 아무것도 고민할 필요없이 다음을 계속 눌러주면서 설치해주시면 되겠습니다.



(2) 각종 라이브러리 설치


 이런 과정을 진행해주는 것이 자바스크립트라는 프로그래밍 언어로 된 것을 실행시키기 위해서인데요, 사용하는 여러 라이브러리들이 필요합니다. 

여기에서는 그 과정을 매우 간단하게 해주는 것이 npm 이라는 것인데요. 이것은 최근에는 자바스크립트 설치를 하면 자동적으로 설치가 됩니다. 


이것을 어떻게 확인할 수 있느냐? 


윈도우 버튼을 누르시고, "Node.js command prompt"라고 된 것을 실행시키시고 다음 두 줄을 한 번씩 쳐보시면 됩니다.


node -v

npm -v 





정상적으로 버전이 숫자로 나오는 것을 확인하시면 여기에서 다음 두 줄을 각각 실행해줍니다. 


npm install osenv

npm install sqlite3 


그럼 여기까지 기본적인 준비가 끝났습니다. 



(3)read.amazon.com 에서 책 다운로드 받기


read.amazon.com 은 킨들 클라우드 리더입니다. 여기에 접속한 다음, 자신의 아마존 아이디로 로그인을 하면, 그동안 해당 계정으로 모은 모든 전자책이 표시됩니다. 




 여기에서 Download & Pin Book을 클릭하면 Offline에서도 볼 수 있도록 해당 책을 다운로드해줍니다. (Amazon Kindle Cloud Launcher 라는 크롬 익스텐션을 설치하면 볼 수 있습니다.  https://chrome.google.com/webstore/search/kindle%20cloud%20reader)


 이렇게 다운로드한 책들은 모두 하나의 파일로 저장되게 됩니다. 다운로드 한 책이 몇권이든 상관없이 말이죠. 우리는 그 파일을 읽어서 변환해야 하므로 어디에 있는지 파일의 위치를 알아야합니다. 


 인터넷 익스플로어, 구글 크롬, 크로니움 등의 위치가 모두 다르다고 합니다. 운영체제에 따라서도 다르고요. 이것을 만든 분께서는 운영체제까지를 고려해둔 상태지만 주소가 안맞는 상태로 일단 Window+ Google Chrome을 기준으로 설명하겠습니다. 이런 경우에 파일은 일반적으로 다음 위치에 있습니다.


 C:\Users\<자기 파일의 계정명>\AppData\Local\Google\Chrome\User Data\Default\databases\https_read.amazon.com_0

그 폴더 안에 들어가보면 파일이 두 개가 있는데, 우리에게 필요한 파일은 용량이 큰 파일입니다. 파일명은 컴퓨터마다 다른 것 같으니 각자 그에 맞는 파일명을 찾으시면 됩니다. 저 같은 경우에는 파일명이 2군요. 해당 파일의 위치와 파일명을 기억해두시고 다음으로 넘어갑시다.





(4) 파일 다운 받기


https://github.com/d10r/kindle-fetch 


이 경로로 가시면 인터넷 세상의 어떤 능력자분이 Amazon Kindle 파일의 저장구조를 파악해서 Html 로 바꾸는 것을 만들어서 올려놓았습니다.(물론 이 분도 다른 분이 작성한 것을 수정한 것이지만요) 이 페이지에 가셔서 Clone or Download 라는 초록색 버튼을 클릭하고, Download Zip 버튼을 클릭합니다. 알집을 다운 받았으면, 그 알집의 압축을 풀어줍시다. 



01



(5) main.js 파일 수정하기


 압축을 풀고 폴더 안으로 들어가면 main.js 라는 파일이 보입니다. 이 파일을 notepad 나 아무거나 텍스트 편집기로 열어줍니다. 메모장으로 열면 줄 바뀜이 제대로 안되어 보기가 힘드니, 되도록이면 그래도 Notepad++, AcroEdit, UltraEdit, Sublime Text 중에서 하나를 사용하는 것을 추천드립니다. 


파일을 열면 252번째줄부터 260번째 줄까지 아래와 같은 코드가 있는데요. 원래는 파일명을 받기 위한 것이었으나, 완전히 경로를 정해서 쓰는 것을 권합니다.(능력자분들께서는 알아서 고쳐서 쓰시길..)


if(process.argv.indexOf('--help') != -1) {

    usageExit(0)

}


if(process.argv.indexOf('-f') != -1) {

    KINDLE_DB = process.argv[process.argv.indexOf('-f') + 1];

} else {

    usageExit(1);

}


그리고 바로 저 252~260번째 줄을 지우던지 혹은 주석처리를 하시고 (주석은 해당 줄의 맨 앞에 // 을 입력하면 됩니다.)

다음처럼 아까 파악해놓은 amazon에서 kindle 파일을 저장해놓은 위치 + 파일명을 입력해줍니다. 따옴표 빼먹으시면 안됩니다. 주의할 점은 파일명을 입력할 때 바로 복사해서 넣으면 안되고, 복사한 경로에 꼭 \ 하나당 \ 하나씩 추가해주시기 바랍니다.


var KINDLE_DB = 'C:\\Users\\Jin\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\databases\\https_read.amazon.com_0\\2'


마지막으로 해당 파일의 출력 위치를 찾기 위해서 

fs.writeFile(HtmlFile, HtmlHeader);  

바로 아래에 다음 줄을 입력해줍니다.

console.log("File Location " + process.cwd()); 


그럼 이제 실행해보겠습니다. 

실행할 때는  node <main.js의 위치>\main.js  를 입력하시면 됩니다.


제 경우에는 다음 그림처럼 입력했습니다. 위의 빨간 사각형은 제가 직접 입력했습니다.(혹은 윈도우 익스플로어에서 주소창을 복사 붙여넣기도 가능합니다.) 아래에는 File Location 다음에 파일이 html 로 출력된 위치가 나와있습니다.




그럼 실행한 결과를 확인해볼까요? 


제 Kindle Download된 파일을 read.amazon.com 에서 확인해보겠습니다. The Handmaid's Tale, A Wrinkle in Time , Milk and Honey 라는 책 세 개가 있네요. (아 지금까지 해온 방법으로는 이렇게 kindle cloud 에 저장되어 있는 모든 파일을 변환합니다.) 




변환한 결과는 다음과 같습니다. 맨 아래에 세 개의 파일이 생성된 것을 볼 수 있습니다. 





긴 시간 따라 오시느라 수고하셨습니다.







댓글