> ## Documentation Index
> Fetch the complete documentation index at: https://docs.youka.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Projects

> 진행 중인 가라오케 프로젝트를 생성, 조회, 대기, 변경합니다

프로젝트는 하나의 가라오케 트랙에 대한 진행 중인 리소스입니다. 프로젝트는 소스 미디어, 동기화된 가사, 분리된 스템, 렌더 설정, 그리고 그로부터 생성된 내보내기(export)를 소유합니다.

## `project create`

로컬 파일 또는 URL에서 새 프로젝트를 생성합니다.

```bash theme={null}
youka project create <source> [options]
```

<ParamField path="source" type="string" required>
  로컬 파일 경로(`./song.mp3`) 또는 HTTP/HTTPS URL
  (`https://example.com/song.mp4`)입니다.
</ParamField>

### Options

| Option                          | Description                                         |
| ------------------------------- | --------------------------------------------------- |
| `--title <title>`               | 프로젝트 제목                                             |
| `--mode <mode>`                 | `none`, `transcribe`, 또는 `align`                    |
| `--lyrics <text>`               | 가사 텍스트                                              |
| `--lang <code>`                 | 언어 코드                                               |
| `--sync-model <model>`          | 가사 동기화 모델                                           |
| `--split-model <model>`         | 스템 분리 모델                                            |
| `--max-video-quality <quality>` | URL 소스의 최대 비디오 화질: `720p`, `1080p`, `4k`, 또는 `best` |
| `--preset <presetId>`           | 프로젝트 생성 시 프리셋 적용                                    |
| `--export`                      | 프로젝트가 준비되면 내보내기 생성                                  |
| `--download`                    | 내보내기를 생성하고 완료까지 대기한 뒤 다운로드                          |
| `--output <path>`               | `--download`의 출력 경로                                 |

### Examples

<CodeGroup>
  ```bash local-file theme={null}
  youka project create ./song.mp3 \
    --title "My Song" \
    --mode transcribe \
    --lang en \
    --wait \
    --json
  ```

  ```bash url theme={null}
  youka project create "https://example.com/song.mp4" \
    --max-video-quality 4k \
    --download \
    --output ./karaoke.mp4 \
    --json
  ```

  ```bash align theme={null}
  youka project create ./song.mp3 \
    --mode align \
    --lyrics "$(cat lyrics.txt)" \
    --sync-model audioshake-alignment \
    --wait \
    --json
  ```
</CodeGroup>

규칙:

* 가사를 전달하고 `--mode`를 생략하면 CLI는 기본값으로 `align`을 사용합니다.
* `align`에는 가사가 필요합니다.
* `transcribe`와 `none`은 가사를 허용하지 않습니다.
* `--download`는 `--export`를 포함합니다.
* `--max-video-quality`는 HTTP/HTTPS URL 소스에만 적용됩니다. 기본값은 `1080p`이며, 해당 제한까지 가능한 최상의 화질을 사용하고, 플랫폼이 제한된 스트림을 제공하지 않는 경우 가능한 최상의 포맷으로 대체합니다.

## `project list`

인증된 계정의 모든 프로젝트를 나열합니다.

```bash theme={null}
youka project list
youka project list --json
```

## `project quote`

프로젝트를 생성하지 않고, 프로젝트 생성에 필요한 크레딧을 견적합니다.

```bash theme={null}
youka project quote <source> [options]
```

`source`는 `project create`와 동일한 로컬 파일 경로 또는 HTTP/HTTPS URL 형식을 받습니다.
`--duration`이 없으면 CLI는 서버가 미디어 길이를 정확히 측정할 수 있도록 소스를 업로드하지만,
프로젝트는 생성하지 않습니다.

### Options

| Option                          | Description                                         |
| ------------------------------- | --------------------------------------------------- |
| `--title <title>`               | 프로젝트 제목                                             |
| `--mode <mode>`                 | `none`, `transcribe`, 또는 `align`                    |
| `--lyrics <text>`               | `align`용 가사 텍스트                                     |
| `--lang <code>`                 | 언어 코드                                               |
| `--sync-model <model>`          | 가사 동기화 모델                                           |
| `--split-model <model>`         | 스템 분리 모델                                            |
| `--max-video-quality <quality>` | URL 소스의 최대 비디오 화질: `720p`, `1080p`, `4k`, 또는 `best` |
| `--duration <seconds>`          | 소스를 업로드하지 않고 알려진 길이로 견적                             |

Examples:

```bash theme={null}
youka project quote ./song.mp3 --mode transcribe --json
youka project quote https://example.com/song.mp4 --max-video-quality 4k --mode transcribe --json
youka project quote ./song.mp3 --duration 210 --mode none --json
```

## `project show`

정규화된 `state`, `pendingOperation`, 스템, 설정, 내보내기를 포함해 현재 프로젝트 상태를 가져옵니다.

```bash theme={null}
youka project show <projectId>
```

<ParamField path="projectId" type="string" required>
  `project create`에서 반환된 프로젝트 ID입니다.
</ParamField>

## `project wait`

프로젝트가 종료 상태(terminal state)에 도달할 때까지 폴링합니다.

```bash theme={null}
youka project wait <projectId> --json
```

## `project delete`

프로젝트와 연결된 모든 스템, 가사, 내보내기를 삭제합니다.

```bash theme={null}
youka project delete <projectId> --idempotency-key delete-<projectId>
```

<Warning>
  삭제는 되돌릴 수 없습니다. 재시도를 안전하게 하려면 `--idempotency-key`를 전달하세요.
</Warning>

## `project sync`

기존 프로젝트에서 가사 전사 또는 정렬을 다시 실행합니다.

```bash theme={null}
youka project sync <projectId> [options]
```

| Option                 | Description             |
| ---------------------- | ----------------------- |
| `--mode <mode>`        | `transcribe` 또는 `align` |
| `--text <text>`        | 가사 텍스트                  |
| `--lang <code>`        | 언어 코드                   |
| `--sync-model <model>` | 가사 동기화 모델               |

Example:

```bash theme={null}
youka project sync $PROJECT_ID \
  --mode align \
  --text "$(cat lyrics.txt)" \
  --wait \
  --json
```

## `project separate`

기존 프로젝트에서 스템 분리를 다시 실행합니다.

```bash theme={null}
youka project separate <projectId> [--split-model <model>]
```

Example:

```bash theme={null}
youka project separate $PROJECT_ID --split-model audioshakeai --wait --json
```

## `project settings`

활성 프로젝트 설정을 읽거나 업데이트합니다.

```bash theme={null}
youka project settings <projectId>
youka project settings <projectId> --preset <presetId> --body ./settings.json
```

`--preset`과 `--body`가 모두 없으면, 이 명령은 현재 설정을 반환합니다. 둘 중 하나라도 있으면 업데이트를 수행합니다.

Examples:

<CodeGroup>
  ```bash show theme={null}
  youka project settings $PROJECT_ID --json
  ```

  ```bash update theme={null}
  youka project settings $PROJECT_ID \
    --preset preset_abc123 \
    --body ./project-settings.json \
    --json
  ```
</CodeGroup>

## `project stem list`

프로젝트의 스템을 나열합니다.

```bash theme={null}
youka project stem list <projectId>
youka project stem list <projectId> --json
```

## `project stem download`

하나 이상의 스템 파일을 디스크로 다운로드합니다. 스템은 저장된 원본 형식 그대로 다운로드되며,
CLI는 이를 트랜스코딩하지 않습니다.

```bash theme={null}
youka project stem download <projectId> <stemId> --output ./stems
youka project stem download <projectId> --type instrumental --output ./stems
youka project stem download <projectId> --type original --type backing-vocals --type vocals --output ./stems
youka project stem download <projectId> --all --output ./stems
```

지원되는 `--type` 값은 `original`, `instrumental`, `vocals`, `backing_vocals`입니다. CLI는 또한 별칭으로 `backing-vocals`, `backingVocals`, `backingvocals`도 허용합니다.

## What's next

* [Exports](/ko/cli/exports) - 완성된 가라오케를 렌더링합니다
* [Presets](/ko/cli/presets) - 재사용 가능한 렌더 구성을 관리합니다
* [Render settings reference](/en/render-settings-reference) - 공유 프리셋 및 설정 필드
