Digital Raws
The first step in the process of scanlating any manga is obtaining the raws. The first step is to download the file the raws are in, then the second step is to extract the raws from this file.
After extraction, they made need to be post-processed.
Online sources
Raws can often be found on piracy websites dedicated to hosting them (none are listed here to avoid link rot, but they can be found on the Internet). Be aware that some websites will add watermarks; since it is best practice to not keep watermarks from these sites (the only kind of acceptable watermark is an author watermark), one will either have to manually clean them or find a different source.
Useful tools
There are some general-purpose manga downloading tools; a notable one is HakuNeko. Alex's Raw Downloader is really simple to use for sites that it's compatible with (click "Info" on the site for a full list of compatible sites).
Websites that allow online viewing of manga will often render the images in a <canvas>
element, which can then be extracted with browser extensions like Canvas Downloader for Chrome, ImageAssistant for Chrome or Image Picka for Firefox, or using bookmarklets. Be aware that resampling may occur. Some websites like Bookwalker add a near-invisible barcode at the bottom that points to your account; one should take care to remove the 3 bottom pixels of all pages.
A useful tool is this Stack Overflow answer which provides a script/bookmarklet that re-enables the ability to right-click on websites that have disabled it.
Screenshotting
Usually an easy way, but can be low quality due to the resampling that may occur, and is labor-intensive.
PDF raws are most common when obtaining self-published raws from websites such as https://booth.pm/en
Most raw PDFs are single pages with the images embedded in each page. So the next step is to extract the images that are embedded. There are two tools that are often used.
- pdfcpu
- Install pdfcpu
- Ensure the executable's directory is on your PATH variable
- Open the directory the PDF file is in
- Run
$ pdfcpu.exe images extract .\RAW_INPUT.pdf
- This will output the files in the same directory as the file. To change the output directory, append an output directory path to the command.
- Poppler Tools' pdfimages tool
- Install Poppler Tools
- Ensure the bin directory is on your PATH variable
- Open the directory the PDF file is in
- Run
$ pdfimages -png RAW_FILE.pdf ./
- This will output the files in the same directory as the file. Change the final argument to change the path of the output directory.
Amazon
This requires extremely light knowledge of Python. No code is required. Be aware this method is often unreliable and can give low-resolution raws.
- Buy the manga (on Amazon)
- Go to your content library
- Find the manga
- Select "Download & transfer via USB" and download the archive
- Download Python
- Ensure Python is on your PATH variable in some way
- Clone the https://github.com/kevinhendricks/KindleUnpack git repo
- Open the KindleUnpack directory in a terminal
- Run
$ python .\KindleUnpack.pyw
- A GUI should appear
- Select the Kindle file as the "input file"
- Select the output directory
- Check "Use HD Images If Present"
- Click the "Start" button
- The file will be extracted to the output directory. It will have several directories, but within at least one somewhere there will be an image directory with the extracted images.
Bookwalker
This requires downloading a modified Chromium executable on a Windows computer and the ability to run a PowerShell command.
Warning: The Chromium client downloaded here bypasses safety features and should not be used for anything other than downloading manga from Bookwalker.
These instructions apply to the latest version at the time of writing, version 0.3.3
:
- Buy the manga on Bookwalker. For most Japanese releases, you will need to use the Japanese site, not the global site.
- Download https://github.com/xuzhengyi1995/Manga_downloader/releases/latest
- Unzip the file
BW-downloader-chrome-bin.zip
. - Open a powsershell or cmd in the unzipped browser dir:
- Navigate to the unzipped directory in explorer.
- Shift + right-click in the folder.
- Select "Open PowerShell window here".
- Open the browser with command line:
.\chrome.exe --user-data-dir=c:\bw-downloader-profile --no-sandbox
- Log into you Bookwalker account in the launched Chromium window.
- Open the book you want to rip in the viewer.
- Adjust the window so exactly one page is visible.
- If you can get the script to automatically click (step 6 here), that's good, but it is not working at the time of writing due to Bookwalker code changes.
- Instead, you can just click through the manga you are ripping, one page at a time (giving each page enough time to load).
- After you've clicked through all the pages you want to rip, the pages will be in
C:\bw_export_data
under a folder with a name matching the ID in the Bookwalker URL.
Creating a shortcut
To create a shortcut that launches the modified Chromium application with the appropriate permissions:
- Right-click on
chrome.exe
and select "Create shortcut". - Right-click on the new shortcut and select "Properties".
- Select "Target" and move the cursor to the end.
- Paste
--user-data-dir=c:\bw-downloader-profile --no-sandbox
(including the space before) - The new "Target" should look like
C:\path\to\Chrome-bin\chrome.exe --user-data-dir=c:\bw-downloader-profile --no-sandbox
.
Rakuten Books / Kobo
This information is available in the Google document Guide to buy and rip books from Rakuten Books.
Notes on canvas ripping
The sample size here is 1, so this information might not be accurate for all manga. For the volume I did try, I found some things:
- BookWalker: Inserts a barcode onto pages. This is hard to remove as it can cover the art, including screentones. It can be annoying to resize the window to the right size such that the image is at its native resolution.
- cmoa: Lower quality than Bookwalker, at least in the preview.
- k-manga: The preview resized the image 4px smaller than the original resolution, which really messes up screentones.
- Kobo: Region-locked, so I didn’t try it (it’s possible to insert fake details to get around the region lock).
- BookLive: Slightly lower quality than BookWalker (at least in the preview), but very easy to scrape from.
BookLive
This bookmarklet can also be used for cmoa. Open the manga, put it in vertical orientation, click the bookmarklet and then start scrolling down. The resulting PNGs are quite large – you may want to reduce their size with oxipng.
javascript:(()=>{const done=new Set,a=document.createElement("a"),cv=document.createElement("canvas"),c2=cv.getContext("2d");setInterval((()=>{for(const t of document.getElementById("content").children){if(!t.id.startsWith("content-p"))continue;const e=t.id.slice(9).padStart(3,"0");if(done.has(e))continue;const n=[...t.getElementsByTagName("img")];if(0===n.length||n.some((t=>!t.complete)))continue;const c=n.map(((t,e)=>{if(e===n.length-1)return[t,t.naturalHeight-2];const a=t.getBoundingClientRect(),c=n[e+1].getBoundingClientRect();return[t,Math.round((c.y-a.y)/a.height*t.naturalHeight)]}));cv.width=Math.max(...n.map((t=>t.naturalWidth))),cv.height=c.reduce(((t,[e,n])=>t+n),0);let o=0;for(const[t,e]of c)c2.drawImage(t,0,o),o+=e;a.href=cv.toDataURL(),a.download=`${e}.png`,a.click(),done.add(e)}}),100)})()
Zero Sum Online
javascript:(()=>{const t=new Set,e=document.createElement("a"),a=document.createElement("canvas"),n=a.getContext("2d");setInterval((()=>{for(const c of document.getElementsByTagName("img")){if(!c.classList.item(0)?.endsWith("_page")||!c.alt.startsWith("page_")||!c.complete)continue;const o=c.alt.slice(5).padStart(3,"0");t.has(o)||(a.width=c.naturalWidth,a.height=c.naturalHeight,n.drawImage(c,0,0),e.href=a.toDataURL(),e.download=`${o}.png`,e.click(),t.add(o))}}),100);})()
BookWalker
This does not remove the barcodes, so use with caution. I’m putting it here because the same techniques can likely be used on other sites. As with BookLive, put the reader in vertical mode and make sure the images are at their native resolution.
javascript:(()=>{const done=new Set,a=document.createElement("a");setInterval((()=>{for(const e of document.getElementById("canvasCluster").children){if(!e.id.startsWith("wideScreen"))continue;const t=e.id.slice(10).padStart(3,"0");if(done.has(t))continue;const n=e.children[1];255===n.getContext("2d").getImageData(0,0,n.width,n.height).data[3]&&(a.href=n.toDataURL(),a.download=`${t}.png`,a.click(),done.add(t))}}),100);})()