GithubHelp home page GithubHelp logo

gregyk / hotmartcoursedownloader Goto Github PK

View Code? Open in Web Editor NEW

This project forked from diegofcpereira/hotmartcoursedownloader

0.0 0.0 0.0 45 KB

A Chrome extension to single-click download all videos from a hotmart course.

License: MIT License

JavaScript 99.76% HTML 0.24%

hotmartcoursedownloader's Introduction

Hotmart Course Downloader

A Chrome extension to single-click download all videos from a Hotmart course.

It works only if the course uses one of the native hotmart players. It's not supposed to work on 3rd party embedded players (like vimeo's).

This project is still in development.

I am not responsible for the misuse of this project. I do not encourage or support the use of this project for the purposes of piracy or unauthorized distribution of any hotmart content. This project was made in order to study some concepts of javascript and web programming.

It uses the decrypt class from hls.js, to decrypt AES-128 crypted MPEG-TS files.

1 - How to install

1.1 - Type "chrome://extensions", on chrome's url field;

1.2 - Enter in Development Mode, by pressing the button on the top right;

1.3 - Press on the "load unpacked extension", on the top left;

1.4 - Find the HCD folder.

You need to install VLC or any player that supports MPEG-TS encoding, to be able to play the downloaded videos (better explanation at the "to do" section).

2 - How to use

2.1 - Go to the first class of your course (you need to be logged, and own it, ofc)

2.2 - Press the extension button, and wait 10s (if the player is the "Midnight" one, the one that looks like theater mode, you need to press play before pressing the extention button)

2.3 - The extension will start to download it, and once done, it will save at "your default download folder/course name/module name/video name.mp4". You can see the progress on the extention background script console. Once done, it will go to the next class and repeat.

3 - Features

The extention will:

  • Find the class name, module name, course name, current url, current video hash, next video hash and the video id, on the page DOM;
  • Replace the current video hash on the current url, with the next video hash, to create the next video url;
  • From the video id, request the master.m3u8 playlist;
  • From the master playlist, get all avaiable resolutions;
  • Request a 720p or better segment list;
  • From the segment list, get the key hash and the all the AES-128 crypted MPEG-TS segments;
  • Request the actual key;
  • Request and decrypt all those segments with the key;
  • Merge them, and once merged, it will download as a single ".mp4" file.
  • Then, move to the next class on the playlist, using the next video url, created at the beginning.

4 - To do

  • Find a way to encode the final .mp4 file to a "true" .mp4 format (at the moment it's just a bunch of .ts files concatenated, thats why you need to download VLC to play them);
  • The "front-end" (popup, options, user messages and errors);
  • Names and icons;

hotmartcoursedownloader's People

Contributors

fduaibs avatar fmluizao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.