{"id":19794171,"url":"https://github.com/openzim/openedx","last_synced_at":"2025-05-01T02:30:58.527Z","repository":{"id":56009487,"uuid":"81859267","full_name":"openzim/openedx","owner":"openzim","description":"Open edX (to zim) scraper","archived":false,"fork":false,"pushed_at":"2024-11-01T21:01:10.000Z","size":1960,"stargazers_count":8,"open_issues_count":20,"forks_count":6,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-06T08:02:23.621Z","etag":null,"topics":["openedx","scraper","zim"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openzim.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"kiwix","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-02-13T18:52:10.000Z","updated_at":"2024-11-01T21:00:29.000Z","dependencies_parsed_at":"2024-03-08T10:43:37.673Z","dependency_job_id":null,"html_url":"https://github.com/openzim/openedx","commit_stats":{"total_commits":236,"total_committers":7,"mean_commits":"33.714285714285715","dds":0.5296610169491525,"last_synced_commit":"c4eeb94327366b4a7f7ddb6eb9cc6ac2630f1b10"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openzim%2Fopenedx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openzim%2Fopenedx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openzim%2Fopenedx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openzim%2Fopenedx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openzim","download_url":"https://codeload.github.com/openzim/openedx/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251812307,"owners_count":21647884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["openedx","scraper","zim"],"created_at":"2024-11-12T07:12:25.124Z","updated_at":"2025-05-01T02:30:58.147Z","avatar_url":"https://github.com/openzim.png","language":"Python","funding_links":["https://github.com/sponsors/kiwix"],"categories":[],"sub_categories":[],"readme":"# openedx2zim\n\n##### Get the best courses :books: powered by openedx offline :arrow_down:\nAn offliner to create ZIM :package: files from openedx powered courses\n\n\n| :zap:        Scraper is known to have a very significant issue on recent openEdx version, we are looking for resources / support to work on this issue (https://github.com/openzim/openedx/issues/175)   |\n|-----------------------------------------|\n\n[![PyPI](https://img.shields.io/pypi/v/openedx2zim?style=for-the-badge)](https://pypi.org/project/openedx2zim/)\n[![Docker](https://ghcr-badge.egpl.dev/openzim/openedx/latest_tag?label=docker)](https://ghcr.io/openzim/openedx)\n[![Codefactor](https://img.shields.io/codefactor/grade/github/openzim/openedx/main?label=codefactor\u0026style=for-the-badge)](https://www.codefactor.io/repository/github/openzim/openedx)\n[![License](https://img.shields.io/github/license/openzim/openedx?color=blueviolet\u0026style=for-the-badge)](https://www.gnu.org/licenses/gpl-3.0)\n\nOpenedx 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.\n\nThis 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.\n\n\n## Getting started :rocket:\n\n#### Install the dependencies\nMake 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).\n\n#### Enroll into the MOOC\nYou 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. \n\n#### Setup the package\nOne can eaisly install the PyPI version but let's setup the source version. Firstly, clone this repository and install the package as given below.\n\n```bash\npip3 install -r requirements.txt\n```\n\n```bash\npython3 setup.py install\n```\n\nThat's it. You can now run `openedx2zim` from your terminal\n\n```bash\nopenedx2zim --course-url [URL] --email [EMAIL] --name [NAME]\n```\n\nFor the full list of arguments, see [this](openedx2zim/entrypoint.py) file or run the following\n```bash\nopenedx2zim --help\n```\n\nExample usage\n```bash\nopenedx2zim --course-url=\"https://openlearninglibrary.mit.edu/courses/course-v1:OCW+6.042J+2T2019/course/\" --publisher=\"Massachusetts Institute of Technology\" --email=\"example@example.com\" --name=\"sample\" --tmp-dir=\"output\" --output=\"output\" --debug  --keep --format=\"mp4\"\n```\n\nThis project can also be run with docker. Use the provided [Dockerfile](Dockerfile) to run it with docker. See steps [here](https://docs.docker.com/get-started/part2/).\n\n## Features :robot:\nYou can create ZIMs for MOOCs powered by the openedx platform (find a list of openedx powered instances [here](https://openedx.atlassian.net/wiki/spaces/COMM/pages/162245773/Sites+powered+by+Open+edX+Platform)), choose between different video formats (webm/mp4), different compression rates, and even use an S3 based cache.\n\n## Limitations :exclamation:\nThe 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](https://github.com/openzim/openedx/issues/35).\n\n## License :book:\n\n[GPLv3](https://www.gnu.org/licenses/gpl-3.0) or later, see\n[LICENSE](LICENSE) for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenzim%2Fopenedx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenzim%2Fopenedx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenzim%2Fopenedx/lists"}