Giter Site home page Giter Site logo

sandboxhead / openedx Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openzim/openedx

0.0 0.0 0.0 1.89 MB

Open edX (to zim) scraper

License: GNU General Public License v3.0

Shell 1.10% JavaScript 1.61% Python 48.89% CSS 33.42% HTML 14.61% Dockerfile 0.37%

openedx's Introduction

openedx2zim

Get the best courses ๐Ÿ“š powered by openedx offline โฌ‡๏ธ

An offliner to create ZIM ๐Ÿ“ฆ files from openedx powered courses

PyPI Docker Codefactor License

Openedx is one of the most popular open source MOOC platforms which revolves around the idea of xblocks. It makes e-learning more accessible by providing an easy way to create courses for teachers, universities and others. It is used by many e-learning services as such as edX as a tool to create, organize and manage MOOCs quite easily.

This project is aimed at creating a tool to make openedx based MOOCs more accessible by creating ZIM files providing the same course materials and resources offline.

Getting started ๐Ÿš€

Install the dependencies

Make sure that you have python3, unzip, ffmpeg, wget, jpegoptim, gifsicle, pngquant, advdef, and curl installed on your system before running the scraper (otherwise you'll get a warning to install them).

Enroll into the MOOC

You must be enrolled into the mooc you want to offline. Ensure that you do not open the openedx instance in the browser with the same account while the scraper runs. Also, this scraper must be used only with a MOOC with a free license.

Setup the package

One can eaisly install the PyPI version but let's setup the source version. Firstly, clone this repository and install the package as given below.

pip3 install -r requirements.txt
python3 setup.py install

That's it. You can now run openedx2zim from your terminal

openedx2zim --course-url [URL] --email [EMAIL] --name [NAME]

For the full list of arguments, see this file or run the following

openedx2zim --help

Example usage

openedx2zim --course-url="https://courses.edx.org/courses/course-v1:edX+edx201+1T2020/course/" --publisher="edx201" --email="[email protected]" --name="sample" --tmp-dir="output" --output="output" --debug  --keep --format="mp4"

This project can also be run with docker. Use the provided Dockerfile to run it with docker. See steps here.

Features ๐Ÿค–

You can create ZIMs for MOOCs powered by the openedx platform (find a list of openedx powered instances here), choose between different video formats (webm/mp4), different compression rates, and even use an S3 based cache.

Limitations โ—

The answers can be extracted only for "multiple choice question" type problems with single answer correct and multiple answer correct (only if the number of options in that case is at most 5). This is due to large number of requests required to extract answers for other types of answers. For more information, refer here.

License ๐Ÿ“–

GPLv3 or later, see LICENSE for more details.

openedx's People

Contributors

dattaz avatar satyamtg avatar rgaudin avatar kelson42 avatar 123survesh avatar gabrielgradinaru 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.