{"id":26475435,"url":"https://github.com/opencast/opencast-editor","last_synced_at":"2025-04-10T02:19:15.835Z","repository":{"id":37075278,"uuid":"306012637","full_name":"opencast/opencast-editor","owner":"opencast","description":"Web-based video editor for Opencast","archived":false,"fork":false,"pushed_at":"2025-04-07T07:44:48.000Z","size":202083,"stargazers_count":63,"open_issues_count":94,"forks_count":43,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-10T02:19:09.566Z","etag":null,"topics":["editor","hacktoberfest","opencast","subtitles","video"],"latest_commit_sha":null,"homepage":"https://editor.opencast.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opencast.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2020-10-21T12:10:16.000Z","updated_at":"2025-04-07T07:43:40.000Z","dependencies_parsed_at":"2023-09-25T07:15:22.324Z","dependency_job_id":"ac93927e-ce90-4de9-a5df-11425c9dfef1","html_url":"https://github.com/opencast/opencast-editor","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fopencast-editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fopencast-editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fopencast-editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fopencast-editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opencast","download_url":"https://codeload.github.com/opencast/opencast-editor/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142906,"owners_count":21054672,"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":["editor","hacktoberfest","opencast","subtitles","video"],"created_at":"2025-03-19T23:17:06.720Z","updated_at":"2025-04-10T02:19:15.812Z","avatar_url":"https://github.com/opencast.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Opencast Video Editor\n=====================\n\n[![Build \u0026 Deploy](https://github.com/opencast/opencast-editor/workflows/Build%20\u0026%20Deploy/badge.svg)\n](https://github.com/opencast/opencast-editor/actions?query=workflow%3A%22Build+%26+Deploy%22)\n[![Demo deployment](https://img.shields.io/badge/demo-editor.opencast.org-blue)\n](https://editor.opencast.org)\n\nThe Opencast Video Editor is a tool included by [Opencast](https://opencast.org) to cut and arrange recordings.\n\n\nQuick Test\n----------\n\nTo test locally, run:\n\n    npm start\n\nThis will start a local test server in the development mode.\nOpen [http://localhost:3000](localhost:3000) to view it in the browser.\n\nThe latest version connected to [develop.opencast.org](https://develop.opencast.org) is also publicly available\nat [editor.opencast.org](https://editor.opencast.org).\n\nTo open a specific event with the editor, use the GET-Parameter `id` like so: `https://editor.opencast.org/?id=27cd7156-fda6-4b31-aab5-d56833012caf`.\n\n\nBuilding the Editor\n-------------------\n\nTo build the editor for production to the `build` folder, run:\n\n    npm run build\n\nTo make the editor work in a sub-path, use:\n\n    PUBLIC_URL=/path npm run build\n\nTo build a container image, run:\n\n    DOCKER_BUILDKIT=1 docker build \\\n        --build-arg NODE_VERSION=16 \\\n        --build-arg CADDY_VERSION=2.5.1 \\\n        --build-arg PUBLIC_URL=/ \\\n        --build-arg REACT_APP_SETTINGS_PATH=/editor-settings.toml \\\n        -t quay.io/opencast/editor .\n\nConfiguration\n-------------\n\n\n### Configuration Methods\n\nMost configuration options can be set either as an option in the configuration file or as a URL parameter.\n\nThe configuration file is called `editor-settings.toml`. It can either be provided in the public folder when running locally or can be found under `etc/opencast/ui-config/mh_default_org/editor` when deployed in Opencast. More information can be found in the example configuration file.\n\nIf a configuration option belongs to a section, URL parameters are a combination of section and option separated by a single dot.\n\nFor example, the following option in the configuration file:\n\n```toml\n[trackSelection]\nshow = true\n```\n\n…can be specified as URL parameter in the form `trackSelection.show=true`.\n\nIf an option can be specified both ways, the URL parameter will always take precedence.\n\n\n### Settings\n\nOptions which are usually specified in the configuration file are documented in there as well. Metadata configuration options are only documented in the configuration file.\n\n| Option                  | URL | File | Description                                                          |\n|-------------------------|-----|------|----------------------------------------------------------------------|\n| id                      | ✓   | ✓    | Id of the event that the editor should open by default.              |\n| mediaPackageId          | ✓   | ✓    | Deprecated. Use `id` instead.                                        |\n| allowedCallbackPrefixes | ✗   | ✓    | Allowed callback prefixes in callback url.                           |\n| callbackUrl             | ✓   | ✓    | Callback url to go back after finish.                                |\n| callbackSystem          | ✓   | ✓    | Callback system name to go back to.                                  |\n| opencast.url            | ✗   | ✓    | URL of the opencast server to connect to.                            |\n| opencast.name           | ✗   | ✓    | Opencast user to use. For demo purposes only.                        |\n| opencast.password       | ✗   | ✓    | Password to use for authentication. For demo purposes only.          |\n| metadata.show           | ✓   | ✓    | Show metadata tab.                                                   |\n| trackSelection.show     | ✓   | ✓    | Show track selection tab.                                            |\n| thumbnail.show          | ✓   | ✓    | Show thumbnail tab. Demo only.                                       |\n| debug                   | ✓   | ✗    | Enable internationalization debugging.                               |\n| lng                     | ✓   | ✗    | Select a specific language. Use language codes like `de` or `en-US`. |\n\nHow to cut a release for Opencast\n---------------------------------\n\n1. (Optional) Run the [Update translations](https://github.com/opencast/opencast-editor/actions/workflows/update-translations.yml) workflow, to make sure all changes from crowdin are included in the next release.\n1. Switch to the commit you want to turn into the release\n1. Create and push a new tag\n   ```bash\n    DATE=$(date +%Y-%m-%d)\n    git tag -m Release -s \"$DATE\"\n    git push upstream \"$DATE\":\"$DATE\"\n   ```\n1. Wait for the [Create release draft](https://github.com/opencast/opencast-editor/actions/workflows/create-release.yml)\n   workflow to finish\n    - It will create a new [GitHub release draft](https://github.com/opencast/opencast-editor/releases)\n    - Review and publish the draft\n        - By selecting the previous release, Github can generate release notes automatically\n1. Submit a pull request against Opencast\n    - [Update the release](https://github.com/opencast/opencast/blob/b2bea8822b95b8692bb5bbbdf75c9931c2b7298a/modules/editor/pom.xml#L16-L17)\n    - [Adjust the documentation](https://github.com/opencast/opencast/blob/b2bea8822b95b8692bb5bbbdf75c9931c2b7298a/docs/guides/admin/docs/modules/editor.md)\n      if necessary\n    - [Update the configuration](https://github.com/opencast/opencast/blob/b2bea8822b95b8692bb5bbbdf75c9931c2b7298a/etc/ui-config/mh_default_org/editor/editor-settings.toml)\n      if necessary\n    - Verify that the new release runs in Opencast, then create the pull request.\n\n\nOpencast API used by the Editor\n-------------\n\nThe editor accesses the following endpoints in Opencast:\n\n* `/editor/\u003cmediaPackageId\u003e/edit.json`      (introduced in OC 9.3)\n* `/editor/\u003cmediaPackageId\u003e/metadata.json`  (introduced in OC 9.4)\n\nIf you want to use current editor frontend with an earlier Opencast version, you will have to cherry pick the relevant commits from the Opencast repository yourself.\n\n\nTranslating the Editor\n-------------\nYou can help translating the editor to your language on [crowdin.com/project/opencast-editor](https://crowdin.com/project/opencast-editor). Simply request to join the project on Crowdin and start translating. If you are interested in translating a language which is not a target language right now, please create [a GitHub issue](https://github.com/opencast/opencast-editor/issues) and we will add the language.\n\nThis project follows the general form of [Opencast's Localization Process](https://docs.opencast.org/develop/developer/#participate/localization/), especially regarding what happens when you need to [change an existing translation key](https://docs.opencast.org/develop/developer/#participate/localization/#i-need-to-update-the-wording-of-the-source-translation-what-happens).  Any questions not answered there should be referred to the mailing lists!\n\nNotes on Waveform Generation\n----------------------------\n\nThe editor displays a waveform image on the timeline in the cutting view. This waveform image is generated at runtime\nfrom one of the videos of the event. However, to properly generate the image, the video it is generated from needs to be\nloaded completely once, which takes time and bandwidth. If this poses a problem for your use case, you can instead have\nOpencast provide an image in the internal publication. Provided images will always take precedence and prevent the\ngeneration algorithm form running. The provided image should have the same flavor that is specified in the Opencast\nconfiguration file `etc/org.opencastproject.editor.EditorServiceImpl.cfg`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencast%2Fopencast-editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopencast%2Fopencast-editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencast%2Fopencast-editor/lists"}