{"id":14155460,"url":"https://github.com/elan-ev/opencast-studio","last_synced_at":"2025-04-05T22:09:54.011Z","repository":{"id":35596481,"uuid":"190592262","full_name":"elan-ev/opencast-studio","owner":"elan-ev","description":"Web-based recording studio for Opencast","archived":false,"fork":false,"pushed_at":"2025-03-20T13:58:03.000Z","size":123530,"stargazers_count":50,"open_issues_count":49,"forks_count":47,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-29T21:08:44.653Z","etag":null,"topics":["capture-screen","capture-video","hacktoberfest","recording","recording-studio","video"],"latest_commit_sha":null,"homepage":"https://studio.opencast.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"slampunk/ghettostudio","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elan-ev.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":"2019-06-06T14:07:00.000Z","updated_at":"2025-02-04T14:02:45.000Z","dependencies_parsed_at":"2023-11-27T16:46:12.674Z","dependency_job_id":"74c97cfd-b00c-4cbd-914a-a52204c300da","html_url":"https://github.com/elan-ev/opencast-studio","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elan-ev%2Fopencast-studio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elan-ev%2Fopencast-studio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elan-ev%2Fopencast-studio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elan-ev%2Fopencast-studio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elan-ev","download_url":"https://codeload.github.com/elan-ev/opencast-studio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406111,"owners_count":20933806,"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":["capture-screen","capture-video","hacktoberfest","recording","recording-studio","video"],"created_at":"2024-08-17T08:03:24.692Z","updated_at":"2025-04-05T22:09:53.986Z","avatar_url":"https://github.com/elan-ev.png","language":"TypeScript","funding_links":[],"categories":["video"],"sub_categories":[],"readme":"Opencast Studio\n===============\n\n[![Build \u0026 test](https://github.com/elan-ev/opencast-studio/actions/workflows/ci.yml/badge.svg)](https://github.com/elan-ev/opencast-studio/actions/workflows/ci.yml)\n[![MIT license](https://img.shields.io/github/license/elan-ev/opencast-studio)\n](https://github.com/elan-ev/opencast-studio/blob/master/LICENSE)\n\nA web-based recording studio for [Opencast](https://opencast.org).\n\nOpencast Studio uses the recording capabilities built into modern browsers to\nrecord audio and video streams. The recording happens completely in the user's\nbrowser: no server is involved in that part. Network access is only needed to\ninitially load the application and to (optionally) upload the videos to an\nOpencast instance.\n\n\n## Supported Browsers\n\n|            | Firefox        | Chrome         | Edge           | Safari        |\n| ---------- | -------------- | -------------- | -------------- | ------------- |\n| Windows 11 | ✔\u003csup\u003e3\u003c/sup\u003e  | ✔              | ✔              | -\n| Windows 10 | ✔\u003csup\u003e3\u003c/sup\u003e  | ✔              | ✔              | -\n| Linux      | ✔\u003csup\u003e3\u003c/sup\u003e  | ✔\u003csup\u003e4\u003c/sup\u003e  | ✔\u003csup\u003e4\u003c/sup\u003e  | -\n| macOS      | ✔\u003csup\u003e3\u003c/sup\u003e  | ✔\u003csup\u003e4\u003c/sup\u003e  | ✔\u003csup\u003e4\u003c/sup\u003e  | 🔶\u003csup\u003e5\u003c/sup\u003e\n| iOS        | - \u003csup\u003e1\u003c/sup\u003e | - \u003csup\u003e1\u003c/sup\u003e | - \u003csup\u003e1\u003c/sup\u003e | 🔶\u003csup\u003e2\u003c/sup\u003e\n| Android    | 🔶\u003csup\u003e2\u003c/sup\u003e | 🔶\u003csup\u003e2\u003c/sup\u003e | 🔶\u003csup\u003e2\u003c/sup\u003e | -\n\n\n\u003csup\u003e1\u003c/sup\u003e Non-Safari browser on iOS use the Safari browser engine, so behave essentially the same as Safari.\n\n\u003csup\u003e2\u003c/sup\u003e Screen share on mobile devices not supported; only webcam recording.\n\n\u003csup\u003e3\u003c/sup\u003e Display audio capture only possible through the use of \"monitor sources\" as microphone.\n\n\u003csup\u003e4\u003c/sup\u003e Display audio capture only possible if sharing a tab, not the entire screen or individual application windows.\n\n\u003csup\u003e5\u003c/sup\u003e Display audio capture not supported.\n\n\n\n## Usage\n\nThere are mainly three ways how to use Opencast Studio.\n\n### Integrated in Opencast\n\nStarting with Opencast 8.2, Opencast Studio is integrated into and shipped with\nOpencast itself. If you have an Opencast system already, this is the\neasiest solution for you. See [the Opencast documentation about the module\n'studio'](https://docs.opencast.org/develop/admin/#modules/studio/) for more\ninformation.\n\n### Standalone Version at [studio.opencast.org](https://studio.opencast.org)\n\nOpencast Studio is always deployed from `master` branch.\n\nYou are free to use the publicly deployed version. However, there are two\ncaveats.\n\nFor one, `studio.opencast.org` is updated fairly regularly with the newest\nversion and is not tested as thoroughly as the Studio version integrated into\nOpencast releases. That means that it might occasionally not work or introduce\nbackwards incompatible changes (mostly related to settings) at any time.\n\nAdditionally, in order to upload to your Opencast server from\n`studio.opencast.org`, that server needs to be configured appropriately. In\nparticular, CORS requests from Studio need to be allowed and return the status\ncode 200. For nginx, you need to add this to your configuration:\n\n```\nadd_header Access-Control-Allow-Origin https://studio.opencast.org always;\nadd_header Access-Control-Allow-Methods 'GET, POST, OPTIONS' always;\nadd_header Access-Control-Allow-Credentials true always;\nadd_header Access-Control-Allow-Headers 'Origin,Content-Type,Accept,Authorization' always;\n\n# Always respond with 200 to OPTIONS requests as browsers do not accept\n# non-200 responses to CORS preflight requests.\nif ($request_method = OPTIONS) {\n    # On newer nginx versions, you can optionally send an\n    # Access-Control-Max-Age header to reduce the number of requests a browser\n    # will send.\n    #add_header 'Access-Control-Max-Age' 1728000;\n    return 200;\n}\n```\n\n### Self-hosted standalone version\n\nAs Studio is a client-only application, you can simply build it and then serve\nthe resulting static files.\n\n\n## Configuration\n\nSee [`CONFIGURATION.md`](CONFIGURATION.md).\n\n## Opencast APIs used by Studio\n\nOpencast Studio uses the following APIs:\n\n- `/ingest/*`\n- `/info/me.json`\n\nYou have to make sure that these APIs are accessible to the user using Studio.\nIn Opencast ≥8.2, providing a user with `ROLE_STUDIO` should grant a user all necessary rights.\nIn older versions, you might need to create such a role in the security configuration (e.g. `mh_default_org.xml`) of Opencast.\n\n\n## Build Instructions\n\nTo build Studio yourself, execute these commands:\n\n```sh\n% git clone git@github.com:elan-ev/opencast-studio.git\n% cd opencast-studio\n% npm install\n% npm run build:release   # or npm run build:dev for development\n```\n\nThis will generate static content you can serve via any web server in `build/`.\nThat's it.\n\nIf you prefer to run a local development server directly, you can use this\ninstead:\n\n```sh\n% npm start\n```\n\n### Additional Build Options\n\nBy default, Studio expects to be deployed under the root path of a domain (e.g. https://studio.example.com/) and using a\nsub-path would not work (e.g. https://example.com/studio). This can be changed by using a number of build options. You\ncan apply these options by exporting them as environment variable before starting the build process like this:\n\n```sh\nexport OPTION=VALUE\nnpm run build:release\n```\n\n| Option                  | Example            | Description\n| ----------------------- | ------------------ | -----------\n| `PUBLIC_PATH`           | `/studio`          | Path from which Studio will be served\n| `SETTINGS_PATH`         | `/mysettings.toml` | Path from which to load the configuration (see `CONFIGURATION.md` for more information)\n| `INCLUDE_LEGAL_NOTICES` | `1`                | Set to `1` to include legal notices and information about elan e.V., any other value or having this variable not set will not include them. Unless you are working for elan e.V. there is probably no reason for you to use this variable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felan-ev%2Fopencast-studio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felan-ev%2Fopencast-studio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felan-ev%2Fopencast-studio/lists"}