MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
Download YouTube audio with rich metadata
Translation pending
MediaTypeScript · SvelteGitHub @jzsternOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
YouTube audio downloader with rich metadata
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A simple web app to download YouTube audio with rich metadata including song title, artist name, album name, artwork, and release year.
• Download audio from YouTube videos
• Automatically embed metadata:
• Song title
• Artist name
• Album name
• Artwork/thumbnail
• Release year
• Clean, simple UI
• Fast downloads with best audio quality
• Frontend: Svelte 5 + SvelteKit
• Backend: SvelteKit API routes
• Deployment: Railway (with bgutil-pot)
• Audio Processing: yt-dlp + ffmpegRead the full README ↗A simple web app to download YouTube, SoundCloud and Bandcamp audio with rich metadata including song title, artist name, album name, artwork, and release year.
Install dependencies:
bun install
Run the development server:
bun run dev
Build for production:
bun run build
This project is configured to deploy on Railway. Downloads run through yt-dlp, with a bgutil-pot sidecar supplying the PO tokens YouTube requires.
┌──────────────────────────────────────────────────────────────────────┐
│ Railway Project │
│ ┌─────────────────┐ ┌──────────────────────┐ │
│ │ dub-rip app │───────────────────────│ bgutil-pot │ │
│ │ (SvelteKit) │ PO tokens │ (port 4416) │ │
│ └─────────────────┘ └──────────────────────┘ │
└──────────────────────────────────────────────────────────────────────┘
brainicism/bgutil-ytdlp-pot-provider:2.0.0)A self-hosted Cobalt instance used to sit in front of yt-dlp. It was removed in July 2026 — see ADR 0001 — Remove Cobalt.
# dub-rip service
RAILPACK_DEPLOY_APT_PACKAGES="python3 ffmpeg"
# bgutil-ytdlp-pot-provider sidecar; required for yt-dlp PO tokens
BGUTIL_POT_URL=http://bgutil-pot.railway.internal:4416
# Optional — error monitoring. Omit all three to run without Sentry.
SENTRY_DSN=https://...
PUBLIC_SENTRY_DSN=https://...
# Build-time only; without it no source maps are uploaded and browser
# stack traces stay minified.
SENTRY_AUTH_TOKEN=sntrys_...
# Optional — enables the scheduled production canary (/api/canary returns
# 404 when unset). Must match the CANARY_TOKEN GitHub repo secret.
CANARY_TOKEN=...
These live only as Railway service variables on the dub-rip service in the production environment. There's no secrets manager and no .env file. Set or rotate one with railway variable set <NAME> --stdin -s dub-rip -e production, which redeploys automatically. Use railway run -s dub-rip -e production -- <cmd> to run something locally with them injected. PR environments inherit them from production. CI-only keys such as RAILWAY_API_TOKEN and RAMS_API_KEY are GitHub repository secrets instead.
Per-client rate limiting on /api/preview* and /api/download-stream needs no configuration: on Railway it keys on the X-Real-IP header (docs), since the proxy's own address would put every visitor in one bucket.
See deployment-strategy.md for detailed setup instructions, and error-reporting.md for what gets reported and why.
Pull requests automatically get isolated Railway environments via Railway's native GitHub PR environments (enabled in the Railway project under Settings → Environments). Each PR environment:
dub-rip-pr-<number> and branches from productionNo GitHub Actions secrets are required for previews — Railway manages create/deploy/teardown through its GitHub integration. (A previous hand-rolled railway-pr.yml workflow was removed: running it alongside Railway-native PR envs created two environments per PR and broke teardown, leaving orphaned environments that accrued idle compute cost.)
Note on adding new env vars: PR preview environments clone variables from production at creation time. If you add a new env var to the
dub-ripservice after a PR preview env was created, the preview env won't pick it up automatically. For env vars that the PR's code path depends on:
- Add the var to production before opening the PR (preview clones from current production state), OR
- Set the var manually on the PR preview env via the Railway dashboard /
railway variables --setafter the env is provisioned, OR- Push a new commit (or close + reopen the PR) to re-provision the preview env.
This caught us during the bgutil-pot rollout:
BGUTIL_POT_URLwas set on production after the bgutil-cutover PR's preview env was created, so the preview env failed fast on the yt-dlp fallback path even though production worked.
/api/download-streamThis project uses Claude Code with custom configuration for streamlined development.
| Command | Description |
|---|---|
/review | Code review for security, quality, and performance issues |
/security | OWASP Top 10 security audit of the codebase |
/test | Generate unit tests with Vitest |
/e2e | Run Playwright E2E tests with failure analysis |
/compound | Capture learnings to improve future development |
/interview | Interactive planning and task breakdown |
These plugins are enabled for all contributors:
| Plugin | Description |
|---|---|
frontend-design | High-quality frontend interface generation |
code-review | Automated code review for quality and standards |
typescript-lsp | TypeScript language server integration |
code-simplifier | Code clarity and maintainability improvements |
Specialized agents available via the Task tool:
| Agent | Description |
|---|---|
code-reviewer | Reviews changed files for quality and security |
debugger | Investigates errors and traces issues |
test-generator | Generates Vitest unit tests |
e2e-runner | Runs Playwright E2E tests |
security-auditor | OWASP Top 10 vulnerability scanning |
codebase-search | Semantic code search across the project |
media-interpreter | Analyzes images, diagrams, and screenshots |
open-source-librarian | Finds and evaluates open source libraries |
| Skill | Description |
|---|---|
planning-with-files | Structured planning with todo files |
svelte-code-writer | Official Svelte 5 docs lookup and autofixer CLI |
svelte-patterns | Project-specific component templates and patterns |
| Hook | Trigger | Description |
|---|---|---|
format-on-save | PostToolUse (Edit/Write) | Auto-formats with Biome |
keyword-detector | UserPromptSubmit | Suggests relevant commands |
check-comments | PostToolUse (Edit/Write) | Validates code comments |
todo-enforcer | Stop | Blocks exit with incomplete todos |
bun run test # Run unit tests
bun run test:e2e # Run E2E tests
bun run test:e2e:ui # Run E2E tests with interactive UI
MIT