🐍 PYTHON SDK
YouTube 스크립트 Python SDK: 공식 PyPI 패키지
Python 애플리케이션에서 YouTube 스크립트를 추출하세요. PyPI에서 설치하고 API 키로 인증한 뒤, 데이터 파이프라인, 리서치 도구, 자동화 스크립트에 스크립트 추출 기능을 통합할 수 있습니다.
설치
터미널
pip install youtubetranscriptdevapi
빠른 시작
Python
from youtubetranscript import YouTubeTranscript
yt = YouTubeTranscript("your_api_key")
result = yt.transcribe("dQw4w9WgXcQ")
print(f"Segments: {len(result.segments)}")
print(f"Duration: {result.duration:.0f}s")
print(f"Words: {result.word_count}")
for seg in result.segments[:5]:
print(f"[{seg.start_formatted}] {seg.text}")기능
Python: 번역, 소스, 형식
# Translate to any language
result = yt.transcribe("dQw4w9WgXcQ", language="es")
# Choose caption source
result = yt.transcribe("dQw4w9WgXcQ", source="manual")
# Format options
result = yt.transcribe("dQw4w9WgXcQ", format={"timestamp": True, "words": True})Python: 일괄 처리 (최대 7,000개 동영상)
batch = yt.batch(["video1", "video2", "video3"])
for t in batch.completed:
print(f"{t.video_id}: {t.word_count} words")Python: ASR 오디오 전사
job = yt.transcribe_asr("video_without_captions")
result = yt.wait_for_job(job.job_id) # polls until complete
print(result.text)Python: 내보내기 형식
print(result.to_srt()) # SRT subtitles print(result.to_vtt()) # WebVTT subtitles print(result.to_plain_text()) # Plain text print(result.to_timestamped_text()) # Text with timestamps
Python: 검색 및 계정
# Search within transcript
matches = result.search("keyword")
# Account stats
stats = yt.stats()
print(f"Credits: {stats.credits_remaining}")
# History
history = yt.list_transcripts(search="python tutorial", limit=5)비동기 클라이언트
Python: asyncio
import asyncio
from youtubetranscript import AsyncYouTubeTranscript
async def main():
async with AsyncYouTubeTranscript("your_api_key") as yt:
# Single
result = await yt.transcribe("dQw4w9WgXcQ")
# Concurrent
results = await asyncio.gather(
yt.transcribe("video1"),
yt.transcribe("video2"),
yt.transcribe("video3"),
)
asyncio.run(main())오류 처리
Python
from youtubetranscript import YouTubeTranscript
from youtubetranscript.exceptions import (
NoCaptionsError,
AuthenticationError,
InsufficientCreditsError,
RateLimitError,
)
yt = YouTubeTranscript("your_api_key")
try:
result = yt.transcribe("some_video")
except NoCaptionsError:
job = yt.transcribe_asr("some_video")
result = yt.wait_for_job(job.job_id)
except AuthenticationError:
print("Check your API key")
except InsufficientCreditsError:
print("Top up at youtubetranscript.dev/pricing")
except RateLimitError as e:
print(f"Rate limited: retry after {e.retry_after}s")API 레퍼런스
TRANSCRIPT 객체
SEGMENT 객체
크레딧 비용
YOUTUBE-TRANSCRIPT-API(오픈소스)와 비교
인기 오픈소스 패키지인 youtube-transcript-api를 보신 적이 있을 겁니다. 저희 SDK와의 차이점은 다음과 같습니다.
기타 SDK 및 도구
자주 묻는 질문
어떤 Python 버전을 지원하나요?+
Python 3.8 이상을 지원합니다. 타입 힌트를 최대한 활용하려면 Python 3.10 이상을 권장합니다.
youtube-transcript-api와 무엇이 다른가요?+
저희 SDK는 YouTubeTranscript.dev의 공식 패키지입니다. 자막 없는 동영상을 위한 AI 기반 전사, IP 차단을 피하는 서버 측 추출, 내장 요청 한도 처리, 전문적인 지원을 제공합니다. 오픈소스 대안은 기존 자막만 추출하며 클라이언트 측에서 실행됩니다.
Jupyter 노트북에서 사용할 수 있나요?+
네. 동기 API는 Jupyter 노트북과 Google Colab에서 완벽하게 작동합니다. 노트북 환경에서 동시 처리가 필요하면 비동기 API를 사용하세요.
Django와 Flask에서도 작동하나요?+
네. SDK는 특정 프레임워크에 종속되지 않아 모든 Python 웹 프레임워크에서 작동합니다. FastAPI 같은 비동기 프레임워크에서는 비동기 인터페이스를 사용하세요.