Bookworm: онлайн-сервис по вытягиванию книг с books.google.comОднажды в студеную зимнюю пору искал я на просторах интернета одну очень редкую и нужную мне книжку. В удобоваримом электронном виде (в т.ч. легальном) ее нигде не было, в бумажном — только потрепанный жизнью б/у экземпляр на Амазоне и с доставкой из Бразилии. Вообще, в книжном мире издатели ведут довольно странную игру: отстреливают пиратов, закрывая околонаучные онлайн-библиотеки, но редкие и старые книги не переиздают, а в электронном виде ни с кем ими не делятся. В этот замкнутый круг я и угодил всеми четырьмя ногами.
Книга неожиданно нашлась в Google Books в режиме ограниченного просмотра. Рабочих адекватных способов повыдергивать видимые страницы найти не удалось (да, я знаю о преставившемся
gbd и хитром
userscript’е для greasemonkey) и решил я поэкспериментировать самостоятельно. Экспериментировал я почти две недели, и в результате исторгнул из себя простенький снаружи сервис по высасыванию книг с books.google.com:
http://bookworm.evil.so.
За мыслями о том, легально ли проделанное мною с точки зрения закона и как оно вообще работает, прошу проследовать
под кат.под кат.
Сервис изначально делался по большей части для себя и с целью разобраться с RoR, но на него каким-то чудом самостоятельно приперлось аж 900 активных пользователей. Поэтому взыгравший в венах альтруизм заставил допилить сервис до относительно удобоваримого состояния, в котором он находится и по сей день.

Но как оно вообще работает? Гугл показывает страницы из книг отнюдь не от балды, как это может показаться на первый взгляд. Для каждого устройства или пользователя показывается хитро фиксированное количество страниц в день. Но чтобы жизнь медом не казалась, страницы показываются с дырками. Причем для разных пользователей дырки будут немного разными.
Логично предположить, что ежели просматривать одну книгу сразу с 20 устройств, то можно будет поймать фактически все страницы. Но это не так: на каждую хитрую задницу найдется свой болт на 18, а в Гугле таких целый комплект. Таким способом удается просмотреть примерно 60% страниц, не больше. Остальные страницы недоступны совсем и для всех.
Но если повторить попытку через несколько дней, то выяснится, что закрытые страницы уже не те: часть ранее открытых закрылась, но часть закрытых стала доступной! Таким образом, если запастись терпением, за несколько недель возможно вытянуть что угодно. Да, благодаря такому подходу, некоторые книги тянутся по месяцу. Но иногда это даже быстрее чем ждать посылку из Бразилии. К тому же, это дисциплинирует: ежели есть возможность найти книгу другим, более оперативным методом (например, купить), то лучше так и сделать и лишний раз сервис не напрягать.
Но легально ли это? Сложный вопрос, с одной стороны в Terms of Service books.google.com английским по белому написано следующее:
… Google gives you the non-exclusive right to download, subject to the restrictions set forth herein, copies of the applicable Digital Content to your Devices, and to view, use, and display such Digital Content an unlimited number of times on your Devices or as otherwise authorized by Google as part of the Service for your personal, non-commercial use. …
т.е. подобный некоммерческий сервис, позволяющий пользователю для личного некоммерческого пользования самостоятельно выкачивать книги, открыто не запрещен. Это хорошо.
С другой стороны, в свежих мартовских Terms of Service самого Гугла написано:
Don’t misuse our Services. For example, don’t interfere with our Services or try to access them using a method other than the interface and the instructions that we provide. You may use our Services only as permitted by law, including applicable export and re-export control laws and regulations. We may suspend or stop providing our Services to you if you do not comply with our terms or policies or if we are investigating suspected misconduct.
Является ли “misuse” анализ предоставленного ими же интерфейса и API роботом, который коварно записывает на диск все отданные гуглом изображения страниц? Ведь обычный браузер делает примерно то же самое, сохраняя те же страницы в дисковый кеш, но уже не столь коварно.
Когда ГуглоБот выкачивает страницы наших сайтов, он не анализирует наши Terms of Service, а «спрашивает» только у robots.txt, формат которого сами поисковики и придумали. Вот и вы запрашивайте какой-нибудь books.google.com/books-robots.txt, документируйте его формат на своем сайте, и пусть они читают и учат правила вашего паука, а не вы их Term of Service.
Если что-то в интернете нельзя качать кому попало, то это следует просто не выдавать кому попало — поставить авторизацию и т.д. А раз выдают, значит качать можно, в том числе роботами.

В любом случае, получившийся онлайн-сервис полезен лично для меня. И я буду только рад, ежели он будет полезен еще для кого-нибудь, столь же страдающего от недостатка информации.
UPD: ежели страницы книги нельзя просмотреть в интерфейсе books.google.com, то выкачивать в ней нечего, не стоит пытаться. Вытягиваются книги только с ограниченным и полным просмотром. Не используйте адреса официальные и гугловские, на всякий случай.ИсточникEnglish translation.English translation.
Dear friends. Finally Russian hackers programmers found almost legal way to download books from books.google.com: free online service http://bookworm.evil.so

How it works?
Google shows some of the books pages. For each device or user it shows fixed amount of pages per day. These pages are shown with some empty (hidden) pages in between, and for different users these empty parts will be different. Some of the pages stay unavailable for everybody. In few days google shows another pages and hides previous ones. So, if you'll be patient enough that thing will collect all the book for you page by page. Sometimes it takes few weeks to get the whole book, so it's better to buy it if you can. (you'll get around 85% of the book within 15 days)
Is it legal?
Literally yes. It is not forbidden in Terms of Service neither in Google.com nor in Books.google.com.
Actually that interface just analyzes data from the Internet cache as google.search does when it downloads hidden stuff from Facebook or others >__<
So in order to keep your safety I suggest DO NOT use your gmail account as well as work account.
You can get the books with the limited or full access only, if the book is not shown in books.google.com it can not be downloaded.