{"id":13758390,"url":"https://github.com/streamwall/streamwall","last_synced_at":"2025-05-10T08:30:25.591Z","repository":{"id":37188486,"uuid":"272350676","full_name":"streamwall/streamwall","owner":"streamwall","description":"Display a mosaic of livestreams. Built for streaming.","archived":false,"fork":false,"pushed_at":"2025-02-23T00:28:03.000Z","size":3086,"stargazers_count":259,"open_issues_count":77,"forks_count":58,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-02-23T00:36:48.195Z","etag":null,"topics":["facebook","instagram","livestream","multistream","periscope","stream","twitch","woke","youtube"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/streamwall.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"ko_fi":"streamwall"}},"created_at":"2020-06-15T05:34:04.000Z","updated_at":"2025-02-23T00:19:41.000Z","dependencies_parsed_at":"2024-05-19T06:29:06.179Z","dependency_job_id":"ac472d48-f21a-4f9a-9a02-08eb6dae3cde","html_url":"https://github.com/streamwall/streamwall","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamwall%2Fstreamwall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamwall%2Fstreamwall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamwall%2Fstreamwall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamwall%2Fstreamwall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/streamwall","download_url":"https://codeload.github.com/streamwall/streamwall/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253389391,"owners_count":21900751,"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":["facebook","instagram","livestream","multistream","periscope","stream","twitch","woke","youtube"],"created_at":"2024-08-03T13:00:29.192Z","updated_at":"2025-05-10T08:30:25.573Z","avatar_url":"https://github.com/streamwall.png","language":"TypeScript","funding_links":["https://ko-fi.com/streamwall"],"categories":["Libraries"],"sub_categories":["JavaScript (Node.js)"],"readme":"# Streamwall\n\n:construction: Streamwall v2.0 is a work-in-progress :construction:\n\nGoals for the v2 branch:\n\n- TypeScript\n- Use Electron Forge to distribute packaged releases\n- Split out control server; refactor for local-only use without a webserver\n\n---\n\nStreamwall makes it easy to compose multiple livestreams into a mosaic, with source attributions and audio control.\n\n\n## How it works\n\nUnder the hood, think of Streamwall as a specialized web browser for mosaicing video streams. It uses [Electron](https://www.electronjs.org) to create a grid of web browser views, loading the specified webpages into them. Once the page loads, Streamwall finds the `\u003cvideo\u003e` tag and reformats the page so that the video fills the space. This works for a wide variety of web pages without specialized scrapers.\n\n\n## Configuration\n\nStreamwall has a growing number of configuration options. To get a summary run:\n\n```\nnpm start -- --help\n```\n\nFor long-term installations, it's recommended to put your options into a configuration file. To use a config file, run:\n\n```\nnpm start -- --config=\"../streamwall.toml\"\n```\n\nSee `example.config.toml` for an example.\n\n## Data sources\n\nStreamwall can load stream data from both JSON APIs and TOML files. Data sources can be specified in a config file (see `example.config.toml` for an example) or the command line:\n\n```\nnpm start -- --data.json-url=\"https://your-site/api/streams.json\" --data.toml-file=\"./streams.toml\"\n```\n\n## Hotkeys\n\nThe following hotkeys are available with the \"control\" webpage focused:\n\n- **alt+[1...9]**: Listen to the numbered stream\n- **alt+shift+[1...9]**: Toggle blur on the numbered stream\n- **alt+s**: Select the currently focused stream box to be swapped\n- **alt+c**: Activate [Streamdelay](https://github.com/chromakode/streamdelay) censor mode\n- **alt+shift+c**: Deactivate [Streamdelay](https://github.com/chromakode/streamdelay) censor mode\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreamwall%2Fstreamwall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstreamwall%2Fstreamwall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreamwall%2Fstreamwall/lists"}