
YouTube 자막 다운로드
Prosey는 YouTube에서 동영상 자막을 다운로드하고 표시하는 CLI 도구로, 수 시간을 낭비하지 않고 원하는 정보를 얻을 수 있게 해줍니다.
주요 사용 사례는 다음과 같습니다:
두 사용 사례 모두 시스템에 AI 어시스턴트가 필요합니다 (기본값: opencode, prosey config를 사용하여 직접 구성할 수 있습니다).
시스템에서 구문 강조기를 감지하면 멋진 색상 출력을 얻을 수 있습니다.
Prosey는 또한 기본 json 형식을 그대로 출력하거나 저장할 수 있습니다.
| 기능 | 설명 |
|---|---|
| 💡 요약 | 동영상 자막을 가져와 요약합니다 |
| 📖 읽기 | Markdown으로 형식화된 자막을 가져와 표시합니다 |
| 📋 자막 다운로드 | YouTube 자막을 일반 텍스트 또는 JSON 그대로 가져옵니다 |
| 🤖 AI 요약 | 자막을 모든 AI 에이전트(opencode, Claude, Copilot, Codex)로 파이프합니다 |
| 🎨 스마트 페이저 | bat, glow 또는 mdcat이 설치된 경우 자동 구문 강조 (또는 자신만의 페이저 구성) |
| 🛠️ 사용자 지정 | prosey config를 사용하여 구성 파일에 접근/편집하고 프롬프트를 사용자 지정합니다 |
| 💾 디스크 캐싱 | 자막과 요약이 디스크에 캐시되어 즉시 다시 읽을 수 있습니다 |
| 📄 지원 형식 | 일반 텍스트 및 JSON |
npx로 즉시 사용해 보세요:
npx @tacone/prosey 771PQEDeRmw
npx @tacone/prosey https://youtu.be/771PQEDeRmw --lang es -o transcript.txt
선호하는 패키지 관리자로 전역 설치합니다:
npm install -g @tacone/prosey
# 또는
yarn global add @tacone/prosey
# 또는
pnpm add -g @tacone/prosey
# 또는
bun install -g @tacone/prosey
그런 다음 어디서든 사용하세요:
prosey 771PQEDeRmw
개발에는 Bun 을 사용합니다 — 스크립트, 패키지 관리, 그리고 TypeScript 소스를 직접 실행합니다.
git clone https://github.com/tacone/prosey.git
cd prosey
bun install
bun run start -- 771PQEDeRmw
prosey [options] <video controls-url-or-id>
prosey read [options] <video controls-url-or-id>
prosey info [options] <video controls-url-or-id>
prosey summarize [options] <video controls-url-or-id>
prosey index
prosey render
prosey config
prosey help
summarize가 기본 명령이므로 prosey <id>는 AI 요약기를 실행합니다.
prosey read <id>를 사용하여 풍부한 형식의 자막을 다운로드하고 출력합니다.
summarize 명령은 자막을 가져와 [summarize] 구성 섹션의 프롬프트를 앞에 추가하고
결과를 구성된 AI 명령으로 파이프합니다.
read 명령은 자막을 다운로드하여 stdout으로 출력합니다 (일반 텍스트,
markdown 또는 JSON). AI 처리가 필요 없을 때 유용합니다.
info 명령은 동영상 메타데이터(제목, 채널, 길이, 조회수)를 표시합니다.
index 명령은 문서 인덱스를 다시 빌드하고 브라우저에서 엽니다.
인덱스는 데이터 디렉터리에 저장된 모든 요약과 자막을 나열하며
각 summarize/transcribe 실행 후 자동으로 다시 빌드됩니다. 콘텐츠 페이지에서
Prosey 로고를 클릭하면 인덱스로 돌아갑니다.
render 명령은 캐시된 markdown에서 모든 HTML 페이지를 다시 생성하고
(네트워크 또는 AI 처리 없음) 인덱스를 다시 작성합니다.
config 명령은 $EDITOR에서 구성 파일을 열어 편집합니다. $EDITOR가
설정되지 않은 경우 구성 파일 경로가 출력됩니다.
help 명령은 --help와 동일한 도움말 메시지를 표시합니다.
# 요약 (AI 요약 + 형식화 + 구문 강조)
prosey 771PQEDeRmw
# 요약 (위와 동일)
prosey summarize 771PQEDeRmw
# 자막 읽기 (AI 요약 + 형식화 + 구문 강조)
prosey read 771PQEDeRmw
# 동영상 메타데이터 표시
prosey info 771PQEDeRmw
# $EDITOR에서 구성 편집
prosey config
# 사용 가능한 언어 목록 표시
prosey read https://youtu.be/771PQEDeRmw --list
# 언어 지정
prosey read https://youtu.be/771PQEDeRmw --lang es
# JSON 표시 (AI 자막 처리 없음)
prosey read 771PQEDeRmw
# 일반 텍스트 표시 (AI 자막 처리 없음)
prosey read 771PQEDeRmw
# 자막을 파일로 저장
prosey read 771PQEDeRmw -o transcript.txt
--json을 사용하면 출력은 객체 배열입니다:
[
{
"text": "♪ We're no strangers to love ♪",
"offset": 18.64,
"duration": 3.24,
"timestamp": "00:18"
}
]
timestamp는 JSON 모드에서 항상 포함됩니다. JSON은 구조화된 데이터이므로
동영상 세부 정보는 (조용히) 생략됩니다.
이 프로젝트는 개발에 Bun 을 사용합니다.
bun run typecheck # TypeScript 검사
bun run start # 소스에서 CLI 실행
bun run test # 단위 테스트 실행
bun run build # Node 번들을 bin/prosey로 컴파일
npm에 게시하기 전에 bun run build가 prepack 훅을 통해 자동으로 실행되어
bin/prosey에 Node 호환 JS 번들을 생성합니다.
Prosey는 TOML 파일에서 구성을 읽습니다. 위치는
XDG Base Directory Specification
(~/.config/prosey/config.toml)을 따르거나, PROSEY_CONFIG_PATH
환경 변수를 설정하여 사용자 지정 경로를 사용할 수 있습니다.
구성 파일은 기본값으로 첫 실행 시 자동으로 생성됩니다.
언제든지 --reset-config를 사용하여 기본값을 복원할 수 있습니다.
pager자막 및 요약 출력을 위한 페이저 명령입니다. 기본값은 "auto"로,
다음 중 첫 번째로 사용 가능한 것을 감지합니다: bat -lmd --style plain → glow -p → mdcat -l -p → less.
사용자 지정 명령(예: "less -R")으로 설정하여 재정의할 수 있습니다. PROSEY_PAGER
환경 변수가 이 설정보다 우선합니다.
[summarize][summarize] 섹션은 summarize 명령을 구성합니다:
| 키 | 설명 |
|---|---|
prompt | 자막 앞에 추가되는 지시문 |
command | stdin을 통해 프롬프트를 받는 셸 명령 |
PROSEY_PAGER페이저 명령을 설정하는 환경 변수입니다. pager 구성 값보다 우선합니다.
"auto"로 설정하거나 비워두면 자동 감지를 사용합니다.
자막과 요약은 /tmp/prosey/에 캐시됩니다. 동일한 동영상과 옵션에 대한
반복 호출은 즉시 처리되며 오프라인에서도 작동합니다. --no-cache를 사용하여
캐시 읽기를 건너뛰고 새로 가져올 수 있습니다.
prosey summarize를 실행하면 명령이 해당 동영상의 캐시 디렉터리 내에서
실행됩니다. 이렇게 하면 AI 에이전트가 현재 폴더의 AGENTS.md 또는 CLAUDE.md와
같은 프로젝트별 파일을 읽지 못하며, 해당 디렉터리 외부의 파일을 수정하는
능력도 제한됩니다.
| 코드 | 의미 |
|---|---|
0 | 성공 |
65 | 잘못된 동영상 URL 또는 ID |
prosey는 youtube-transcript-plus 라이브러리를 통해 YouTube의 Innertube API를 사용합니다. API 키나 브라우저 자동화가 필요하지 않습니다.
이 도구는 수동으로 생성된 자막과 자동 생성된 자막(YouTube의 음성-텍스트 변환) 모두에서 작동합니다. 자동 감지는 YouTube 플레이어 응답에서 제공하는 언어 순서대로 대체됩니다.
| 플래그 | 설명 |
|---|
--lang <code> | 언어 코드 (예: en, fr). 생략 시 자동 감지됩니다. |
-t, --timestamps | 텍스트 출력의 각 줄 앞에 [MM:SS]를 추가합니다. |
--list | 동영상에 사용 가능한 자막 언어를 나열한 후 종료합니다. |
-o, --output <path> | stdout 대신 파일에 출력을 작성합니다. |
--json | 자막을 JSON 배열로 출력합니다. 각 항목에는 text, offset(초), duration, timestamp가 포함됩니다. |
--text | 일반 텍스트로 출력합니다 (prosey read의 기본값). |
--details | 자막 앞에 동영상 세부 정보(제목, 채널, 길이, 조회수, 설명)를 추가합니다 (기본값). |
--no-details | 동영상 세부 정보를 생략하고 자막만 출력합니다. |
--no-decode-entities | 원시 HTML 엔티티(예: ')를 유지합니다. 텍스트 모드에서는 기본적으로 디코딩됩니다. |
--no-cache | 캐시 읽기를 건너뛰고 새로 가져옵니다. |
--no-format | summarize 출력에서 prettier markdown 형식화를 건너뜁니다. |
-q, --quiet | 모든 stderr 로깅을 억제합니다. |
-v, --verbose | 디버그 정보를 stderr로 출력합니다. |
--no-pager | stdout 출력에 페이저를 비활성화합니다 (기본적으로 자동 감지). |
--pager | stdout 출력에 페이저를 사용합니다 (기본값). |
--reset-config | 구성 파일을 기본값으로 재설정하고 종료합니다. |
--help | 도움말 메시지를 표시하고 종료합니다. |
--version | 버전 번호를 표시하고 종료합니다. |