{"id":16178188,"url":"https://github.com/satelllte/web-audio-on-server","last_synced_at":"2026-05-01T19:34:59.717Z","repository":{"id":224813671,"uuid":"764287460","full_name":"satelllte/web-audio-on-server","owner":"satelllte","description":"Proof-of-concept demonstrating the usage of Web Audio API on server using Playwright","archived":false,"fork":false,"pushed_at":"2024-03-05T22:04:27.000Z","size":27,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T11:34:13.813Z","etag":null,"topics":["playwright","web-audio","web-audio-api"],"latest_commit_sha":null,"homepage":"","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/satelllte.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-27T20:09:38.000Z","updated_at":"2025-02-03T18:33:19.000Z","dependencies_parsed_at":"2024-10-10T05:23:44.842Z","dependency_job_id":"f133579c-b869-4e29-8023-5230df81e1a3","html_url":"https://github.com/satelllte/web-audio-on-server","commit_stats":null,"previous_names":["satelllte/web-audio-on-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/satelllte/web-audio-on-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satelllte%2Fweb-audio-on-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satelllte%2Fweb-audio-on-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satelllte%2Fweb-audio-on-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satelllte%2Fweb-audio-on-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satelllte","download_url":"https://codeload.github.com/satelllte/web-audio-on-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satelllte%2Fweb-audio-on-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32510808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["playwright","web-audio","web-audio-api"],"created_at":"2024-10-10T05:12:57.581Z","updated_at":"2026-05-01T19:34:59.697Z","avatar_url":"https://github.com/satelllte.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Web Audio on Server\n\nProof-of-concept demonstrating the usage of [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API) on server using [Playwright](https://github.com/microsoft/playwright).\n\n## How it works\n\nThe core audio rendering logic put in [src/renderAudio.ts](./src/renderAudio.ts) script, which uses [OfflineAudioContext](https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioContext) to generate audio buffer. Then it's being taken by some wrapping code to put it into an HTML page wrapper to be opened by Playwright browser to download the resulting audio file.\n\nThe key benefit of Playwright is that it allows to run this logic on any platform, preserving all of the features of Web Audio API. So there's no need of some custom Web Audio API re-implementation solution for server, which is a very difficult task to complete.\n\n## Getting started\n\nPrerequisites:\n\n- [Node.js](https://nodejs.org) v20 or later\n- [Bun](https://bun.sh/) v1 or later\n\nTo install dependencies:\n\n```bash\nbun install\n```\n\nTo run:\n\n```bash\nbun run build\nbun run render\n```\n\n---\n\nThis project was created using `bun init` in bun v1.0.29. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatelllte%2Fweb-audio-on-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatelllte%2Fweb-audio-on-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatelllte%2Fweb-audio-on-server/lists"}