{"id":22191798,"url":"https://github.com/bigbluebutton/bbb-playback","last_synced_at":"2025-04-09T09:09:00.576Z","repository":{"id":38823191,"uuid":"267664769","full_name":"bigbluebutton/bbb-playback","owner":"bigbluebutton","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-21T14:15:41.000Z","size":5948,"stargazers_count":29,"open_issues_count":31,"forks_count":40,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2024-10-29T14:51:03.783Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bigbluebutton.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-05-28T18:23:25.000Z","updated_at":"2024-10-21T14:15:43.000Z","dependencies_parsed_at":"2023-11-06T13:28:11.761Z","dependency_job_id":"a748c811-a00a-4155-8d26-2140f1058b37","html_url":"https://github.com/bigbluebutton/bbb-playback","commit_stats":{"total_commits":508,"total_committers":23,"mean_commits":22.08695652173913,"dds":0.2224409448818898,"last_synced_commit":"4ff01d45cb9a876fc30b3b6c95855db22645c771"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigbluebutton%2Fbbb-playback","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigbluebutton%2Fbbb-playback/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigbluebutton%2Fbbb-playback/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigbluebutton%2Fbbb-playback/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bigbluebutton","download_url":"https://codeload.github.com/bigbluebutton/bbb-playback/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247675629,"owners_count":20977381,"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-02T12:17:49.450Z","updated_at":"2025-04-09T09:09:00.552Z","avatar_url":"https://github.com/bigbluebutton.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bbb-playback\n\nClone this repository, install the dependencies and deploy\n```\ngit clone https://github.com/bigbluebutton/bbb-playback.git\ncd bbb-playback\nnpm install\n./deploy.sh\n```\n\nYou will be able to play your recordings using the following URL\n```\nhttps://\u003cdomain\u003e/playback/presentation/2.3/\u003crecordId\u003e\n```\n\n## URL query strings\n\n- frequency:\n  - `f=\u003cvalue\u003e`: renders per second (e.g., 5)\n\n- layout:\n  - `l=content`: focus on content\n  - `l=disabled`: disabled interactive elements\n  - `l=media`: focus on media\n  - `l=swapped`: content/media swapped\n\n- style: custom style\n  - `s=\u003cname\u003e`\n\n- time:\n  - `t=HhMmSs` (e.g., 1h10m5s)\n  - `t=MmSs`\n  - `t=Ss`\n\n- path:\n  - `p=path/to/recordings`\n\n- locale:\n  - `locale=locale-CODE` (e.g., pt-BR)\n\n- log:\n  - `debug`\n\n## Configuration\n\n- chat:\n  - `scroll`: automatic scroll [`true`|`false`]\n  - `align`: scroll align [`top`|`middle`|`bottom`]\n\n- controls:\n  - `about`\n  - `fullscreen`\n  - `search`\n  - `section`\n  - `swap`\n  - `thumbnails`\n\n- locale:\n  - `default`: fallback [`en`]\n\n- player: primary media configuration\n  - `rps`: renders per second\n  - `rates`: speed rates\n\n- shortcuts: alt + shift\n  - `fullscreen`: `K`\n  - `play/pause`: `Enter`\n  - `section`: `L`\n  - `seek`:\n    - `backward`: `ArrowLeft`\n    - `forward`: `ArrowRight`\n    - `seconds`: 15\n  - `skip`:\n    - `next`: `ArrowUp`\n    - `previous`: `ArrowDown`\n  - `swap`: `M`\n\n- styles: custom styles\n  - `default`: default style\n  - `url`: styles host\n  - `valid`: valid style names\n\n- thumbnails:\n  - `scroll`: automatic scroll [`true`|`false`]\n  - `align`: scroll align [`left`|`center`|`right`]\n\n## Standalone recordings\n\nbbb-playback can be used to create a self-contained recording - a single directory that contains all of the recording media files as well as the playback html and javascript code. To do this, use the following build command:\n```\nPUBLIC_URL=. REACT_APP_NO_ROUTER=1 npm run-script build\n```\nAnd then copy all of the files from the bbb-playback `build` directory and the files from `/var/bigbluebutton/published/presentation/\u003crecordid\u003e` together into a single directory.\n\n## External recordings\n\nbbb-playback can play recordings hosted somewhere other than the default location. To do this, build the bbb-playback with the following options:\n```\nREACT_APP_MEDIA_ROOT_URL=/different/relative/path/to/presentation/files npm run-script build\n```\nYou can also play medias from an external server. Note that you will need to have the `Access-Control-Allow-Origin` header returned on the medias for that to work.\n```\nREACT_APP_MEDIA_ROOT_URL=https://my-media-server.example.com npm run-script build\n```\n\n## Playing old recordings\n\nAt `/etc/bigbluebutton/nginx/presentation.nginx`:\n\n - v2.0, v2.1 and v2.2\n```\nlocation /playback/presentation/2.0/playback.html {\n  return 301 /playback/presentation/2.3/$arg_meetingId?$query_string;\n}\n```\n - [experimental] v0.9, v1.0 and v1.1\n```\nlocation /playback/presentation/0.9.0/playback.html {\n  return 301 /playback/presentation/2.3/$arg_meetingId?$query_string;\n}\n```\n\nReload nginx service\n```\nsudo systemctl reload nginx\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigbluebutton%2Fbbb-playback","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbigbluebutton%2Fbbb-playback","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigbluebutton%2Fbbb-playback/lists"}