
youtube-transcript-api는 유튜브 동영상의 자막(보면 자동 생성된 자막 포함)을 손쉽게 꺼내 쓸 수 있게 해주는 파이썬 라이브러리입니다. Selenium 같은 복잡한 도구도 필요 없어, 브라우저를 띄우지 않고 바로 자막을 가져올 수 있습니다. 공식 문서는 다음 링크를 참고해주시기 바랍니다. (PyPI)
설치는 딱 한 줄
pip install youtube-transcript-api
별도 설정 없이 바로 쓸 수 있어서 매우 간편해요.(PyPI)
API 활용
from youtube_transcript_api import YouTubeTranscriptApi
transcript = YouTubeTranscriptApi().fetch("비디오ID")
- transcript는 시간(start, duration)과 텍스트(text)가 담긴 스니펫 리스트 또는 FetchedTranscript 객체입니다.(PyPI)
- 기존 get_get_transcript 함수가 fetch 로 변경되었습니다.
YouTubeTranscriptApi' has no attribute 'get_transcript' 또는 transcriptapi 자막을 가져오는 중 오류 발생: type object 'youtubetranscriptapi' has no attribute 'get_transcript' 발생시.
다음과 같은 형태로 수정하시면 됩니다.
from youtube_transcript_api import YouTubeTranscriptApi
ytt_api = YouTubeTranscriptApi()
ytt_api.fetch(video_id)
예시 구조:
[
{'text': '안녕하세요', 'start': 0.0, 'duration': 2.0},
{'text': '만나서 반가워요', 'start': 2.0, 'duration': 3.0},
...
]
원하는 언어로 받고 싶을 땐?
YouTubeTranscriptApi().fetch("비디오ID", languages=['de', 'en'])
- 먼저 독일어(de)를, 없으면 영어(en) 자막을 받고 싶을 때 이렇게 순서대로 시도해요.(PyPI)
자막 리스트부터 보고 싶다면?
anno = YouTubeTranscriptApi().list("비디오ID")
- TranscriptList 객체가 반환되고, 여기서 언어별 필터링이나 수동/자동 자막 판별도 가능해요.(PyPI)
transcript = anno.find_transcript(['en'])
transcript.fetch()
- 만약 자동 생성된 자막만 보고 싶다면:
- transcript = anno.find_generated_transcript(['en'])
- 수동 자막만 보고 싶다면:
- transcript = anno.find_manually_created_transcript(['en'])
CLI도 지원해서 터미널에서 바로 사용 가능
youtube_transcript_api 비디오ID1 비디오ID2 --languages en de --json > subs.json
- JSON 형식으로 저장하고 싶으면 --json 옵션을 붙이면 됩니다.(PyPI)
주의할 점
유튜브 내부 구현 방식(공식 API가 아닌 루트)을 활용한 만큼, 언제 어떻게 작동이 바뀔 수 있다는 점만 참고해 주세요.(PyPI)
정리 한눈에 보기
기능 설명
| 설치 | pip install youtube-transcript-api |
| 기본 호출 | fetch("비디오ID")로 자막 가져오기 |
| 언어 지정 | languages=['de','en'] 등으로 우선순위 지정 |
| 자막 목록 확인 | list() 후 find_transcript() 등 필터링 가능 |
| CLI 사용 | youtube_transcript_api ... --json |
| 제약 | 비공식 API이므로 언젠가 작동이 바뀔 수 있음 |

마무리
이 라이브러리 덕분에 날짜 수업, 강의, 뉴스 등 다양한 유튜브 영상을 텍스트로 활용하기 너무 쉬워졌어요. 반복해서 많은 자막을 빠르게 얻고 싶거나, 자동화 파이프라인에 넣고 싶다면 추천합니다. 더 나아가, 이 자막을 LangChain을 이용해 요약하거나 검색 가능한 문서로 RAG 구성도 가능하니 활용해보시길 추천드립니다.
아래 Colab Script 도 첨부로 넣어두었습니다.
https://colab.research.google.com/drive/1Jz3tBzmJRn7xS3tsVDD8jviayK9Ai_aX?usp=sharing
LLM으로 유튜브 영상 TEXT 가져와서 번역 및 요약.ipynb
Colab notebook
colab.research.google.com
'인공지능(AI) 이론과 코드 > 6. 자연어처리(NLP)' 카테고리의 다른 글
| LangChain, 어렵지 않아요 – 쉽게 배우는 LCEL과 메시지 히스토리 (4) | 2025.08.12 |
|---|---|
| 「Generative AI in the Construction Industry: A State-of-the-art」 (2) | 2025.07.27 |
| 자연어 처리 인공지능의 발전 - LLM 대규모 언어모델 진화과정 (6) | 2024.03.15 |
| [생성형 AI] 개발에 필요한 개념과 서비스 모음 (28) | 2024.02.22 |
| [생성형 AI] MQR 뜻 의미(다중 쿼리 검색기, Multi Query Retriever) (23) | 2024.02.17 |