DMT's magically awesome 2010 guide to... ======================================== - How to convert VitalSource BookShelf E-books (.vbk) to PDF - How to remove DRM from VitalSource Bookshelf E-books - How to Remove DRM from .vbk files - How to be realise that DMT loves you * All conveniently the same thing, but we has to make our offerings to the Google overlords. When you make offerings, the overlords see fit to pass knowledge to more persons. We find this a tolerable trade-off. For now. þ Ü±Ü þ ÛÛÛÛÛ ÞÜ ÜÛÜ ÜÝ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÜÜÜÛÛÛÛÛÜÜÜÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ßßßßßßßßßßßßßßß ÛÛÛÛÛ ÛÛÛÛÛßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÜÜÜÜÜÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÜÜÜÜÜÛÛÛÛÛ °°°°° DO MORE TRIBE °°°°° °°°°° PROUDLY PRESENTS °°°°° ±±±±± ±±±±± ²²²²² Company: VitalSource ²²²²² ÛÛÛÛÛ Product: BookShelf E-books ÛÛÛÛÛ ÛÛÛÛÛ Protection: Evil proprietary DRM ÛÛÛÛÛ ÛÛÛÛÛ Platform: Windows + Mac ÛÛÛÛÛ ÜÛÛÛÛÛÜ ÜÛÛÛÛÛÜ ÜÜÜÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÜÜÜ ÛÛÛÛÛßß ßßÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ We are coming for this world.. ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ Do More Tribe is proud to announce the release of a new ÛÛÛÛÛ ÛÛÛÛÛ DRM-removal technique. VitalSource BookShelf sells DRM'd Ebooks ÛÛÛÛÛ ÛÛÛÛÛ in a proprietary format. ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ We find this unacceptable. ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ If you pay for an ebook, it is yours to view on any device you ÛÛÛÛÛ ÛÛÛÛÛ own. Do not let anyone ever tell you otherwise. It's very ÛÛÛÛÛ ÛÛÛÛÛ surprising that nobody on the interwebs seems to have figured out ÛÛÛÛÛ ÛÛÛÛÛ how to bypass the restriction. It's quite a fun little trick. ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ The VitalSource Bookshelf software allows you to print your ÛÛÛÛÛ ÛÛÛÛÛ Ebook, but only 5 pages at a time. On the surface this would ÛÛÛÛÛ ÛÛÛÛÛ seem to foil the print-to-PDF method, however using some ÛÛÛÛÛ ÛÛÛÛÛ AppleScript magic we can have their own software do all the work ÛÛÛÛÛ ÛÛÛÛÛ for us ;) ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ You will need a computer running MacOS in order to do this, ÛÛÛÛÛ ÛÛÛÛÛ however the resulting PDF will work on any computer. There are ÛÛÛÛÛ ÛÛÛÛÛ VMWare images of MacOS available online if you don't have a Mac. ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ The AppleScript code below will dump the entire ebook out into ÛÛÛÛÛ ÛÛÛÛÛ a bunch of pdfs, each containing 5 pages each. We can then ÛÛÛÛÛ ÛÛÛÛÛ easily merge them together to create one DRM-free PDF containing ÛÛÛÛÛ ÛÛÛÛÛ all the pages. ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ 1. Open your ebook up in the VitalSource app. ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ 2. Load up AppleScript and paste in the following code: ÛÛÛÛÛ set totalPages to 340 set startPage to 0 set authorName to "DMT" tell application "VitalSource Bookshelf" activate repeat with theIncrementValue from startPage to totalPages - 1 by 5 if (theIncrementValue = 0) then set thisValue to "a" else set thisValue to theIncrementValue end if tell application "System Events" to keystroke "p" using command down tell application "System Events" to keystroke thisValue as string tell application "System Events" to keystroke tab tell application "System Events" to keystroke theIncrementValue + 5 as string tell application "System Events" to keystroke tab tell application "System Events" to keystroke return tell application "System Events" to keystroke return tell application "System Events" to keystroke "p" using command down tell application "System Events" to keystroke theIncrementValue as string tell application "System Events" to keystroke tab tell application "System Events" to keystroke tab tell application "System Events" to keystroke authorName tell application "System Events" to keystroke return delay 7 end repeat end tell ÛÛÛÛÛ Or if the above doesn't work. ÛÛÛÛÛ # Saves current document open in VitalSource Bookshelf as PDF set totalPages to 497 set startPage to 1 activate application "VitalSource Bookshelf" tell application "System Events" tell process "VitalSource Bookshelf" repeat with theIncrementValue from startPage to totalPages - 1 by 10 set thisValue to theIncrementValue # Wait until the first Print dialog opens before proceeding repeat until exists window "Print" # Open the print dialog keystroke "p" using command down end repeat # First print dialoge. Print pages ten at a time. keystroke thisValue as string keystroke tab keystroke thisValue + 9 as string keystroke tab # delay 2 click button "Continue" of window "Print" # Wait until the second Print dialog opens before proceeding repeat until exists window "Print" end repeat # Expand the "PDF" menu button (must be expanded before the menu is referencable) click menu button "PDF" of window "Print" # Wait until the Menu button menu is created before proceeding repeat until exists menu item "Save as PDF…" of menu 1 of menu button "PDF" of window "Print" end repeat # Select the "Save as PDF" menu item click menu item "Save as PDF…" of menu 1 of menu button "PDF" of window "Print" # Wait until the Save dialog opens before proceeding repeat until exists window "Save" end repeat # Save. Set name to page numbers saved. keystroke thisValue as string keystroke "_" keystroke thisValue + 9 as string click button "Save" of window "Save" # Wait for dialog to close before proceeding. repeat until not (exists window "Save") end repeat end repeat end tell end tell ÛÛÛÛÛ Compliments of MTB. If the book starts at page "i" or some ÛÛÛÛÛ ÛÛÛÛÛ rubbish and goes on to "ii", "iii", ... "xx", ... "1", "2" ... ÛÛÛÛÛ ÛÛÛÛÛ print the "i-x" pages manually. Then follow the instructions ÛÛÛÛÛ ÛÛÛÛÛ by DMT. Start from 1 to the last page of the book. You may need ÛÛÛÛÛ ÛÛÛÛÛ to print the last ten pages manually as well. ÛÛÛÛÛ ÛÛÛÛÛ Did you notice how we even took away the sides of our sexy ASCII ÛÛÛÛÛ ÛÛÛÛÛ art just so you would have hassle-free copy+paste? That is how ÛÛÛÛÛ ÛÛÛÛÛ much DMT loves you <3 ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ I'm not even joking. We really do love you. ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ 3. Change the totalPages to the number of pages, and authorName ÛÛÛÛÛ ÛÛÛÛÛ to whatever you want that field set to in the pdf. ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ 4. The delay of 7 seconds is quite conservative, this should do ÛÛÛÛÛ ÛÛÛÛÛ nicely for most people. If your computer is really fast then ÛÛÛÛÛ ÛÛÛÛÛ you can probably lower it a bit, but if the saving of any one ÛÛÛÛÛ ÛÛÛÛÛ pdf takes more than the delay then the script will break and ÛÛÛÛÛ ÛÛÛÛÛ you'll have to manually stop it. If this happens just set the ÛÛÛÛÛ ÛÛÛÛÛ startPage to the Next page you don't have. Pages are saved ÛÛÛÛÛ ÛÛÛÛÛ starting from 0 (page 0 is called "a" in the app, fuck knows why) ÛÛÛÛÛ ÛÛÛÛÛ and up in increments of 5, so you'll end up with 0.pdf, 5.pdf, ÛÛÛÛÛ ÛÛÛÛÛ 10.pdf, etc etc. So if it breaks and you have to re-start it, ÛÛÛÛÛ ÛÛÛÛÛ the number you start it from will always be either 0 or a ÛÛÛÛÛ ÛÛÛÛÛ multiple of 5. ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ 5. So now you have your pdfs, time to join them together. If ÛÛÛÛÛ ÛÛÛÛÛ you want to do this on MacOS, install the textlive-context ÛÛÛÛÛ ÛÛÛÛÛ port with: ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ # port install texlive-context ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ If you want to merge them on a ubuntu or debian linux box, then ÛÛÛÛÛ ÛÛÛÛÛ you want to do: ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ # apt-get install context ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ Make sure all the pdfs are in one directory, then cd into that ÛÛÛÛÛ ÛÛÛÛÛ directory and type: ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ # texexec --pdfarrange --result all.pdf `ls -1 *.pdf |sort -n` ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ You now have your fully DRM-free PDF :) ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ -DMT 2010, be love ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ßßÛÛÜ ÜÛÛßß ßÜ Üß