{"id":20037795,"url":"https://github.com/openedx/cc2olx","last_synced_at":"2025-06-23T17:02:43.272Z","repository":{"id":39587272,"uuid":"275916585","full_name":"openedx/cc2olx","owner":"openedx","description":"A library to convert Common Cartridge Courses to OLX.","archived":false,"fork":false,"pushed_at":"2025-04-23T12:43:22.000Z","size":43096,"stargazers_count":9,"open_issues_count":6,"forks_count":15,"subscribers_count":53,"default_branch":"master","last_synced_at":"2025-04-23T13:58:07.878Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openedx.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"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,"zenodo":null}},"created_at":"2020-06-29T20:14:54.000Z","updated_at":"2025-04-23T12:43:01.000Z","dependencies_parsed_at":"2024-09-05T18:16:25.556Z","dependency_job_id":"28058f58-2a7f-496d-bf32-da7d9a1df51e","html_url":"https://github.com/openedx/cc2olx","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fcc2olx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fcc2olx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fcc2olx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fcc2olx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openedx","download_url":"https://codeload.github.com/openedx/cc2olx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252451491,"owners_count":21749943,"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":[],"created_at":"2024-11-13T10:22:18.365Z","updated_at":"2025-05-05T06:31:23.556Z","avatar_url":"https://github.com/openedx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"cc2olx\n######\n\n.. image:: https://github.com/openedx/cc2olx/workflows/Python%20CI/badge.svg?branch=master\n    :target: https://github.com/openedx/cc2olx/actions?query=workflow%3A%22Python+CI%22\n\n*cc2olx* is a converter of `Common Cartridge \u003chttps://www.imsglobal.org/activity/common-cartridge\u003e`_ `.imscc` files into `.tar.gz` files that can be imported into Studio.\n\nWhat is supported\n-----------------\n\nConverted:\n\n- HTML\n- Web links\n- Some videos\n- LTI links\n- QTI assessments\n- Assignments\n- PDF files\n- Google document URLs\n\nNot converted:\n\n- Images\n\n\nInstall\n-------\n\nClone repository and install via setup.py::\n\n    python setup.py install\n\nUse\n---\n\nThe converter is a command-line Python 3 program.\n\nTo convert one file::\n\n    cc2olx -i \u003cIMSCC_FILE\u003e\n\nThis will write a `.tar.gz` file into the tmp directory here.\n\nTo store all results in `zip` file::\n\n    cc2olx -r zip -i \u003cIMSCC_FILE\u003e\n\nAn embeded video in an iframe tag in HTML can be converted to it's\ncorresponding video xblock if we provide a link map file to it.\n\nThe CSV file should have the following header::\n\n    External Video Link, Edx Id, Youtube Id\n\nEither Edx Id or Youtube Id should be be present.\nIn case both of these are given Edx Id takes priority.\n\nThe link map file can be supplied using `-f` or `--link_file`::\n\n    cc2olx -r zip -i \u003cIMSCC_FILE\u003e -f \u003cCSV_FILE\u003e\n\nIf the original course content contains relative links and the resources\n(images, documents etc) the links point to are not included into the exported\ncourse dump, you can specify their source using `-s` flag::\n\n    cc2olx -i \u003cIMSCC_FILE\u003e -s \u003cRELATIVE_LINKS_SOURCE\u003e\n\nIf some custom xBlocks are installed on the target Open edX instance, the\ncorresponding blocks can be specified by `-c` argument. If the content that\nsuch xBlocks can render are found during the course converting, they will be\nused. The argument values correspond to the xBlock names to specify in\n`advanced_modules` inside a course advanced settings.\n\nSupported Custom xBlocks:\n\n- `pdf \u003chttps://github.com/raccoongang/xblock-pdf\u003e`_\n- `google-document \u003chttps://github.com/openedx/xblock-google-drive\u003e`_\n\nArgument usage example::\n\n    cc2olx -i \u003cIMSCC_FILE\u003e -c \u003cCUSTOM_BLOCK_1_NAME\u003e -c \u003cCUSTOM_BLOCK_2_NAME\u003e\n\nDockerization\n-------------\n\nTo make the application platform-independent, it is dockerized. To run the\napplication using Docker you need:\n\n1. Build the image::\n\n    docker build -t cc2olx .\n\n2. Run the conversion command in a container by mounting passed argument path\ndirectories/files and passing the corresponding arguments to the script::\n\n    docker run --rm -v /input/file/path/cc_course_dump.imscc:/data/input/cc_course_dump.imscc -v /output/file/path/output_dir:/data/output/ cc2olx -r zip -i /data/input/cc_course_dump.imscc -o /data/output/edx_dump\n\nIt will convert Common Cartridge dump from */input/file/path/cc_course_dump.imscc*\nand save the OLX in */output/file/path/output_dir/edx_dump.zip* file.\n\nTest Data\n---------\n\nThere are some test imscc files in `test_data` directory, but if you can also try **cc2olx** on some larger courses:\n\n- `HBUHSD Geometry Resource Course \u003chttps://s3.amazonaws.com/public-imscc/c075c6df1f674a7b9d9192307e812f74.imscc\u003e`_ (29.7 MB) (Kendra Rosales, by-nc-sa 4.0, `source \u003chttps://lor.instructure.com/resources/c075c6df1f674a7b9d9192307e812f74\u003e`_)\n- `Kung Fu Canvas \u003chttps://s3.amazonaws.com/public-imscc/faa3332ffd834070ad81d97bdb236649.imscc\u003e`_ (65.48 MB) (Mike Cowen, by-nc-sa 4.0, `source \u003chttps://lor.instructure.com/resources/faa3332ffd834070ad81d97bdb236649\u003e`_)\n- `KNOW \u0026 The Challenge Mosaic \u003chttps://s3.amazonaws.com/public-imscc/d933c048da6d4fd5a9cb552148d628cb.imscc\u003e`_ (572.43 MB) (Missy Widmann, by-nc-sa 4.0, `source \u003chttps://lor.instructure.com/resources/d933c048da6d4fd5a9cb552148d628cb\u003e`_)\n\nTo Do\n-----\n\nWe would love help building out this tool.  If you can help, either with\ndevelopment, or with real-world testing, please submit pull request or open new issue.\n\nWork that needs to be done:\n\n- Test on real courses\n- Clean up the code\n- Add support for more Common Cartridge content\n- Write more documentation\n\nVideo Upload Tool\n#################\n\n- The *cc2olx* repository also has a video upload tool that can be used to upload videos to directly to edX's video encoding pipeline. See the tool's README :ref:`video_upload_tool`. for a further details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Fcc2olx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenedx%2Fcc2olx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Fcc2olx/lists"}