Skip to content

valodes/node-skillshare-downloader

Repository files navigation

License Last commit Repo size

Skillshare Course Downloader

A simple Node.js tool to download Skillshare courses on your computer. This tool uses the Skillshare API to fetch course data and the Axios library to download the course videos.

Disclaimer

Please be aware that downloading copyrighted content without permission from the copyright holder is illegal in many countries. It is illegal to reproduce or distribute copyrighted material without the permission of the copyright holder. This tool is intended for educational and archival use only and should not be used for any illegal activities. By using this tool, you assume all responsibility for any legal repercussions that may result from your actions. The developer of this tool shall not be held liable for any damages resulting from the use of this tool. This script is intended for premium users only. They're the only users that have the ability to download courses according to Skillshare GNU.

Usage

  1. Install Node.js on your computer if you don't have it already. You can download it from the official website.

  2. Clone or download this repository on your computer.

  3. In the project folder, create a new file named .env by copying .env.example :

cp .env.example .env
  1. Install the project dependencies by running the following command in the project folder:
npm install
  1. To download a course, you can either use the class ID or the URL of the course.
npm run start https://www.skillshare.com/en/classes/Working-With-Git-Repository/804431947

or

npm run start 804431947

Replace class_id with the class ID of the course you want to download, and replace url with the URL of the course you want to download.

  1. The course videos will be downloaded to the ./courses folder by default. You can change the download path by setting the FILE_PATH environment variable in the .env file.

To-Do

  • Better error handling
  • Subtitle download
  • Better documentation
  • Adding my own progress bar

Additional Notes

This script is intended for premium user only. Video encoding and resolution might be different from one course to another. Video resolution are 1280x720 by default, can't really do anything about it. The script create a folder with the teacher name and inside a folder with the course name, then download the videos to that folder.

Limitation

  • Video downloading uses stream, so it can download very large videos and handle them properly, and it will not use a lot of memory. But the download speed will change depending on the network speed, and it will not be as fast as downloading the videos directly from the browser.
  • All Error handling not implemented yet.
  • Some videos can't be downloaded, I can't do anything about it, it's a limitation of the Skillshare API.

Credits

This project is a remake of the original skillshare downloader by kallqvist (His repo). I wanted to update the project and to make it in Node.js. Thanks to him who found the original solution.

About

A node.js skillshare downloader

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published