This tool lets you download ebooks and videos from packtpub.com even if you don't have a full paid subscription.

Overview

Packtpub Scrapper

TL;DR

This tool lets you download ebooks and videos from https://www.packtpub.com/ even if you don't have a full paid subscription.

System Requirement

  • Docker
  • Yeh That's all you need 😂

Steps to run

  • Get a trial account at https://www.packtpub.com/
  • It requires a simple visa or a mastercard, and 1 USD will be charged and refunded in a day.
  • Clone this repo locally.
  • Create a .env file which contains the following variables.
    • user
    • pass
    • bookid
    • TOKEN (optional)

A sample env file looks like

[email protected]
pass=/i6X#G345g@Ji5
bookid=9781789132779
TOKEN="Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQ..

Technical Details

System Requirement for Development

  • Java 11
  • Intellij IDEA (or any idea with awesome Kotlin Support)
  • Webstorm (or any idea with awesome Nodejs support)
  • Nodejs
  • Docker

Dependencies

  • JVM
    • Jetbrains Exposed for easily handling sql Queries
    • Sqlite an embedded db
    • Ktor-client for making network requests
    • Gson for Json parsing
  • Nodejs
    • epub-gen
    • Express
You might also like...
Android Asynchronous Networking and Image Loading
Android Asynchronous Networking and Image Loading

Android Asynchronous Networking and Image Loading Download Maven Git Features Kotlin coroutine/suspend support Asynchronously download: Images into Im

Square’s meticulous HTTP client for the JVM, Android, and GraalVM.

OkHttp See the project website for documentation and APIs. HTTP is the way modern applications network. It’s how we exchange data & media. Doing HTTP

A type-safe HTTP client for Android and the JVM

Retrofit A type-safe HTTP client for Android and Java. For more information please see the website. Download Download the latest JAR or grab from Mave

Repo of the Open Source Android library : RoboSpice. RoboSpice is a modular android library that makes writing asynchronous long running tasks easy. It is specialized in network requests, supports caching and offers REST requests out-of-the box using extension modules.
IceNet - Fast, Simple and Easy Networking for Android

IceNet FAST, SIMPLE, EASY This library is an Android networking wrapper consisting of a combination of Volley, OkHttp and Gson. For more information s

HttpMocker is a simple HTTP mocking library written in Kotlin to quickly and easily handle offline modes in your apps

HttpMocker HttpMocker is a very lightweight Kotlin library that allows to mock HTTP calls relying on either OkHttp or the Ktor client libraries. It ca

Asynchronous socket, http(s) (client+server) and websocket library for android. Based on nio, not threads.

AndroidAsync AndroidAsync is a low level network protocol library. If you are looking for an easy to use, higher level, Android aware, http request li

Compact and easy to use, 'all-in-one' android network solution
Compact and easy to use, 'all-in-one' android network solution

Deprecated Unfortunately due to many reasons including maintenance cost, this library is deprecated. I recommend to use Retrofit/OkHttp instead. Curre

Easily upload files (Multipart/Binary/FTP out of the box) in the background with progress notification. Support for persistent upload requests, customizations and custom plugins.
Easily upload files (Multipart/Binary/FTP out of the box) in the background with progress notification. Support for persistent upload requests, customizations and custom plugins.

ℹ️ 🆕 Get started with 4.x 👉 Try it out Get the demo APK Still using 3.x ? It's not maintained or supported. You may have security issues and problem

Comments
  • Exception in thread

    Exception in thread "main" java.lang.UnsupportedOperationException: JsonObject

    Hey, first of all this software is a great Idea, but i somehow have issues using it.

    When i follow the instructions and run the container i get the following error, see console output:

    [...] packtpubscrapper-scrapper-1 | Starting loading Other Books You May Enjoy 17 packtpubscrapper-scrapper-1 | Starting loading Index 18 packtpubscrapper-scrapper-1 | Exception in thread "main" java.lang.UnsupportedOperationException: JsonObject packtpubscrapper-scrapper-1 | at com.google.gson.JsonElement.getAsString(JsonElement.java:179) packtpubscrapper-scrapper-1 | at Scrapper$loadBookPageContent$1.invokeSuspend(Scrapper.kt:115) packtpubscrapper-scrapper-1 | at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) packtpubscrapper-scrapper-1 | at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) packtpubscrapper-scrapper-1 | at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:279) packtpubscrapper-scrapper-1 | at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) packtpubscrapper-scrapper-1 | at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59) packtpubscrapper-scrapper-1 | at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) packtpubscrapper-scrapper-1 | at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38) packtpubscrapper-scrapper-1 | at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) packtpubscrapper-scrapper-1 | at Scrapper.loadBookPageContent(Scrapper.kt:92) packtpubscrapper-scrapper-1 | at Scrapper.loadContent(Scrapper.kt:48) packtpubscrapper-scrapper-1 | at Scrapper.loadChapterSequential(Scrapper.kt:221) packtpubscrapper-scrapper-1 | at Scrapper.access$loadChapterSequential(Scrapper.kt:24) packtpubscrapper-scrapper-1 | at Scrapper$main$1$1$1.invokeSuspend(Scrapper.kt:200) packtpubscrapper-scrapper-1 | at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) packtpubscrapper-scrapper-1 | at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) packtpubscrapper-scrapper-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) packtpubscrapper-scrapper-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) packtpubscrapper-scrapper-1 | at java.base/java.lang.Thread.run(Unknown Source)

    I am using WSL2 to execute docker-compose, but this shouldn't matter as far as i think. Also authentification works, as you can see when it says "Start loading (...)".

    Can you might help me? I would also reward your effort with some donation.

    opened by fabian-schmitt 3
Owner
Meghdut Mandal
The Kotlin Kid.
Meghdut Mandal
Utilizes the Range HTTP header to download a file with multiple connections in parallel, bypassing cheap bandwidth throttling

async-range-downloader Utilizes the Range HTTP header to download a file with multiple connections in parallel, bypassing cheap bandwidth throttling T

Torben 4 Apr 12, 2022
An App to download a file from Internet by clicking on a custom-built button

LoadApp LoadApp is an app to download a file from the Internet by clicking on a custom-built button where: Width of the button gets animated from left

Anas Tariq 2 Aug 29, 2022
A tiny tool for syncing times between a local computer and android devices

TimeSync A super tiny tool for syncing times between a local computer and android devices, through adb tool. Screen Shots It uses compose lib and Kotl

DadaaChen 2 Nov 9, 2021
LiteHttp is a simple, intelligent and flexible HTTP framework for Android. With LiteHttp you can make HTTP request with only one line of code! It could convert a java model to the parameter and rander the response JSON as a java model intelligently.

Android network framework: LiteHttp Tags : litehttp2.x-tutorials Website : http://litesuits.com QQgroup : 42960650 , 47357508 Android网络通信为啥子选 lite-htt

马天宇 829 Dec 29, 2022
Android network client based on Cronet. This library let you easily use QUIC protocol in your Android projects

Android network client based on Cronet. This library let you easily use QUIC protocol in your Android projects

VK.com 104 Dec 12, 2022
Monitoring water tanker level using NodeMCU ESP8266 and HC-SR04P Ultrasonic Sensor and broadcasting it using a simple HTTP server inside NodeMCU ESP8266 and show data in an Android App

WaterLevel Preface This project aims to finding a tanker water level using NodeMCU with ESP8266 core and HC-SR04P Ultrasonic sensor and broadcasting i

YaMiN 12 Dec 20, 2022
Pluto is a on-device debugger for Android applications, which helps in inspection of HTTP requests/responses, capture Crashes and ANRs and manipulating application data on-the-go.

Pluto Pluto is a on-device debugger for Android applications, which helps in inspection of HTTP requests/responses, capture Crashes and ANRs and manip

Mocklets 8 Aug 22, 2022
A gRPC Kotlin based server and client starter that builds with Gradle and runs on the JVM

gRPC Kotlin starter Overview This directory contains a simple bar service written as a Kotlin gRPC example. You can find detailed instructions for bui

Hypto 8 Sep 19, 2022
A product registration service using the Kotlin language and the Micronaut and Grpc framework

A product registration service using the Kotlin language and the Micronaut and Grpc framework

Mateus Araújo 30 Nov 2, 2022
Asynchronous Http and WebSocket Client library for Java

Async Http Client Follow @AsyncHttpClient on Twitter. The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and a

AsyncHttpClient 6k Jan 8, 2023