한줄 요약
YouTube 영상 자막을 명령어 한 줄로 깔끔한 마크다운 파일로 자동 정리. 영어/한글 자막 모두 지원하며 문장 단위로 구분되어 학습 자료로 활용하기 편리합니다.
이런 분들께 도움돼요
YouTube 영상으로 영어 공부하시는 분
영상 콘텐츠를 텍스트로 정리해서 보관하고 싶으신 분
자막을 복사-붙여넣기로 정리하느라 시간 낭비하시는 분
소개: 시도하고자 했던 것과 그 이유
문제 상황 (Before)
영어 공부할 때 YouTube 영상의 자막을 텍스트로 정리하고 싶었는데, 수동으로 복사-붙여넣기 하기엔 너무 번거로웠습니다.
기존 방식의 문제점:
YouTube 영상 재생하면서 자막 일시정지 → 복사 → 붙여넣기 반복
타임스탬프(
0:00:15,0:00:23등)가 섞여 있어서 일일이 삭제해야 함자막이 한 줄로 쭉 붙어있어서 읽기 불편함
긴 영상은 30분 이상 소요
시작하게 된 계기
영어 공부 할 때 쿠르츠게작트 영상을 보고 듣기, 쉐도잉을 하는데, 매번 수작업으로 자막을 정리하기엔 너무 시간이 오래 걸렸습니다. "이거 자동화할 방법 없을까?" 싶어서 Claude에게 물어봤습니다.
진행 방법: 어떤 도구를 사용했고, 어떻게 활용했나요?
사용한 도구
도구명: Claude Code
모델: Claude Sonnet 4.5
라이브러리: youtube-transcript-api (Python)
AI와 협업한 과정
1. 첫 자막 추출 시도
상황: 구체적인 영상으로 테스트하고 싶었습니다.
이렇게 요청했어요:
https://youtu.be/pHJIhxZEoxg?si=plJ1dnt6pgfYYJ3L 이거 되는지 알아 보고 싶어
결과: Claude가 자동으로 라이브러리를 설치하고, 테스트 스크립트를 만들어서 실행했습니다. 156개의 영어 자막 항목을 성공적으로 추출했어요.
느낀 점: URL만 던져줘도 알아서 진행해주니 정말 편했습니다.
2. 요구사항 구체화
상황: 기본 추출은 됐지만, 제가 원하는 형태가 아니었습니다.
이렇게 요청했어요:
영어 우선이지만 영어와 한글이 같이 있으면 좋겠고 타임스탬프는 없애줘 md파일로 저장
결과:
영어 자막 우선 추출
한글 번역 자동 추가
타임스탬프 완전 제거
마크다운 형식으로 저장
youtube_transcript_[영상ID].md파일 자동 생성
느낀 점: 필요한 기능을 자연어로 말하니까 바로 반영됐습니다.
3. 가독성 개선
상황: 자막이 추출은 됐는데, 한 줄로 쭉 붙어있어서 읽기 불편했습니다.
이렇게 요청했어요:
영어 자막이 너무 붙어 있어서 가독성이 별로야 문장마다 띄어쓰기로 해줘
결과: Claude가 문장 끝을 자동으로 감지하는 로직을 추가했습니다.
영어:
.!?감지한글:
다요니다습니다감지문장마다 줄바꿈으로 가독성 대폭 개선
느낀 점: "가독성이 별로야" 같은 피드백만 줘도 알아서 개선해주니 신기했습니다.
인상적이었던 순간
"오!" 했던 순간:
처음엔 영어 자막만 추출했는데, Claude가 직접 영어 자막을 읽고 한글로 번역해줘서 해결했습니다. 또 자막이 한 줄로 쭉 붙어있어서 읽기 불편했는데, 문장 끝을 자동으로 감지해서 줄바꿈하도록 개선한 점이 인상적이었어요.
막혔던 순간과 해결
문제: 라이브 아카데미라는 회화 연습 채널엔 영어 자막이 없고 한글 자막만 있는 경우가 있었어요.
해결: Claude가 상황을 파악하고 한글 전용 추출 스크립트(extract_korean_transcript.py)를 별도로 만들어줬습니다. 이제 영어/한글 어떤 자막이든 추출할 수 있어요.
💡 Tip: 프롬프트는 길게 쓸 필요 없어요. "이게 불편해"라고만 말해도 Claude가 알아서 개선해줍니다.
결과와 배운 점
Before vs After
항목
Before
After
소요 시간
30분 (수작업)
5초 (자동화)
타임스탬프 제거
수동 삭제
자동 제거
가독성
한 줄로 붙어있음
문장 단위 구분
한글 번역
직접 번역
자동 번역
결과물
생성된 파일:
youtube_transcript_extractor.py- 영어 우선 추출 스크립트extract_korean_transcript.py- 한글 자막 전용 스크립트youtube_transcript_[영상ID].md- 추출된 자막 파일
사용법:
python youtube_transcript_extractor.py [YouTube URL 또는 영상ID]
출력 형식:
# YouTube Transcript
**Video ID**: pHJIhxZEoxg
**URL**: https://youtu.be/pHJIhxZEoxg
---
## English Transcript
This is a tree.
Trees are one of the longest living organisms on earth.
## 한글 자막
이것은 나무입니다.
나무는 지구상에서 가장 오래 사는 생명체 중 하나입니다.
배운 점과 나만의 꿀팁
효과적이었던 것
구체적인 URL로 테스트: 추상적으로 설명하지 않고, 실제 YouTube URL을 주니까 바로 실행 가능한 코드가 나왔어요.
불편한 점을 솔직하게 피드백: "가독성이 별로야" 같은 자연스러운 표현으로 말해도 알아듣더라고요.
단계별 개선: 한 번에 완벽하게 만들려고 하지 않고, 일단 돌아가게 만든 다음 불편한 점을 하나씩 고쳤어요.
이렇게 하면 안 돼요 (주의사항)
처음부터 모든 기능을 요구: 너무 많은 걸 한 번에 요청하면 오히려 복잡해져요. 기본 기능부터 만들고 개선하세요.
기술 용어로 설명: "정규표현식으로 문장 끝 감지해줘" 대신 "문장마다 띄어쓰기로 해줘"가 더 통했어요.
과정 중 시행착오
시행착오 1: 처음엔 모든 자막이 한 줄에 붙어서 나왔어요. 읽기가 너무 불편했습니다.
배운 점: "가독성이 안 좋다"고 피드백하니 문장 끝 감지 기능을 추가해줬어요.
시행착오 2: 영어 자막이 없는 한국 영상에서 에러가 났어요.
배운 점: Claude가 에러를 보고 한글 전용 스크립트를 별도로 만들어줬어요. 에러 메시지도 학습 자료가 됩니다.
앞으로의 계획
다음 단계
플레이리스트 전체를 한 번에 처리하는 기능 추가
추출한 자막을 Notion이나 Obsidian에 자동으로 저장하는 연동 기능
다른 업무에 적용한다면?
회의록 영상의 자막을 추출해서 회의록 자동 생성
강의 영상 자막을 추출해서 복습 노트 만들기
여러 영상의 자막을 모아서 키워드 검색 가능한 데이터베이스 구축
도움이 필요한 부분
플레이리스트 자동 처리 기능을 어떻게 구현하면 좋을지 궁금해요.
재사용 가능한 프롬프트
프롬프트 1: 요구사항 반영하기
영어 우선이지만 영어와 한글이 같이 있으면 좋겠고
타임스탬프는 없애줘
md파일로 저장
프롬프트 2: 가독성 개선 요청
영어 자막이 너무 붙어 있어서 가독성이 별로야
문장마다 띄어쓰기로 해줘
프롬프트 3: 새로운 영상 추출
https://youtu.be/[영상ID] 자막 추출해줘