유튜브 자막을 공부 노트로 바꾸는 옵시디언 플러그인 ‘YouTube LLM Summarizer’
유튜브 영상의 자막을 가져와 AI 모델로 번역·요약하고 공부 노트로 저장하는 옵시디언(Obsidian) 플러그인 ‘YouTube LLM Summarizer’를 공개했습니다. 사이드바에 영상 링크를 붙여 넣으면 자막 추출, 번역, 요약, 노트 생성까지 이어서 진행하고 결과는 볼트(vault, 옵시디언이 노트를 보관하는 폴더)에 마크다운 노트로 남습니다. 요약에 쓸 모델은 Amazon Bedrock, OpenAI와 OpenAI 호환 서버, Anthropic Claude, Google Gemini 가운데 고릅니다. 옵시디언 커뮤니티 플러그인 목록에 올라 있고 코드는 GitHub에 MIT 라이선스로 공개했습니다. 이 글은 1.0.0 기준입니다.
서버 없이 플러그인이 자막을 직접 가져옵니다
플러그인이 유튜브에서 자막을 직접 가져오고 모델도 직접 호출합니다. 따로 띄워 둘 요약 서버나 Python, yt-dlp, 오디오 다운로드, 음성 인식 서비스가 필요 없습니다. 영상의 소리를 받아 적지 않고 유튜브에 이미 있는 자막을 쓰기 때문에, 자막이 없는 영상은 자막을 직접 붙여 넣어야 요약할 수 있습니다.
번역과 요약은 고른 AI 제공자가 합니다. 클라우드 모델을 고르면 자막 본문이 그 제공자에게 전송되고 사용량에 따라 요금이 생길 수 있습니다. Ollama나 LM Studio처럼 내 PC에서 도는 OpenAI 호환 서버를 지정하면 모델 실행도 PC 안에서 끝납니다.
설치
옵시디언 1.13.0 이상이 필요합니다.
- 옵시디언 설정의 커뮤니티 플러그인 탐색 화면에서 ‘YouTube LLM Summarizer’를 찾아 설치하고 활성화합니다.
- 설정 → YouTube LLM Summarizer에서 AI 제공자를 고르고 모델 ID와 인증 정보를 넣습니다.
- 연결 테스트 항목의 테스트 버튼을 눌러 인증과 모델이 동작하는지 확인합니다. 짧은 요청을 실제로 보내므로 토큰을 조금 씁니다.
직접 설치하려면 릴리스에서 main.js, manifest.json, styles.css를 받아 볼트의 .obsidian/plugins/youtube-llm-summarizer/ 폴더에 넣고 플러그인을 활성화합니다.
사이드바에서 요약합니다
왼쪽 리본의 유튜브 아이콘을 누르거나 명령 팔레트에서 사이드바 열기를 실행하면 사이드바가 열립니다. 탭은 ‘URL 요약’과 ‘구독 피드’ 두 개입니다.
URL 요약 탭
- 영상 하나를 요약하려면 유튜브 링크를 붙여 넣고 Enter를 누르거나 요약을 누릅니다. 자막 추출, 번역, 요약, 노트 생성 단계가 차례로 표시되고 끝나면 노트 열기 링크로 만든 노트를 엽니다.
- 스크립트 / 자막 영역에는 자막을 직접 붙여 넣어 요약합니다. 유튜브에서 자막을 가져오지 못하면 이 영역이 저절로 펼쳐집니다.
- 여러 개 한번에 요약 영역에는 한 줄에 링크 하나씩 넣습니다. 넣은 순서대로 요약합니다. 진행 중에는 현재 영상까지만 하고 중단할 수 있고 끝나면 실패한 링크마다 이유를 보여 줍니다. 실패하거나 중단된 링크는 입력란에 그대로 남습니다.
- 탭 아래의 현황 패널은 지금 쓰는 AI 제공자와 모델, 구독 피드 상태, 그룹 수와 구독 채널 수를 보여 줍니다. 지금 설정으로 요약할 수 없으면 그 이유도 함께 표시합니다.
구독 피드 탭
설정에 YouTube Data API 키를 넣고 채널을 추가하면 채널별 최신 영상이 그룹 단위로 나옵니다. 영상마다 요약하기를 누르면 진행 단계가 그 항목에 표시되고 요약을 마친 영상에는 완료 표시가 붙습니다. 채널당 가져올 영상 수는 1~10개 사이에서 정하고 기본값은 6개입니다. 피드에는 채널마다 3개가 먼저 보이고 나머지는 더 보기로 펼칩니다. 채널마다 저장 폴더를 따로 지정할 수 있습니다. 링크를 직접 넣어 요약할 때는 YouTube Data API 키가 필요 없습니다.
자막에서 노트까지
요약 한 건은 다음 순서로 진행됩니다.
- 영상 정보 수집. 영상 페이지에서 제목과 업로드 날짜를 읽고 유튜브 플레이어 응답에서 자막 트랙 목록을 받습니다. 재생할 수 없는 영상과 라이브 영상은 여기서 멈춥니다.
- 자막 선택. 요약 언어의 수동 자막, 요약 언어의 자동 자막, 영상의 기본 자막, 자동 자막, 나머지 트랙 순서로 확인합니다. 가져온 자막이 100자 미만이거나 영상 1분당 100자에 못 미치면 불완전하다고 보고 다음 트랙으로 넘어갑니다.
- 번역. 자막 언어가 요약 언어와 같으면 번역을 건너뜁니다.
ko와ko-KR처럼 지역만 다른 언어는 같은 언어로 보고 중국어 간체와 번체는 다른 언어로 봅니다. 언어가 다르면 자막을 최대 6,000자씩 나눠 순서대로 번역한 뒤 이어 붙입니다. - 요약. 원문 자막이나 번역문 전체에 요약 프롬프트(prompt, 모델에 주는 지시문)를 한 번 적용합니다. 프롬프트는 영상의 장르를 NEWS·LECTURE·TECH·BUSINESS·FINANCE·OTHER 가운데 하나로 판별하고 장르에 맞는 공부 노트 형식으로 정리하게 합니다. 모델은
===GENRE===,===ONE_LINE===,===DETAILED===,===INSIGHTS===,===KEYWORDS===,===FURTHER===여섯 구분자로 답을 나누고 플러그인이 이를 읽어 노트로 조립합니다. - 노트 저장. 정상적으로 끝난 결과만 노트로 저장합니다.
중간에 문제가 생기면 노트를 만들지 않습니다.
- 자막이나 번역문이 최대 입력 글자 수(기본 200,000자)를 넘으면 임의로 자르지 않고 중단합니다.
- 모델 응답이 출력 한도에 걸려 잘리면 노트를 저장하지 않습니다.
- 자막이 없거나 불완전하면 음성 인식으로 넘어가지 않고 재시도나 직접 입력을 안내합니다.
직접 붙여 넣은 자막은 언어 정보가 없어서 항상 번역 단계를 거칩니다. 자막 수집은 유튜브의 공개 플레이어 응답에 의존하므로 유튜브 쪽 변경이나 요청 제한의 영향을 받을 수 있습니다.
이런 노트가 만들어집니다
파일 이름은 YY-MM-DD 영상제목.md입니다. 날짜는 영상 업로드 날짜이고 업로드 날짜를 얻지 못하면 오늘 날짜를 씁니다. 노트는 다음 구조로 만들어집니다.
---
tags:
- youtube-summary
date: 2026-11-14
url: https://www.youtube.com/watch?v=VIDEO_ID
---
# 영상 제목

---
## 요약
🏷️ 장르: TECH
📌 한줄 요약
(한 문장 요약)
📋 핵심 내용
(장르에 맞춘 본문 정리)
🔑 키워드 & 용어
(용어 설명)
❓ 추가 탐색 주제
(더 찾아볼 주제)
## 핵심 인사이트
- (인사이트)
프론트매터(front matter, 노트 맨 위의 속성 영역)의 date는 노트를 만든 날짜이고 url과 영상 임베드에는 입력한 링크가 그대로 들어갑니다. 는 옵시디언이 영상을 노트 안에 끼워 보여 주는 문법입니다. ‘키워드 & 용어’, ‘추가 탐색 주제’, ‘핵심 인사이트’는 모델이 해당 내용을 냈을 때만 들어갑니다. 요약 언어는 20개 가운데 고르고 기본값은 한국어입니다. 한국어가 아닌 언어로 요약하면 이 제목들은 영어로 바뀝니다.
AI 제공자는 네 가지입니다
| 제공자 | 필요한 설정 | 호출 API |
|---|---|---|
| Amazon Bedrock | AWS 리전, 모델 ID, AWS 프로필 또는 Bedrock API 키 | Converse |
| OpenAI·호환 서버 | 기본 URL, 모델 ID, API 키(로컬 주소는 생략 가능) | Chat Completions |
| Anthropic Claude | 모델 ID, API 키 | Messages |
| Google Gemini | 모델 ID, API 키 | generateContent |
모델 ID는 직접 입력하거나 모델 불러오기로 받아 온 목록에서 고릅니다. 인증 값과 모델 ID는 제공자마다 따로 보관합니다.
Amazon Bedrock 인증 순서
Bedrock은 AWS 프로필과 Bedrock API 키(Bearer 토큰) 두 가지로 인증합니다.
- 데스크톱에서 AWS 프로필 이름을 넣어 두면 그 프로필로 먼저 호출합니다. IAM Roles Anywhere나 SSO로 구성한
~/.aws/config프로필을 그대로 씁니다. - 프로필이 비어 있거나, 모바일이거나, 프로필의 자격 증명을 불러오지 못하면 Bedrock API 키로 호출합니다.
- 자격 증명은 받았는데 권한이나 모델 오류로 실패하면 API 키로 넘어가지 않고 오류를 보여 줍니다.
AWS 프로필 방식은 Node.js 20 이상을 포함한 옵시디언 데스크톱 런타임에서 동작합니다. 프로필에서 API 키로 넘어가면 알림으로 알려 주고 연결 테스트도 어느 방식으로 연결됐는지 표시합니다.
로컬 모델
OpenAI 호환 서버의 기본 URL은 /v1까지 넣습니다. Ollama는 http://localhost:11434/v1, LM Studio는 http://localhost:1234/v1입니다. 암호화하지 않는 HTTP 주소는 localhost, 127.0.0.1, [::1]만 받고 그 밖의 주소는 HTTPS와 API 키가 있어야 합니다.
키와 자막이 가는 곳
- API 키는 플러그인의
data.json이 아니라 옵시디언의 시크릿 키 저장소에 보관합니다.data.json에는 키의 이름만 남습니다. 저장소는 기기마다 따로라서 다른 기기에서는 키를 다시 넣어야 합니다. - 네트워크 요청은 자막을 가져오는 YouTube, 번역·요약을 맡은 AI 제공자, 구독 피드를 쓸 때의 YouTube Data API로 갑니다. 자막 본문은 고른 AI 제공자에게 전송됩니다.
- 볼트 밖 파일은 데스크톱에서 Bedrock에 AWS 프로필을 넣은 경우에만 접근합니다. 이때 AWS SDK가
~/.aws/config,~/.aws/credentials, SSO 캐시를 읽고 프로필에credential_process가 있으면 그 명령(예:aws_signing_helper)을 실행합니다. - 사용 기록을 수집하는 텔레메트리나 광고는 없습니다.
한눈에 보기
| 항목 | 값 |
|---|---|
| 버전 | 1.0.0 |
| 옵시디언 | 1.13.0 이상, 데스크톱·모바일 (AWS 프로필 인증은 데스크톱) |
| AI 제공자 | Amazon Bedrock, OpenAI·호환 서버, Anthropic Claude, Google Gemini |
| 요약 언어 | 20개 중 선택, 기본 한국어 |
| UI 언어 | 한국어, 영어 |
| 최대 입력 글자 수 | 기본 200,000자, 넘으면 중단 |
| 호출당 최대 출력 토큰 | 기본 65,536 |
| 모델 응답 대기 | 호출당 3분 |
| 구독 피드 | 채널당 최신 영상 1~10개 |
| 라이선스 | MIT |
테스트와 릴리스 검증
자막 수집, 번역·요약, 인증, 노트 생성, 구독 피드를 다루는 테스트 284개가 있습니다. 풀 리퀘스트와 main 브랜치 푸시마다 GitHub Actions가 린트(lint, 코드 오류와 스타일을 자동으로 검사하는 도구)·테스트·빌드를 돌리고 린트에는 옵시디언 플러그인 가이드라인 검사(eslint-plugin-obsidianmd)가 들어 있습니다. 릴리스 파일에는 빌드 출처 증명(artifact attestation)이 붙어 있어, 받은 파일이 이 저장소의 소스에서 빌드됐는지 확인할 수 있습니다.
gh attestation verify main.js --repo TeiNam/obsidian-youtube-llm-summarizer
생각: 유튜브를 저장해 두고 다시 보려고 만들었습니다
여기서부터는 플러그인을 만든 사람으로서 하는 개인적인 이야기입니다.
YouTube LLM Summarizer는 유튜브를 저장해서 다시 보고, 내용을 알기 쉽게 정리해 두기 위해서 만들었습니다. 만들어진 노트에는 영상이 함께 들어 있어서 요약을 읽다가 그 자리에서 영상을 다시 볼 수 있습니다.