---
title: "台本を読み返す（行番号つき）"
method: GET
path: "/api/v1/projects/{projectId}"
tags: ["projects"]
---

# 台本を読み返す（行番号つき）

`GET /api/v1/projects/{projectId}`

## Request

- Base URL: `https://app.yukkurigen.com`
- URL: `https://app.yukkurigen.com/api/v1/projects/{projectId}`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

## Path parameters

- `projectId` string, required

## Response `200`

プロジェクトと行

- object
  - `project` object
  - `lines` object[]: 行（Firestore の行そのもの）。text はルビ記法のまま。audio_url があれば音声あり。audio_stale: true は、音声を作ったあとに読みの辞書（/api/v1/pronunciations）で読みが変わった行——音声は前の読みのまま鳴る。audio/generate を lineIds なしで呼ぶと作り直す。speech_text はその音声を作ったときに読ませた文
  - `subtitleWarnings` object[]: 字幕が長すぎてフォント縮小または下限でも収まらない行の一覧。存在しない場合は省略。fits=shrunk: 縮小表示、fits=overflow: 下限でも収まらない
    - `index` number, required: 行番号
    - `chars` number, required: テキストの文字数
    - `fits` 'shrunk' | 'overflow', required: shrunk=縮小、overflow=下限でも収まらない
    - `suggestion` string, required: split or shorten to ≤N chars

## Other responses

- `401`: 未認証
- `403`: 権限不足（projects:read / code: insufficient_scope）
- `404`: 見つからない

## Changes

- **2026-10-20** `ba5f36b016da`: 15 warning, 9 info
  - added the new `already_subscribed` enum value to the `code` response property for the response status `401`
  - added the new `already_subscribed` enum value to the `code` response property for the response status `403`
  - added the new `already_subscribed` enum value to the `code` response property for the response status `404`
  - added the new `render_not_paid` enum value to the `code` response property for the response status `401`
  - …20 more

[Operation history](https://skmtc.dev/yukkurigen/apis/yukkurigen-ai-operated-api/changes/api/v1/projects/:projectId/get.md)

---

[API](https://skmtc.dev/yukkurigen/apis/yukkurigen-ai-operated-api.md) · [All operations](https://skmtc.dev/yukkurigen/apis/yukkurigen-ai-operated-api/llms.txt) · [OpenAPI document](https://skmtc.dev/yukkurigen/apis/yukkurigen-ai-operated-api/revisions/ba5f36b016da?raw)
