유튜브 내장 기능 자동 자막 활용 api로 추출하는 방법 유튜브 동영상 → 설정 → 자막 → 자동 생성된 자막 복사 브라우저 확장 프로그램으로 자막 텍스트 추출 가능 정확도:




좋아요. “유튜브 자동 자막을 API/도구로 뽑는 방법”을 **공식 API(채널 소유자용)**와 **비공식/편의 도구(소유자 아니어도 가능)**로 나눠 정리했어요. 바로 붙여 쓸 코드/명령도 넣었습니다.

1) 공식: YouTube Data API v3 (채널 소유자일 때만)

  • 가능 작업: 자막 트랙 목록 조회(list), 다운로드(download), 업로드/수정 등

  • 제한: 해당 영상을 편집할 권한(OAuth 인증)이 있어야 다운로드 가능. 즉, 남의 채널 영상은 불가. 자동 생성 자막이 유튜브 측 “트랙”으로 게시되어 있지 않다면 API로 직접 받기 어려워요. Google for Developers+1

필요한 것

  • OAuth 2.0(사용자 동의) + youtube.force-ssl 스코프

  • 엔드포인트:

    • captions.list?videoId={VIDEO_ID}

    • captions.download?id={CAPTION_ID} (HTTP GET)

흐름(요약)

  1. captions.list로 트랙 찾기 → 2) captions.download로 SRT/VTT로 받기(tfmt=srt 가능). 이 호출은 200 쿼터 코스트가 듭니다. Google for Developers


2) 비공식/편의 도구: 채널 소유자가 아니어도 가능

공식 API 제약 때문에, 일반적으로는 아래 둘 중 하나를 많이 씁니다.

A. youtube-transcript-api (Python 라이브러리)

  • 공개 영상에 자막(자동 포함)이 있으면 API 키 없이 받아옵니다. 한국어 지원. GitHub

python
# pip install youtube-transcript-api from youtube_transcript_api import YouTubeTranscriptApi, TranscriptsDisabled video_id = "dQw4w9WgXcQ" # 예시 try: # 우선 한국어, 안되면 자동 선택 s = YouTubeTranscriptApi.get_transcript(video_id, languages=['ko','ko-KR','en']) # s = [{ 'text': '...', 'start': 12.34, 'duration': 3.21 }, ...] # SRT로 저장 def to_srt(chunks): out = [] for i, c in enumerate(chunks, 1): start = c['start'] end = start + c.get('duration', 0) ts = lambda t: f"{int(t//3600):02}:{int(t%3600//60):02}:{int(t%60):02},{int((t%1)*1000):03}" out.append(f"{i}\n{ts(start)} --> {ts(end)}\n{c['text']}\n") return "\n".join(out) open("caption_ko.srt","w",encoding="utf-8").write(to_srt(s)) except TranscriptsDisabled: print("이 영상은 자막이 비활성화됐습니다.")

주의: 영상이 자막 비공개/차단, 연령 제한, 회원전용이면 실패할 수 있어요. GitHub

B. yt-dlp (CLI)

  • 유튜브 자동 자막을 바로 파일로 저장 가능.

  • 자막만 받고 싶으면 --skip-download 추가. ArchWikiGitHub

bash
# 자막 언어 목록 확인 yt-dlp --list-subs https://www.youtube.com/watch?v=VIDEO_ID # 자동 생성 자막(한국어)을 SRT로만 저장 yt-dlp --skip-download \ --write-auto-sub --sub-lang ko --sub-format srt \ -o "%(id)s.%(ext)s" \ https://www.youtube.com/watch?v=VIDEO_ID

팁: 자동/공식 둘 다 있으면 우선순위를 조정하려면 플래그를 조합해요. (예: --write-sub--write-auto-sub 함께 사용) GitHubRapidSeedbox


3) 브라우저에서 “복사”만 하는 방법

  • 데스크톱: 영상 → 더보기(⋯) → ‘글 자막 보기(Show transcript)’ → 텍스트 복사. 확장프로그램으로도 가능. (단, 영상마다 노출 여부가 다름) Zapier


4) 정확도 & 품질 팁

  • 한국어 자동 자막 정확도는 대체로 80~90% 체감이나, 잡음·사투리·전문용어에서 오차가 커집니다.

  • 파이프라인에서 후처리 추천:

    • 시간 보정: 너무 촘촘한 구간 병합

    • 맞춤법 보정: 한국어 맞춤법 교정기 적용

    • 개행 규칙화: 문장 단위로 재구성

  • 공식 API는 소유한 영상 한정이라, 운영 채널의 워크플로에서는 Data API로 직접 다운로드 후, 사내 파이프라인에서 정제하는 방식을 권장합니다. 타 채널 분석용은 youtube-transcript-api / yt-dlp 조합이 일반적이에요. Google for Developers+1


어떤 걸 고르면 좋을까?

  • 내 채널 영상 자동화: YouTube Data API v3 (OAuth + captions.download)

  • 리서치/벤치마크(남의 채널): youtube-transcript-api → 실패 시 yt-dlp 백업

필요하시면, 위 두 경로를 Cloud Run 크론 + Firestore 저장 구조로 바로 돌릴 수 있는 예제(파이썬/노드)까지 만들어 드릴게요. 어떤 환경(언어/배포)로 가실지만 알려주세요!

댓글 남기기