Skip to content

This importer harvests episodes (lecture recordings) from Opencast instances and push it as external references to an Edusharing instance.

License

Notifications You must be signed in to change notification settings

jduehring/edusharing-opencast-importer

 
 

Repository files navigation

edusharing-opencast-importer

Version License: GPLv3 Maintenance

HIGHLY IN DEVELOPMENT: Do not use for production

This importer harvests episodes and series (lecture recordings) from Opencast instances and pushes them as external references to an Edu-Sharing instance.

Requirements

  • NodeJS 10.12.0 or higher

Install

  1. Clone repository and change into repository folder
  2. Install dependencies npm install

Config Minimum

  1. Add new user to your Edu-Sharing instance. For more information see Edu-Sharing documentation.
  2. Rename .env.template file to .env
  3. Edit .env file as described in the comments.
    Minimum required variables are Edu-Sharing host specs (protocol, domain), user and password.
# (Required) Edu-Sharing host
ES_HOST_PROTO=http
ES_HOST_DOMAIN=localhost

# (Required) Edu-Sharing User to publish Opencast content with
ES_USER=opencast
ES_PASSWORD=opencast
  1. Rename config.oc-instances.js.template to config.oc-instances.js in folder ./src/config/
  2. Edit ./src/config/config.oc-instances.js and add Opencast instances as JSON objects (protocal, domain).
    LIMITATION: Currently, only the first object in the instance array is used..
{
  protocol: 'https',
  domain: 'develop.opencast.org'
}

Usage

  1. Run npm start in repository directory.
npm start
// or directly
node src/index.js

Config Details

Will be added later.

Import Workflow

  1. Get all published episodes from Opencast Instance
  2. Filter episodes by open licences
  3. Get all published series from Opencast Instance
  4. Edu-Sharing authentication (Basic auth or Bearer token)
  5. Create folder structure in Edu-Sharing user workspace (a folder for every Opencast series)
  6. Create a node/children for every episode (Alfresco API)
  7. Update metadata for all nodes/childrens
  8. Set permissions for all nodes/childrens to public

Develop

  1. Setup development environment. You can use the official Edu-Sharing docker container.
  2. Follow all minimum config steps as described above.
  3. Run nodemon to watch for file changes
npm run dev

Format & Lint

Linting and formatting is run by a husky-hook with every commit. See package.json file for config.

You can also run linting and formatting via this commands:

npm run format
npm run lint
npm run lint:fix

Author

💻 virtUOS (University Osnabrück)

👤 Florian Feyen

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!


This README was generated with ❤️ by readme-md-generator

About

This importer harvests episodes (lecture recordings) from Opencast instances and push it as external references to an Edusharing instance.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%