Python SDK для транскриптов YouTube: Официальный пакет на PyPI
Извлекайте транскрипты YouTube в своих Python-приложениях. Установите пакет из PyPI, пройдите аутентификацию с API-ключом и встройте извлечение транскриптов в пайплайны данных, исследовательские инструменты и скрипты автоматизации.
УСТАНОВКА
pip install youtubetranscriptdevapi
БЫСТРЫЙ СТАРТ
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}")ВОЗМОЖНОСТИ
# 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})batch = yt.batch(["video1", "video2", "video3"])
for t in batch.completed:
print(f"{t.video_id}: {t.word_count} words")job = yt.transcribe_asr("video_without_captions")
result = yt.wait_for_job(job.job_id) # polls until complete
print(result.text)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
# 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)АСИНХРОННЫЙ КЛИЕНТ
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())ОБРАБОТКА ОШИБОК
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 (OPEN SOURCE)
Возможно, вы знаете популярный open-source-пакет youtube-transcript-api. Вот чем от него отличается наш:
ДРУГИЕ SDK И ИНСТРУМЕНТЫ
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Какие версии Python поддерживаются?+
Python 3.8 и выше. Для наилучшей работы с аннотациями типов рекомендуем Python 3.10+.
Чем этот пакет отличается от youtube-transcript-api?+
Наш SDK является официальным пакетом YouTubeTranscript.dev. Он включает ИИ-транскрибацию для видео без субтитров, серверное извлечение без риска блокировки IP, встроенное ограничение частоты запросов и профессиональную поддержку. Open-source-альтернатива умеет только извлекать существующие субтитры и работает на стороне клиента.
Можно ли использовать SDK в Jupyter-ноутбуках?+
Да. Синхронный API отлично работает в Jupyter-ноутбуках и Google Colab. Для параллельной обработки в ноутбуках используйте асинхронный API.
Работает ли SDK с Django и Flask?+
Да. SDK не привязан к фреймворку и работает с любым веб-фреймворком на Python. С асинхронными фреймворками вроде FastAPI используйте асинхронный интерфейс.
Начните разработку с Python SDK
pip install, аутентификация, и транскрипты извлекаются уже через несколько минут.
ОТКРЫТЬ НА PYPI →