# 요약과 JSON 가져오기

**공개 요약은 자동으로 연결하고, 내 시간표는 파일로 가져옵니다.** 호환 JSON·TXT는 ttaem.com에 올리지 않아도 사용할 수 있습니다.

## 어떤 자료를 쓰나요?

| 자료 | 앱에서 여는 방법 |
|---|---|
| ttaem.com의 CVA 공개 요약 | 해당 다시보기에서 작업실을 열면 요약 시간축에 표시 |
| 호환 시간축 JSON·TXT | **댓글 가져오기 → 시간표 파일 열기 → 미리보기 → 시간축에 불러오기** |
| 저장한 컷 작업 JSON | **작업 이어 열기**로 편집 작업 복원 |

같은 `.json`이라도 용도가 다릅니다. 요약 원본이나 컷 작업 파일을 시간표 입력으로 열 수는 없습니다.

## CVA와 Loki 지원

[TTaem CVA · Loki 2.9.4.2](https://github.com/mizan0515/ttaem-CVA-loki-2.9.4.2)는 다시보기 하나에서 요약 페이지와 시간축·주요 장면을 만드는 공개 프로젝트입니다. 결과 페이지의 요약 방식 표기는 **Loki 2.9.4**이고, **2.9.4.2**는 저장소의 수정 버전입니다.

탬패드에서는 같은 영상의 **CVA 공개 요약**을 연결해 사용하거나, 내용을 **호환 시간축 JSON·TXT**로 준비해 가져올 수 있습니다.

> **Loki 3.0.2 준비 중** — 공개되면 지원 범위와 사용 방법을 이 안내에 추가합니다.

Loki의 `report.json`은 요약 저장·게시용 파일입니다. 탬패드의 로컬 시간표 입력과 형식이 다르므로 그대로 가져올 수 없습니다.

## 공개 요약 사용하기

1. [공개 요약 목록](https://ttaem.com/#recent)에서 방송을 찾습니다.
2. 해당 다시보기를 열고 탬패드 작업실에 들어갑니다.
3. 장면 목록과 **요약 시간축**을 확인합니다.

요약이 없는 영상도 댓글이나 로컬 시간표로 작업할 수 있습니다.

:::details 공개 요약의 파일 형식

자동 연결 자료는 `/vods/영상번호/editor-tools.json`의 `viewer_editor_tools.v1` 형식입니다. 현재 영상 번호와 자료의 영상 번호가 같아야 합니다. 읽는 페이지는 `/vods/영상번호/report`입니다.

**시간표 파일 열기**는 이 `editor-tools.json`이나 `report.json`을 직접 여는 기능이 아닙니다. 다른 사이트의 JSON 주소를 넣거나 파일 이름만 바꿔도 호환되지는 않습니다.

:::

## 게시 없이 내 파일 사용하기

1. 댓글 평문은 **TXT**, 도구에서 정리한 시간표는 **호환 JSON**으로 준비합니다.
2. **댓글 가져오기 → 시간표 파일 열기**에서 파일을 고릅니다.
3. 미리보기에서 시각·종류·원문·확인 안내를 살펴봅니다.
4. **시간축에 불러오기**를 누릅니다.

파일 선택이나 미리보기만으로 기존 자료가 바뀌지 않습니다. 영상 파일이나 인터넷 게시도 포함하지 않습니다.

## JSON 예제

[예제 파일 열기](../../examples/summary-timeline.json)에서 아래 가상 시간표를 확인하고 `.json`으로 저장할 수 있습니다.

```json
{
  "format": "chzzk.comment-timeline",
  "version": 1,
  "documents": [{
    "name": "가상 영상 요약 시간표",
    "raw": "# 00:00 ~ 10:00 첫 게임\n## 01:00 ~ 05:00 첫 판\n- 02:35 다시 볼 순간\n- 03:00 ~ 03:20 [H?] 검토할 장면"
  }]
}
```

**D1 00:00–10:00 · D2 01:00–05:00 · Point 02:35 · 예상 구간 03:00–03:20**으로 읽습니다. `\n`은 줄바꿈입니다. [시간축 용어 보기](timeline.md)

:::details CVA 내용을 호환 JSON으로 옮길 때

분석 도구가 호환 형식으로 내보내거나 직접 아래 형식으로 준비해야 합니다. 탬패드에 요약 원본 자동 변환 버튼이 있는 것은 아닙니다.

| 내용 | 호환 항목 |
|---|---|
| D1 · D2 | `role: "chapter"`, `depth: 1` 또는 `2`. 바로 위 부모와 구간 확인 |
| Point | `startSec`만 지정. `role`은 생략 가능 |
| 하이라이트 | `role: "highlight"`와 시작·끝 지정 |
| 예상 구간 | 문서 `raw`에 `[H?]` 또는 `[예상]`과 시작·끝 표기 |

시각은 영상 시작부터 지난 **정수 초**입니다. 끝을 모르면 임의로 만들지 않습니다. 현재 시간표 입력은 `entries`의 `expected_highlight` 직접 지정을 거부하므로 예상 구간은 `raw`를 사용합니다.

호환 JSON은 장면 시간표를 전달합니다. 자막·채팅량·클립 등 요약의 모든 자료를 복원하지는 않습니다. 원문이 있으면 `raw`로 보존하고, `entries`로 만든 시간표는 원본 댓글과 구분합니다.

선택 필드 `videoNo`를 넣었다면 현재 다시보기 번호와 같아야 합니다. 필드와 제한은 [파일 형식](files.md#시간축-json-가져오기)에 있습니다.

:::

## 잘 안 열릴 때

| 안내 | 확인할 것 |
|---|---|
| 지원 형식 오류 | 시간축 JSON인지 확인. 요약 원본·컷 작업 파일은 다른 입력 |
| 다른 영상이라는 안내 | 파일의 `videoNo`와 현재 다시보기 번호 |
| 시각·부모·종료 안내 | 실제 영상 시각, D2의 부모 D1, 시작보다 뒤인 끝 |

[파일 예제](files.md) · [문제 해결](limits.md)
