MyGo 云音乐
Go와 MyGo로 만든 서드파티 네이버 클라우드 뮤직 데스크톱 클라이언트
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A premium AI-powered platform for content creators. Krakatoa hosts multiple AI tools under one monorepo behind a modern, high-conversion landing page. The flagship tool is the Reels Creator (a subtool of the Video studio) — an autonomous pipeline that turns a single theme into a faceless vertical video (Reels/TikTok) with dynamic, burned-in styled captions, across the Seedance and Veo engines.README 전문 보기 ↗A premium AI-powered platform for content creators. Krakatoa hosts multiple AI tools under one monorepo behind a modern, high-conversion landing page. The flagship tool is the Reels Creator (a subtool of the Video studio) — an autonomous pipeline that turns a single theme into a faceless vertical video (Reels/TikTok) with dynamic, burned-in styled captions, across the Seedance and Veo engines.
/tools/video → "Reels Creator") — one text-to-video subtool over two engines (Seedance + Veo):
style_anchor and per-scene prompts/narration..ass captions.CLAUDE.md.openai/gpt-4o-minibytedance/seedance-2.0-fastminimax/speech-02-turbovaibhavs10/incredibly-fast-whispernpm install
Create a .env.local file in the project root:
REPLICATE_API_TOKEN=your_replicate_token
RENDI_API_KEY=your_rendi_api_key
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
SUPABASE_STORAGE_BUCKET=krakatoa
# DOKU credit checkout (payments)
DOKU_CLIENT_ID=your_doku_client_id
DOKU_SECRET_KEY=your_doku_secret_key
DOKU_ENV=sandbox # or "production"
# DOKU_API_BASE= # optional override; defaults by DOKU_ENV
# DOKU_NOTIFICATION_URL= # optional per-request webhook override (same PATH as Back Office)
CRON_SECRET=your_random_cron_secret # required on deployment for GET /api/cron/*
GENERATION_WEBHOOK_SECRET=your_random_webhook_secret # required in production
NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY are intentionally
browser-visible. Never expose SUPABASE_SERVICE_ROLE_KEY or any provider,
payment, OAuth, cron, or webhook secret through a NEXT_PUBLIC_ variable.
DOKU_NOTIFICATION_URL is handy for local development: set it to your public
tunnel URL (e.g. https://<id>.trycloudflare.com/api/payments/doku/webhook) and
every checkout overrides DOKU's Back Office notification URL for that request.
The path must match the Notification URL configured on the payment channel in
the DOKU Back Office (only the domain may differ).
DOKU sends payment notifications to POST /api/payments/doku/webhook — register
this URL (and the success redirect /dashboard/settings?tab=credits) in the DOKU
merchant dashboard. NEXTAUTH_URL is reused to build the absolute callback URLs.
Create one private Supabase Storage bucket (default name: krakatoa, or set
SUPABASE_STORAGE_BUCKET in .env.local). Browser reads use owner-checked
signed URLs. Canonical user media paths begin with {userId}/:
| Path | Feature |
|---|---|
{userId}/videos/ | Generated videos and temporary video inputs |
{userId}/photos/ | Uploaded and generated images |
{userId}/resumable/{jobId}/ | Temporary pipeline-recovery staging |
npm run db:setup
This applies every file in supabase/migrations/ in order. Migrations are
idempotent and include the current private-storage, billing, auth, scheduling,
and generation-workflow schema. The local script requires a supported Supabase
Management API token or DATABASE_URL; repository agents use the configured
Supabase MCP deployment workflow described in CLAUDE.md.
npm run dev
Open http://localhost:3000 for the landing page, or http://localhost:3000/tools/video for the Video studio (select "Reels Creator" for the reels pipeline).
| Command | Description |
|---|---|
npm run dev | Start the Next.js dev server |
npm run build | Production build |
npm run start | Run the production build |
npm run lint | Lint the codebase |
npm run ci:checks | Run secretless deployment self-checks, audit, lint, and build |
npm run db:setup | Apply every migration in supabase/migrations/ (idempotent) |
app/
page.tsx # Landing page
tools/video/ # Video studio (Reels Creator + other video subtools)
api/generate-reels/route.ts # Unified Reels Creator pipeline (Seedance + Veo)
api/test-stitch/route.ts # Dev utility for re-running the stitching step
lib/reels-pipeline/ # Shared reels pipeline modules (llm, tts, ass, rendi, storage)
lib/ # Shared utilities (Supabase client, etc.)
public/ # Static assets
The POST /api/generate-reels endpoint runs the full pipeline:
SCENE_COUNT scenes, each with the style anchor appended verbatim. Auto-retries up to 3× on bad JSON or wrong scene count..ass subtitle file built with per-scene time offsets, uploaded to Supabase.See CLAUDE.md for an in-depth architecture description and the rationale behind specific implementation choices (LLM choice, no reference-video chaining, concat input normalization, etc.).
| Topic | Path |
|---|---|
| Monorepo & pipelines | CLAUDE.md |
| Code & security audit | Run /audit-repo; see the runbook and state |
| Admin Config v2 (unified panel) | docs/admin/admin-config-v2-plan.md |
| Admin Config v2 (ringkasan ID) | docs/admin/admin-config-v2-ringkasan.md |
| Pricing Config v2 | docs/billing/pricing-config-v2-plan.md |
Cron jobs & CRON_SECRET | docs/ops/cron-jobs.md |
| Generation cancel | docs/generation/generation-cancel-hardening-plan.md |
Deployable to Vercel out of the box. Make sure to set the environment variables above in your Vercel project settings.
maxDuration)Vercel's Hobby (free) plan hard-caps every Serverless Function at maxDuration = 300 seconds. If any route declares a higher value the deploy fails at the function-validation step with:
Builder returned invalid maxDuration value for Serverless Function "api/generate-reels".
Serverless Functions must have a maxDuration between 1 and 300 for plan hobby.
Because of this, the heavy generation routes — /api/generate-reels and /api/generate-storyboard-video — are pinned to maxDuration = 300 (look for the Vercel Hobby plan caps comment in each route.ts).
Runtime trade-off: generations that take longer than 5 minutes will be terminated by the function timeout. Upgrading to the Vercel Pro plan raises the ceiling to 800s, at which point these routes can be raised back to 600. Do not set any route above 300 while the project is on the Hobby plan.