├── .editorconfig ├── .eslintignore ├── .eslintrc.cjs ├── .github └── workflows │ └── build-all-platforms.yml ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc.yaml ├── LICENSE ├── PR.md ├── README.md ├── RELEASE_NOTES_v2.0.0.md ├── StreamGrid └── README.md ├── bruno ├── Delete Stream.bru ├── Get Grids.bru ├── Get Streams.bru ├── Health.bru ├── Load Grid.bru ├── Post Grid.bru ├── Post Streams.bru ├── Put Streams.bru ├── README.md ├── bruno.json └── environments │ └── Local.bru ├── dev-app-update.yml ├── docs └── API.md ├── electron.vite.config.1756665296950.mjs ├── electron.vite.config.1761335502280.mjs ├── electron.vite.config.ts ├── implementation_plan.md ├── package.json ├── resources ├── icon.png └── icon.svg ├── src ├── main │ ├── apiAuth.ts │ ├── apiServer.ts │ ├── index.ts │ └── rtspService.ts ├── preload │ ├── index.d.ts │ └── index.ts ├── renderer │ ├── index.html │ └── src │ │ ├── App.tsx │ │ ├── __tests__ │ │ └── performance.test.tsx │ │ ├── assets │ │ ├── StreamGrid.png │ │ ├── StreamGrid.svg │ │ ├── base.css │ │ ├── icon.ico │ │ ├── logo.png │ │ ├── main.css │ │ └── wavy-lines.svg │ │ ├── components │ │ ├── AddStreamDialog.tsx │ │ ├── AutoArrangeDialog.tsx │ │ ├── ChatCard.tsx │ │ ├── GridManagementDialog.tsx │ │ ├── GridSelector.tsx │ │ ├── LazyChat.tsx │ │ ├── LoadingScreen.tsx │ │ ├── M3U8ImportDialog.tsx │ │ ├── OptimizedStreamCard.tsx │ │ ├── SettingsDialog.tsx │ │ ├── StreamCard.tsx │ │ ├── StreamErrorBoundary.tsx │ │ ├── StreamGrid.tsx │ │ ├── UpdateAlert.tsx │ │ ├── Versions.tsx │ │ └── VirtualStreamGrid.tsx │ │ ├── env.d.ts │ │ ├── hooks │ │ ├── useDebouncedStore.ts │ │ ├── useLayoutWorker.ts │ │ ├── usePerformanceMonitor.ts │ │ └── usePlayerPool.ts │ │ ├── main.tsx │ │ ├── store │ │ ├── streamSelectors.ts │ │ └── useStreamStore.ts │ │ ├── types │ │ ├── grid.ts │ │ └── stream.ts │ │ ├── utils │ │ └── m3u8Parser.ts │ │ └── workers │ │ └── layoutWorker.ts └── shared │ └── types │ ├── api.ts │ ├── grid.ts │ └── rtsp.ts ├── tsconfig.json ├── tsconfig.node.json └── tsconfig.web.json /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/.editorconfig -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | out 4 | .gitignore 5 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/.eslintrc.cjs -------------------------------------------------------------------------------- /.github/workflows/build-all-platforms.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/.github/workflows/build-all-platforms.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/.gitignore -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/.npmrc -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc.yaml: -------------------------------------------------------------------------------- 1 | singleQuote: true 2 | semi: false 3 | printWidth: 100 4 | trailingComma: none 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/LICENSE -------------------------------------------------------------------------------- /PR.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/PR.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/README.md -------------------------------------------------------------------------------- /RELEASE_NOTES_v2.0.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/RELEASE_NOTES_v2.0.0.md -------------------------------------------------------------------------------- /StreamGrid/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/StreamGrid/README.md -------------------------------------------------------------------------------- /bruno/Delete Stream.bru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/bruno/Delete Stream.bru -------------------------------------------------------------------------------- /bruno/Get Grids.bru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/bruno/Get Grids.bru -------------------------------------------------------------------------------- /bruno/Get Streams.bru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/bruno/Get Streams.bru -------------------------------------------------------------------------------- /bruno/Health.bru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/bruno/Health.bru -------------------------------------------------------------------------------- /bruno/Load Grid.bru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/bruno/Load Grid.bru -------------------------------------------------------------------------------- /bruno/Post Grid.bru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/bruno/Post Grid.bru -------------------------------------------------------------------------------- /bruno/Post Streams.bru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/bruno/Post Streams.bru -------------------------------------------------------------------------------- /bruno/Put Streams.bru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/bruno/Put Streams.bru -------------------------------------------------------------------------------- /bruno/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/bruno/README.md -------------------------------------------------------------------------------- /bruno/bruno.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/bruno/bruno.json -------------------------------------------------------------------------------- /bruno/environments/Local.bru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/bruno/environments/Local.bru -------------------------------------------------------------------------------- /dev-app-update.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/dev-app-update.yml -------------------------------------------------------------------------------- /docs/API.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/docs/API.md -------------------------------------------------------------------------------- /electron.vite.config.1756665296950.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/electron.vite.config.1756665296950.mjs -------------------------------------------------------------------------------- /electron.vite.config.1761335502280.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/electron.vite.config.1761335502280.mjs -------------------------------------------------------------------------------- /electron.vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/electron.vite.config.ts -------------------------------------------------------------------------------- /implementation_plan.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/implementation_plan.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/package.json -------------------------------------------------------------------------------- /resources/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/resources/icon.png -------------------------------------------------------------------------------- /resources/icon.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/resources/icon.svg -------------------------------------------------------------------------------- /src/main/apiAuth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/main/apiAuth.ts -------------------------------------------------------------------------------- /src/main/apiServer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/main/apiServer.ts -------------------------------------------------------------------------------- /src/main/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/main/index.ts -------------------------------------------------------------------------------- /src/main/rtspService.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/main/rtspService.ts -------------------------------------------------------------------------------- /src/preload/index.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/preload/index.d.ts -------------------------------------------------------------------------------- /src/preload/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/preload/index.ts -------------------------------------------------------------------------------- /src/renderer/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/index.html -------------------------------------------------------------------------------- /src/renderer/src/App.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/App.tsx -------------------------------------------------------------------------------- /src/renderer/src/__tests__/performance.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/__tests__/performance.test.tsx -------------------------------------------------------------------------------- /src/renderer/src/assets/StreamGrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/assets/StreamGrid.png -------------------------------------------------------------------------------- /src/renderer/src/assets/StreamGrid.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/assets/StreamGrid.svg -------------------------------------------------------------------------------- /src/renderer/src/assets/base.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/assets/base.css -------------------------------------------------------------------------------- /src/renderer/src/assets/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/assets/icon.ico -------------------------------------------------------------------------------- /src/renderer/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/assets/logo.png -------------------------------------------------------------------------------- /src/renderer/src/assets/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/assets/main.css -------------------------------------------------------------------------------- /src/renderer/src/assets/wavy-lines.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/assets/wavy-lines.svg -------------------------------------------------------------------------------- /src/renderer/src/components/AddStreamDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/AddStreamDialog.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/AutoArrangeDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/AutoArrangeDialog.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/ChatCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/ChatCard.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/GridManagementDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/GridManagementDialog.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/GridSelector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/GridSelector.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/LazyChat.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/LazyChat.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/LoadingScreen.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/LoadingScreen.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/M3U8ImportDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/M3U8ImportDialog.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/OptimizedStreamCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/OptimizedStreamCard.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/SettingsDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/SettingsDialog.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/StreamCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/StreamCard.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/StreamErrorBoundary.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/StreamErrorBoundary.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/StreamGrid.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/StreamGrid.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/UpdateAlert.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/UpdateAlert.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/Versions.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/Versions.tsx -------------------------------------------------------------------------------- /src/renderer/src/components/VirtualStreamGrid.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/components/VirtualStreamGrid.tsx -------------------------------------------------------------------------------- /src/renderer/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/renderer/src/hooks/useDebouncedStore.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/hooks/useDebouncedStore.ts -------------------------------------------------------------------------------- /src/renderer/src/hooks/useLayoutWorker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/hooks/useLayoutWorker.ts -------------------------------------------------------------------------------- /src/renderer/src/hooks/usePerformanceMonitor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/hooks/usePerformanceMonitor.ts -------------------------------------------------------------------------------- /src/renderer/src/hooks/usePlayerPool.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/hooks/usePlayerPool.ts -------------------------------------------------------------------------------- /src/renderer/src/main.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/main.tsx -------------------------------------------------------------------------------- /src/renderer/src/store/streamSelectors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/store/streamSelectors.ts -------------------------------------------------------------------------------- /src/renderer/src/store/useStreamStore.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/store/useStreamStore.ts -------------------------------------------------------------------------------- /src/renderer/src/types/grid.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/types/grid.ts -------------------------------------------------------------------------------- /src/renderer/src/types/stream.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/types/stream.ts -------------------------------------------------------------------------------- /src/renderer/src/utils/m3u8Parser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/utils/m3u8Parser.ts -------------------------------------------------------------------------------- /src/renderer/src/workers/layoutWorker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/renderer/src/workers/layoutWorker.ts -------------------------------------------------------------------------------- /src/shared/types/api.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/shared/types/api.ts -------------------------------------------------------------------------------- /src/shared/types/grid.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/shared/types/grid.ts -------------------------------------------------------------------------------- /src/shared/types/rtsp.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/src/shared/types/rtsp.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/tsconfig.node.json -------------------------------------------------------------------------------- /tsconfig.web.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LordKnish/StreamGrid/HEAD/tsconfig.web.json --------------------------------------------------------------------------------