MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
HighAsCG - high media server
Translation pending
MediaJavaScript · GDScriptGitHub @mko1989OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Open source live events media server for Ubuntu
Taken from the repository README
Loading the full README.
Read the full README ↗HighAsCG is a free and opensource media server aimed at live events work built on CasparCG as a media engine, Godot as a client, including OpenFollow, stage previz imported from mvr with lights, VR stage etc.
It's workflow is based on Looks (similar to inputs in vMix), Timelines and Timelines inside Looks. It supports custom resolutions, synced outputs on Nvidia Pro cards that support it, Decklink outputs, NDI and others. Decklink inputs, NDI in (only Full NDI both ways), streaming, recording multi audio output, etc. Made only for Ubuntu. Wrote mostly by Claude.
Link to module: https://github.com/mko1989/companion-module-highpass-highascg
Link to project: https://github.com/mko1989/highascg
The repo has most of the features documented quite thoroughly with work orders inside work folder. Meaning you can point your Claude at it and tell it to change whatever you want and it will probably succeed and you will have your own custom version.
Boxes built from the ISO log in as casparcg / highascg (desktop, terminal, SSH, sudo). It is public, so change
it on your box with passwd. All default logins and how to change them: docs/DEFAULT_LOGINS.md.
HighAsCG is a single repository for modular, unified development: the operator UI (client/), the Node API bridge (src/), and playout tooling all live here and run together on the Ubuntu playout machine.
The Node service on port 4200 serves both the REST/WebSocket API and the built operator web GUI (dist-web/). Operators open http://<playout-ip>:4200/ in any browser on the playout host or LAN.
| Piece | Where it lives | Role |
|---|---|---|
| Operator UI sources | client/ in this repo | Canonical UI — dashboard, scenes, device view, timeline, settings |
| Production UI bundle | dist-web/ | Vite build output — what :4200 serves |
| API / Caspar / OS bridge | src/, index.js | AMCP, GPU, exFAT, WebSocket, config |
| Electron launcher | highascg-client (optional, separate packaging) | Stick prep, simulator, multiserver workflow, optional modules (CG Studio, …) — extracted from client/tools/electron-launcher/ here. Opens the system browser to playout :4200; does not host the control UI |
Do not develop the operator UI in highascg-client. That repo is an Electron packaging extract only. Edit
client/in this repo, thennpm run build:client.
docs/ARCHITECTURE.md.docs/.HighAsCG includes a built-in interactive architecture map that visualizes the entire codebase, file dependencies, and cross-references.
http://<playout-ip>:4200/map (or via the "Map" link in the header bar).5250)dist-web/index.html — run npm run build:client after cloning (or ship a prebuilt dist-web/)cd highascg
npm install
npm run build:client # client/ → dist-web/
npm start
By default: http://127.0.0.1:4200/ (UI + API) and http://127.0.0.1:4200/api/....
Defaults live in config/. Override via environment variables:
| Variable | Purpose | Default (production) |
|---|---|---|
CASPAR_HOST | CasparCG host IP | 127.0.0.1 |
CASPAR_PORT | AMCP port | 5250 |
HTTP_PORT | HTTP server port | 4200 |
HIGHASCG_HEADLESS | API only (no dist-web/) | unset (serve UI) |
BIND_ADDRESS | Listen address | 0.0.0.0 |
HIGHASCG_ENFORCE_AUTH | Require API token for /api/* and operator WS (1/true) | unset (open API) |
HIGHASCG_CORS_ORIGINS | Extra allowed CORS origins when auth is enforced (comma-separated) | unset |
OSC_LISTEN_PORT | OSC UDP port | 6251 |
CASPAR_ARM_FILE | Staged Caspar startup arm file | /home/casparcg/highascg/data/caspar-armed |
CLI flags: node index.js --help.
API authentication (opt-in): set HIGHASCG_ENFORCE_AUTH=1 or security.enforceAuth in config. Token is stored in .private/api-token (generated on first boot). See docs/SECURITY.md.
Modular config key security:
| Field | Purpose | Default |
|---|---|---|
enforceAuth | Require token for API/WS | false |
exposeToNetwork | Allow 0.0.0.0 bind when auth is on | true |
apiToken | Optional inline token (prefer .private/api-token) | "" |
Production ISO / eggs images enable auth via systemd drop-in (25-api-auth.conf) and factory security.enforceAuth in modular config.
CasparCG sends OSC over UDP. HighAsCG listens on OSC_LISTEN_PORT (default 6251).
HighAsCG can start first, apply config, then arm Caspar: GET/POST/DELETE /api/system/caspar-arm.
On playout (production): highascg.service serves API + dist-web/ on :4200. Do not install 10-headless.conf unless you explicitly want API-only debug.
UI iteration (same machine or dev laptop):
npm start # API on :4200
npm run dev:client # Vite on :4350 → proxies /api to :4200
Copy .env.development.example → .env.development; set VITE_HIGHASCG_API_ORIGIN to the API host.
Rebuild what the server serves after UI edits:
npm run build:client # refreshes dist-web/ — normal browser refresh is enough (no server restart)
Use npm run start:headless only for API-only debug.
Deploy to playout host:
npm run build:client # ensure dist-web/ is current
npm run deploy:dev # includes dist-web/ by default
See from_client/AGENT_SERVER_CLIENT_MERGE.md.
| Path | Role | On playout server? |
|---|---|---|
index.js, src/ | Node bridge — REST, WS, Caspar, OS hooks | Yes |
client/ | Canonical operator UI sources | Sources only — ship dist-web/ |
dist-web/ | Built operator UI (served on :4200) | Yes |
config/, template/, scripts/ | Settings, Caspar templates, systemd | Yes |
tools/runtime/ | exFAT sync CLI, staged Caspar start | Yes |
client/tools/electron-launcher/ | Electron hub sources (packaged in highascg-client) | No on playout |
work/ | Work orders, planning | No |
npm run smoke -- 4200
npm run smoke:caspar -- 4200
curl -sf http://127.0.0.1:4200/ | head -5 # expect HTML when dist-web present
Factory defaults in config/ are tracked in git so clean clones and CI can boot. Regenerate after changing src/config/defaults* or factory-starter:
npm run config:write-defaults
GitHub Actions runs on every push/PR to main (.github/workflows/ci.yml):
npm run verify:repo-integrity # no sync-conflicts, require() targets resolve
npm run lint # ESLint (warnings allowed in v1)
npm run format:check # Prettier on CI/tooling files (gradual tree adoption)
npm run test:ci # curated offline smoke tests (~1–3 min)
node tools/ci/npm-audit-ci.js # high/critical production audit (see docs/SECURITY.md)
Run the full local pipeline:
npm run ci:local
Optional pre-push hook:
cp scripts/hooks/pre-push.sample .git/hooks/pre-push && chmod +x .git/hooks/pre-push
Broader offline suite (slow, not in default CI):
npm run test:ci:full
HighAsCG is free software: you may use, modify, and redistribute it under the terms of the GNU Affero General Public License v3.0 or later (AGPL-3.0).
Copyright © 2024–2026 HighPass Marcin Wardecki
What that means in practice:
Third-party components bundled in the ISO (Ubuntu, NVIDIA, DeckLink, CasparCG, npm dependencies, etc.) remain under their own licenses; see WO-90 / future licenses/ manifest for notices.