eBookWorm Builder - Batch Script Tự Động Build + Extract PRC/MOBI/AZW3 + Nén eBook
eBookWorm Builder
Hiện nay có nhiều người trên 4r làm eBook định dạng PRC/MOBI/AZW3 bằng KindleGen nhưng gọi chương trình KindleGen từ command line dễ sai và không gõ được tên file có chữ Việt có dấu. Ngoài ra file MOBI do KindleGen tạo ra khá cồng kềnh gây khó khăn cho các phone ít RAM, cần tách riêng PRC/AZW3 và nén lại trước khi upload lên mạng. Quá trình đó tương đối tẻ nhạt, mất thời gian và dễ nhầm lẫn.
eBookWorm Builder là bộ Batch script của Windows tự động hóa tất cả các bước trên và cho phép dùng tên file có chữ Việt có dấu. Chỉ cần double-click vào một file batch script trong Windows Explorer là đủ.
1. eBookWorm Builder Dùng Cho Ai?
Nếu bạn muốn làm 1 ebook mỗi tháng trở lên cho riêng mình hoặc chia sẻ trên 4r, bạn nên dùng eBookWorm Builder hoặc một bộ script tương tự. Nếu bạn làm ít hơn thì nên gửi yêu cầu nhờ làm eBook lên diễn đàn sẽ tốt hơn.
eBookWorm Builder dành riêng cho dòng ebook PRC/MOBI/AZW3 được build bằng phần mềm KindleGen của Amazon.com. Ngoài ra ebook bạn làm phải dùng file OPF để cung cấp tất cả thông tin cho KindleGen. Đó cũng là cách mà hầu hết mọi người đều sử dụng khi làm eBook nói chung chứ không riêng gì dòng PRC/MOBI/AZW3 của Amazon.com.
Nếu bạn chỉ muốn có một ebook trong 1-2 phút từ file TXT hoặc DOC mà không cần lưu tâm đến những thông tin khác như tên truyện hay tác giả thì eBookWorm Builder không phù hợp với bạn. Bạn nên gọi trực tiếp KindleGen từ command line để tạo nhanh ebook.
eBookWorm Builder: DO and DON'T DO
+ Tự động và đơn giản hóa các bước làm ebook
+ Hạn chế tối đa nhập thông tin bằng tay mỗi lần chạy script
+ Chỉnh sửa script dễ dàng để hỗ trợ tên file / tên truyện có chữ cái tiếng Việt có dấu
+ Tạo ebook định dạng PRC/MOBI, AZW3 với các compression level khác nhau theo yêu cầu
+ Nén (dùng WinRAR) ebook sau khi làm để có thể upload ngay lên mạng
+ Chạy KindleGen ở verbose mode và xuất ra kết quả vào file text để dễ phát hiện lỗi trong file OPF/TXT/DOC/HTML/XHTML của bạn.
+ Dễ dàng gắn thêm "đuôi" vào sau tên file ebook để độc giả dễ phân biệt, ví dụ Ma Giới Đích Nữ Tế_BigBang_C912.azw3, Bàn Long_Big Bang_Q2C14.mobi.rar
DON'T
+ Bộ script eBookWorm Builder chỉ tính toán các dữ liệu bạn đưa vào để gọi các chương trình tạo ebook, tách ebook, nén file,... với các thông số phù hợp với yêu cầu của bạn. Nó không phải là một chương trình độc lập thay thế cho các chương trình nói trên.
+ Nó không cắt giảm được các bước phải làm trong quá trình build ebook, tách, nén,... mà chỉ làm quá trình đó trở nên nhanh chóng, chính xác hơn và không cần bạn phải can thiệp.
2. Cài Đặt
Bạn có thể chọn một trong 2 cách: (1) tự download các phần mềm cần thiết và cài theo hướng dẫn hoặc (2) dùng gói phần mềm tôi đang sử dụng đã config sẵn, tuy nhiên nó có thể không phải là bản được cập nhật mới nhất hoặc hoàn toàn phù hợp với yêu cầu của bạn. Cho dù bạn chọn cách nào thì cũng nên đọc qua cách cài đặt ở bên dưới để biết cách tùy chỉnh khi cần.
2.1 Download
Bạn cần download và cài đặt một số chương trình để chạy với eBookWorm Builder:
+ Bộ script eBookWorm Builder
+ KindleGen
+ Notepad++ dùng để chỉnh sửa các script. Không nên dùng Notepad của Windows. Notepad++ is free!
+ WinRAR dùng để nén các file ebook thành phẩm để upload lên mạng. Nhớ cài phiên bản có Graphical and command line. eBookWorm Builder dùng command line của WinRAR.
+ KindleUnpack là gói script dùng để tách các file PRC/MOBI, AZW3 ra khỏi file MOBI do KindleGen tạo ra.
+ ActivePython Community Edition (bản free) dùng để chạy KindleUnpack. Chú ý không cài Python tải từ trang chính thức của Python vì không tương thích. Tôi khuyên bạn nên chọn bản ActivePython 2.7 Windows x86 (bản 32-bit). KindleUnpack là gói script khá cũ viết trên nền ActivePython, cài Python quá mới chưa chắc đã tốt.
Nếu bạn chọn gói config sẵn tôi đang dùng thì donwload trọn bộ ở đây. Trong đó bao gồm cả các installer cho Notepad++, WinRAR, ActivePython,...
2.2 Cài Đặt
+ Cài Notepad++, WinRAR, ActivePython với các default options. Bạn nên ghi nhớ mình cài những chương trình đó ở chỗ nào để dễ tìm khi chỉnh sửa script. Nên ghi ra giấy cho khỏi quên. Nếu máy bạn đã cài sẵn Notepad++, WinRAR rồi thì có thể bỏ qua 2 chương trình này. Kiểm tra lại trong folder của WinRAR có file Rar.exe không, nếu không có bạn phải cài lại.
+ Tạo một folder cho eBookWorm Builder với tên tùy ý. Tôi khuyến nghị bạn tạo folder ở những nơi dễ thấy và đặt tên không quá khó gõ phím. Folder cho eBookWorm Builder bạn chỉ cần chỉnh sửa 1 lần duy nhất khi cài đặt và sau đó có thể quên hẳn nó nhưng để dễ hướng dẫn cài đặt tôi đề nghị bạn tạo folder C:\eBookWorm_Builder
+ Giải nén gói eBookWorm Builder và copy file eBookWorm_Builder.bat và build_ebook.bat vào C:\eBookWorm_Builder
+ Giải nén gói KindleGen và copy file kindlegen.exe vào C:\eBookWorm_Builder
+ Giải nén gói KindleUnpack, copy folder lib của nó vào C:\eBookWorm_Builder rồi đổi tên thành KindleUnpack.
+ Bạn tạo một folder tùy ý để dành cho các file upload lên Internet. Bạn có thể dùng My Documents hoặc Desktop nếu thích, nhưng trong phần hướng dẫn này tôi đền nghị bạn tạo một folder có tên là Upload ở trong C:\eBookWorm_Builder để cho dễ làm.
Nếu bạn dùng gói config sẵn của tôi thì trong đó đã có sẵn installer của Notepad++, WinRAR, ActivePython và folder eBookWorm_Builder. Bạn cài các chương trình Notepad++, WinRAR, ActivePython như hướng dẫn ở trên và copy folder eBookWorm_Builder vào ổ C:\ là xong.
3. Config
Trong phần này bạn cài đặt các options mặc định cần thiết để chạy eBookWorm Builder.
3.1. Tùy chỉnh eBookWorm_Builder.bat
Mở file eBookWorm_Builder.bat bằng Notepad++ (và chỉ bằng Notepad++, không dùng Notepad của Windows) và tìm đến dòng REM _BEGIN_PROGRAM_PATH_SECTION_. Bạn sẽ chỉnh sửa các dòng giữa dòng đó và dòng REM _END_PROGRAM_PATH_SECTION_. Việc của bạn chỉ là cung cấp đường dẫn (full path):
+ SET kindlegen=<fullpath to kindlegen.exe>
+ SET python=<fullpath to python.exe>
+ SET kindleunpack=<fullpath to kindleunpack.py>
+ SET RARCMD=<fullpath to Rar.exe>
+ SET upload_dir=<fullpath to folder Upload>
Sau đó bạn Save file eBookWorm_Builder.bat dưới dạng UTF-8 như sau: Chọn menu Encoding --> Convert to UTF-8 without BOM rồi nhấn nút Save trên toolbar. Chú ý không được chọn Encoding --> Convert to UTF-8 vì option này cũng tương đương với Save As UTF-8 của Notepad của Windows và file .BAT của bạn sẽ không chạy.
3.2. Tùy chỉnh build_ebook.bat build_ebook.bat là file script dùng để gọi master script eBookWorm_Builder.bat với những thông số phù hợp với 1 quyển sách cụ thể. Với mỗi quyển sách bạn chọn lựa những option bạn muốn rồi gọi master script để tạo ebook. Tùy chỉnh build_ebook.bat gồm 2 phần: phần cố định và phần thay đổi tùy thuộc vào từng quyển sách. Vì vậy tôi khuyến nghị bạn chỉnh sửa build_ebook.bat một lần với tất cả phần cố định hoàn chỉnh, sau đó lưu nó lại (tốt nhất là trong C:\eBookWorm_Builder). Khi bạn làm 1 quyển sách mới thì copy nó ra folder làm sách và chỉ thay đổi phần đặc trưng cho truyện đó.
Mở build_ebook.bat bằng Notepad++. Bạn sẽ thấy các lệnh được tô màu xanh đậm như CALL, ECHO, SET; những dòng xanh lá bắt đầu bằng REM là những dòng chú thích (comment)
Phần cố định của build_ebook.bat gồm:
+ SET master_script=<fullpath to eBookWorm_Builder.bat> ; đây là tùy chỉnh bắt buộc.
+ SET ebook_maker=<your nickname> ; đây là tùy chỉnh không bắt buộc.
+ SET /p sufix_chapnum=Enter ebook sufix or just hit Enter if you do not need one: ; đây là tùy chỉnh không bắt buộc.
Vì ebook_maker là tùy chỉnh không bắt buộc nên tôi biến nó thành dòng comment REM SET ebook_maker=, nếu bạn muốn dùng tùy chỉnh này thì xóa REM ở đầu dòng và biến nó thành dòng giống như thế này:
SET ebook_maker=Big Bang
Big Bang là nickname của tôi ở 4r.
Vì sufix_chapnum là tùy chỉnh không bắt buộc nên tôi biến nó thành dòng comment REM SET /p sufix_chapnum=, nếu bạn muốn dùng tùy chỉnh này thì xóa REM ở đầu dòng và biến nó thành dòng giống như thế này: SET /p sufix_chapnum=Enter ebook sufix or just hit Enter if you do not need one:
Vậy ebook_maker và sufix_chapnum dùng để làm gì? Bạn dùng nó để tạo ra các file ebook có tên người làm ebook và chương cập nhật, ví dụ Ma Giới Đích nữ Tế_Big Bang_C850.mobi hoặc Bàn Long_Big Bang_Q2C15.azw3.rar. Đặt tên ebook kiểu này dễ chia sẻ trên 4r, nếu bạn làm ebook cho riêng mình thì không cần 2 tùy chọn này và có thể để nó dưới dạng comment như ban đầu.
Phần thay đổi của build_ebook.bat chính là các lệnh gọi master script. Lệnh gọi master script bắt đầu bằng CALL "%master_script%" . Trong mỗi file build_ebook.bat chỉ có 1 lệnh gọi master script duy nhất. Cú pháp gọi master script bạn coi cụ thể trong file help.txt.
Trong file build_ebook.bat gốc tôi viết sẵn vài lệnh gọi master script tôi cho rằng sẽ được dùng nhiều nhất. Vì chỉ được phép có 1 lệnh gọi master script duy nhất trong file nên những lệnh này tôi để dưới dạng comment. Đó là các dòng có dạng
REM CALL "%master_script%" ...
Để sử dụng được các dòng này bạn chỉ cần bỏ REM ở đầu dòng là được, nhớ đừng quên chuyển dòng gọi master script cũ đang có hiệu lực thành dòng comment. Bạn đọc phần comment cho các lệnh gọi master script đó để chọn lệnh phù hợp.
Cách nhanh nhất là bạn Replace All trong Notepad++ eBook.opf và YOUR BOOK TITLE bằng các giá trị phù hợp rồi chọn một trong các lệnh gọi master script có sẵn. Ví dụ truyện Ma Giới Đích Nữ Tế có file OPF là mgdnt.opf, vậy bạn sẽ Replace All như sau:
YOUR BOOK TITLE --> Ma Giới Đích Nữ Tế eBook.opf --> mgdnt.opf
Tên file và tên truyện có thể dùng chữ cái tiếng Việt có dấu một cách bình thường.
Sau đó nhớ Save As UFT-8 without BOM như đối với eBookWorm_Builder.bat.
4. Chạy Script
Không bao giờ chạy trực tiếp master script eBookWorm_Builder.bat, bạn phải gọi nó bằng build_ebook.bat.
+ Copy file build_ebook.bat vào folder chứa file OPF của truyện
+ Chỉnh sửa file build_ebook.bat như ở mục số 3
+ Nhấn đúp vào file build_ebook.bat để chạy script
Nếu bạn muốn thêm số chương vào tên ebook (bật tùy chọn sufix_chapnum) script sẽ hỏi bạn nhập vào. Trong trường hợp bạn muốn bỏ qua thì chỉ cần nhấn Enter mà không nhập gì cả.
Nếu các file OPF/TXT/DOC/HTML của bạn bị lỗi và bạn muốn biết lỗi ở đâu thì chỉ cần thêm --test vào cuối dòng lệnh gọi master script đang dùng. eBookWorm Builder sẽ chạy KindleGen với option dò lỗi và bỏ qua tất cả các option khác của lệnh gọi master script. Bạn đọc file report để dò lỗi. Khi sửa hết lỗi lại xóa --test đi. Chú ý khi chạy option --test sẽ không có file MOBI được xuất ra, bạn coi ở cuối file report nếu không thấy từ "Error" là được. Warning thì tùy trường hợp, có cái quan trọng có cái không. Tôi làm ebook toàn bị "cảnh cáo" vì hình bìa (cover) quá nhỏ!
Ví dụ lệnh gọi thường: CALL "%master_script%" -mobi -o "Ma Giới Đích Nữ Tế" -f "%cd%\mgdnt.opf"
Ví dụ lệnh gọi để dò lỗi: CALL "%master_script%" -mobi -o "Ma Giới Đích Nữ Tế" -f "%cd%\mgdnt.opf" --test