{"id":22832797,"url":"https://github.com/ietf-tools/meetecho-recording-player","last_synced_at":"2025-04-14T04:33:14.090Z","repository":{"id":223280802,"uuid":"759792170","full_name":"ietf-tools/meetecho-recording-player","owner":"ietf-tools","description":"Player for Meetecho recordings","archived":false,"fork":false,"pushed_at":"2024-09-27T05:47:36.000Z","size":192,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-03-27T18:21:53.616Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ietf-tools.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":"2024-02-19T10:46:51.000Z","updated_at":"2024-10-05T02:25:33.000Z","dependencies_parsed_at":"2024-02-19T12:53:04.530Z","dependency_job_id":"a09dda2b-8261-4cc9-8eee-c651fd77efd9","html_url":"https://github.com/ietf-tools/meetecho-recording-player","commit_stats":null,"previous_names":["meetecho/meetecho-recording-player"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ietf-tools%2Fmeetecho-recording-player","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ietf-tools%2Fmeetecho-recording-player/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ietf-tools%2Fmeetecho-recording-player/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ietf-tools%2Fmeetecho-recording-player/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ietf-tools","download_url":"https://codeload.github.com/ietf-tools/meetecho-recording-player/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248822434,"owners_count":21167053,"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-12-12T21:09:21.615Z","updated_at":"2025-04-14T04:33:14.065Z","avatar_url":"https://github.com/ietf-tools.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Meetecho Recordings Playout Application\n\nPlayer for Meetecho recordings, which integrate video from meeting sessions (via YouTube), chat logs, transcripts, polls.\n\n---\n## Build the app\n\nIn the project directory, you can run:\n#### `npm install`\n\nInstall dependencies.\n\n\n##### `npm start`\n\nRuns the app in the development mode.\nThe page will reload if you make edits.\nYou will also see any lint errors in the console.\n\n##### `npm run build`\n\nBuilds the app for production to the directory specified in `vite.config.js` (`playout` by default).\nThe build is minified and the filenames include the hashes.\nYour app is ready to be deployed, just copy it under your webserver!\n\n---\n## Configuration\n\nThe application configuration is specified in `src/config.json`: \n```\n{\n  \"sessions_folder\": \"sessions\",\n  \"transcripts_folder\": \"transcripts\",\n  \"polls_folder\": \"polls\"\n}\n```\nwihch specifies the subdirectories that need to be available:\n\n- `sessions_folder` -- contains JSON files that describe the session, e.g.,\n```\n{\n  \"title\": \"IETF112-DISPATCH-20211108-1200\",\n  \"filename\": \"IETF112-DISPATCH-20211108-1200\",\n  \"start\": 0,\n  \"end\": 2960000,\n  \"start_datetime\": \"2021-11-08T12:00:00Z\",\n  \"videos\": [\n    {\n      \"type\": 2, \t\t\t\t// video hosted on YouTube\n      \"src\": \"Vk2n08pnrXs\"\t\t// YouTube video id\n    }\n  ],\n  \"messages\": [\t\t\t\t\t// chat messages\n    {\n      \"author\": \"John Doe\",\n      \"text\": \"\u003cp\u003e\u003ca href=\\\"https://www.ietf.org/\\\"\u003eThis is the IETF website\u003c/a\u003e\u003c/p\u003e\",\n      \"topic\": \"ietf112\",\n      \"dtime\": 109000\t\t\t// display time [ms]\n    },\n    {\n      \"author\": \"Jane Doe\",\n      \"text\": \"\u003cp\u003eCool!\u003c/p\u003e\",\n      \"topic\": \"ietf112\",\n      \"dtime\": 1750000\n    }\n  ],\n  \"panels\": [\t\t\t\t\t// panels displayed as tabs at the bottom of the page\n    {\n      \"type\": 0,\t\t\t\t\n      \"title\": \"Transcript\"\n    },\n    {\n      \"type\": 1,\n      \"title\": \"Datatracker\",\n      \"link\": \"https://datatracker.ietf.org/meeting/112/session/dispatch\"\n    },\n    {\n      \"type\": 3,\n      \"title\": \"Show of hands\"\n    }\n  ]\n}\n```\n\n- `transcripts_folder` -- contains the transcripts that will be displayed in the related panel.\n\n- `polls_folder` -- contains the polls data that will be displayed in the related panel.\n\nWe suggest that you create symlinks to these subdirectories in order to avoid overriding their content when deploying updates. \n\n#### Panels Types\n\n- Type 0 -- Transcripts -- a tab with the transcripts will be displayed. The application will look for a JSON file with the same name as the `session` query parameter, within the `transcripts_folder` set in `config.json`\n- Type 1 -- Iframe -- an iframe to an external location will be embedded in a tab\n- Type 2 -- **DEPRECATED** Description -- text description with date information to be displayed in a tab. \n- Type 3 -- Polls -- a tab with the poll results will be displayed. The application will look for a JSON file with the same name as the `session` query parameter, within the `polls_folder` set in `config.json`\n\n---\n## Application structure\n\n### SASS Architecture\n\n- `index.sass` -- This is the file that contains all the resets, \"normalizations\" and global styles. It is a mixture of normalize.css and reset.css from Bootstrap.\n\n- `app.sass` -- This is the CSS file that is mainly concerned with the Layout of the application.\n\n- `ComponentName.sass` -- Every component have its own sass file imported on top to ensure the maximum reusability.\n\n\n---\n## Run the app\nOnce you built the app, you can just copy the output directory under your webserver.\nThe application takes a `session` query parameter that is used to fetch JSON data.\nThe application will look into the subdirectories set in `config.json` for JSON files that have to be named as the `session` query parameter used.\n\nExample: `https://example.com/playout/?session=IETF112-DISPATCH-20211108-1200`. \nThe application will try to fetch the following JSON files:\n\n- `sessions/IETF112-DISPATCH-20211108-1200`\n\n- `transcripts/IETF112-DISPATCH-20211108-1200`\n\n- `polls/IETF112-DISPATCH-20211108-1200`\n\n\n---\n## Cloudflare Worker\nCloudflare woker soruce sits under `worker` directory.\n\nTo run locally (from `worker/`):\n```\nnpx wrangler dev\n```\n\nTo deploy the cloudflare worker:\n```\nnpx wrangler deploy\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fietf-tools%2Fmeetecho-recording-player","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fietf-tools%2Fmeetecho-recording-player","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fietf-tools%2Fmeetecho-recording-player/lists"}