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

# Share

> LTB 프로젝트의 읽기 전용 공개 링크를 발행하거나, 완성된 영상을 ZIP으로 내려받아 공유합니다. 프로젝트당 활성 링크는 하나, 시청에는 로그인이 필요 없습니다.

헤더의 `Share` 버튼을 열고 탭을 고르세요. 첫 번째 탭은 프로젝트를 공개 URL로 게시합니다. 두 번째 탭은 선택한 영상들을 ZIP으로 내려받습니다. 링크는 동료·클라이언트용, ZIP은 편집자·아카이브용입니다.

<Frame caption="Share 드롭다운 — 헤더 버튼 아래에 고정되는 두 개의 탭">
  {/* TODO: capture share/01-dropdown.png — Share tab open, 4:3 */}
</Frame>

## 두 탭, 두 가지 목적

드롭다운은 한 면이지만 두 탭이 하는 일은 다릅니다.

<CardGroup cols={2}>
  <Card title="Share 탭" icon="link" href="#share-탭">
    공개 URL을 발행합니다. 받는 사람은 로그인 없이 읽기 전용으로 프로젝트에 접근합니다.
  </Card>

  <Card title="Export 탭" icon="download" href="#export-탭">
    선택한 영상들을 하나의 ZIP 파일로 묶어 내려받습니다.
  </Card>
</CardGroup>

## Share 탭

`Share`를 누르는 즉시 링크가 활성화됩니다. 드롭다운은 CTA 자리에 주소 입력란·복사 버튼·`View site` 바로가기를 띄웁니다. `Unshare`를 누르면 회수됩니다.

<Frame caption="게시 후 — 주소 입력란과 `Unshare`·`View site`" />

게시된 URL은 `https://share.lettherebe.page/<token>` 형태를 따릅니다. 링크를 가진 누구나 시청할 수 있으며, 페이지 어디에서도 가입을 권하지 않습니다.

### 받는 사람이 보는 것

공유 페이지는 프로젝트를 읽기 전용으로 렌더링합니다. 비트·컷·완성된 영상이 순서대로 재생됩니다. 코멘트나 편집 기능은 노출되지 않습니다. 대시보드·결제·다른 프로젝트는 어디에도 보이지 않습니다.

### 프로젝트당 활성 링크 하나

프로젝트마다 한 번에 하나의 토큰만 활성화됩니다.

* `Share`를 두 번째로 호출해도 같은 URL이 반환됩니다 — 중복 링크가 쌓이지 않습니다.
* `Unshare`는 즉시 토큰을 폐기합니다. 프로젝트를 다시 열어 `Share`를 누르면 새 토큰이 발급되고, 이전 URL은 그대로 죽은 상태로 남습니다.

<Warning>
  활성 링크는 공개 상태입니다. URL을 가진 누구나 로그인 없이 프로젝트를 볼 수 있습니다. 시청자가 더 이상 필요하지 않다면 `Unshare`로 곧바로 회수하세요.
</Warning>

### 자동 만료 없음

`Unshare`를 누를 때까지 링크는 살아 있습니다. 카운트다운도, 예약 회수도, UI상의 링크별 만료 설정도 없습니다.

<Note>
  백엔드는 선택적인 만료 파라미터를 지원하지만, 현재 Share 드롭다운은 이를 `never`로 호출합니다. 회수하기 전까지 모든 활성 링크는 영구적이라고 가정하세요.
</Note>

## Export 탭

`Export`로 전환하면 완성된 영상을 ZIP으로 내려받을 수 있습니다. 탭에는 생성된 영상이 있는 모든 컷이 씬 단위로 묶여 표시됩니다.

<Frame caption="Export 탭 — 영상이 씬 단위로 묶이고 컷별 체크박스가 붙음" />

| 컨트롤               | 동작              |
| ----------------- | --------------- |
| `Select all`      | 프로젝트의 모든 컷을 토글  |
| 씬별 체크박스           | 해당 씬의 모든 컷을 선택  |
| 컷별 체크박스           | 개별 영상을 선택       |
| `Export N videos` | ZIP을 브라우저로 스트리밍 |

푸터에 선택한 개수와 예상 ZIP 크기가 표시됩니다. Export는 같은 Vercel 함수를 통해 실행되므로 두 가지 소프트 제한이 걸립니다.

| 제한                      | 발동 조건                    |
| ----------------------- | ------------------------ |
| `100 videos`            | 하드 캡 — 이를 넘기면 요청이 실패합니다  |
| 총 `1 GB` 또는 `50 videos` | 소프트 경고 — ZIP 생성 전 확인 메시지 |

<Tip>
  Export ZIP은 단일 HTTP 요청 안에서 끝까지 처리됩니다. 묶음이 크면 함수 타임아웃에 걸릴 수 있습니다. 큰 Export가 멈춘다면 씬 단위로 나눠 두 번에 나눠 실행하세요.
</Tip>

## 캡처 자산 명세

| 파일                           | 비율  | 상태                           | 우선순위 |
| ---------------------------- | --- | ---------------------------- | ---- |
| `share/01-dropdown.png`      | 4:3 | Share 탭 — 게시 전 상태            | P0   |
| `share/02-published.png`     | 4:3 | Share 탭 — 주소 입력란이 있는 게시 상태   | P0   |
| `share/03-export.png`        | 4:3 | Export 탭 — 씬 단위로 묶이고 선택된 영상들 | P1   |
| `share/04-header-button.png` | 4:3 | 헤더 `Share` 버튼에 `Shared` 배지   | P1   |

## 다음 단계

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/ko/getting-started/quickstart">
    한 줄에서 공유 링크까지 가장 짧은 경로.
  </Card>

  <Card title="Showcase" icon="image" href="https://lettherebe.app/showcase">
    다른 창작자들의 공개 작품 둘러보기.
  </Card>
</CardGroup>
