mercoledì 3 febbraio 2016

Estrarre i PDF da Scuolabook (attraverso la webapp)

Qualche settimana fa ho avuto la necessità di scaricare un ebook regolarmente acquistato su Scuolabook per poterlo consultare in assenza di connettività. Se con l’applicazione Desktop il login avesse funzionato, probabilmente avrei potuto eseguire il download del mio libro (ovviamente protetto dal DRM di Scuolabook e quindi consultabile soltanto con il suo software) direttamente dal programma e la cosa sarebbe finita qui. Purtroppo dopo diversi tentativi che la password mi veniva segnalata come errata, ho deciso di provare ad analizzare l’applicazione web.
Collegandosi al sito dell’applicazione, effettuata la procedura di login, ci si trova davanti alla propria libreria. Da qui è sufficiente cliccare sul libro interessato e l’interfaccia caricherà l’immagine della copertina consentendoci, attraverso le frecce direzionali di sfogliare (abbastanza) comodamente il libro.
Il mio fantastico libro di greco.
Purtroppo, a causa della sua natura, non è possibile consultare la webapp senza connessione Internet, e questo crea non pochi problemi. Ho così deciso di provare a superare l’implimentazione DRM dell’applicazione (successivamente rivelatosi praticamente inesistente).
Ciò che mi interessava particolarmente è il meccanismo che ci stava dietro al caricamento delle pagine.
Già da subito infatti ho notato delle richieste interessanti, derivate dal click su una delle due freccette:


La richiesta in questione è:
 https://webapp.scuolabook.it/books/4353/pages?pages[]=6
Provando a ri-produrre la richiesta ho ottenuto una pagina JSON contenente il link dell’immagine della pagina numero 6. Soddisfatto del risultato, ho voluto effettuare alcuni test che mi avrebbero successivamente consentito di facilitare il lavoro dello scaricamento del libro completo.
Innanzitutto ho fin da subito intuito che il numero “4353” presente nella richiesta sopracitata corrisponde all’identificativo del libro (purtroppo modificando questo parametro non è possibile scaricare un’altro libro di cui non si è in possesso) . Ma ben più importante è il fatto che posso “concatenare” più parametri “pages” al fine di ottenere in un’unica pagina più immagini. Ecco come si presenta la nuova richiesta GET:
 https://webapp.scuolabook.it/books/4353/pages?pages[]=6&pages[]=7&pages[]=8
Qui il risultato:


E per concludere, ho provato ad aprire un link (sostituendo opportunamente i caratteri encodati in HTML come ad esempio &):


Et voilà, questo è l’indice del mio libro di Storia :P
Dopo aver raccolto tutte le informazioni possibili, ho provveduto a scrivere uno script che semplificasse il lavoro di download dell’ebook. Lo potete trovare nella repo di GitHub. Ho infine pubblicato al pubblico dominio nel forum della comunità di TNTVillage un semplice tutorial che spiega esaustivamente come far funzionare lo script.


Nessun commento:

Posta un commento