🐍 PYTHON SDK

Python SDK для транскриптов YouTube: Официальный пакет на PyPI

Извлекайте транскрипты YouTube в своих Python-приложениях. Установите пакет из 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

Метод
transcribe(video, *, language, source, format)
transcribe_asr(video, *, language, webhook_url)
get_job(job_id)
wait_for_job(job_id, *, poll_interval, timeout)
batch(video_ids, *, language)
get_batch(batch_id)
list_transcripts(*, search, language, status, limit, page)
get_transcript(video_id, *, language, source)
stats()
delete_transcript(*, video_id, ids)

ОБЪЕКТ TRANSCRIPT

Свойство / метод
segments
text
video_id
language
word_count
duration
to_srt()
to_vtt()
to_plain_text()
to_timestamped_text()
search(query)

ОБЪЕКТ SEGMENT

СвойствоОписание
textТекст сегмента
startВремя начала (в секундах)
endВремя окончания (в секундах)
durationДлительность (в секундах)
start_formattedФормат "MM:SS"
start_hmsФормат "HH:MM:SS"

СТОИМОСТЬ В КРЕДИТАХ

ОперацияСтоимость
Извлечение субтитров1 кредит
Перевод1 кредит за 2 500 символов
ASR-транскрибация аудио1 кредит за 90 секунд
Повторное получение своего транскриптаБесплатно

СРАВНЕНИЕ С YOUTUBE-TRANSCRIPT-API (OPEN SOURCE)

Возможно, вы знаете популярный open-source-пакет youtube-transcript-api. Вот чем от него отличается наш:

ФункцияYouTubeTranscript.dev SDKyoutube-transcript-api
Резервная ИИ-транскрибацияДа, работает с видео без субтитровНет, не работает, если субтитров нет
Поддержка и сопровождениеАктивное сопровождение с SLAПоддерживается сообществом, обновления нерегулярны
Работа с лимитами запросовВстроена, с автоматическими повторамиВручную: лимиты запросов на вашей стороне
Плейлисты и массовая обработкаВстроенная пакетная обработкаНужно перебирать видео вручную
Блокировки YouTubeНа стороне сервера: нет риска блокировки IPНа стороне клиента: ваш IP могут заблокировать

ДРУГИЕ SDK И ИНСТРУМЕНТЫ

ЯзыкПакет
JavaScript / Nodeyoutube-transcript-api на npm
Dart / Flutteryoutubetranscript на pub.dev
MCP-серверmcp.youtubetranscript.dev

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Какие версии 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 →

Извлекайте транскрипты бесплатно

Превращайте любое видео YouTube в текст за секунды. Банковская карта не нужна.

ПОПРОБОВАТЬ YOUTUBETRANSCRIPT.DEV →
Python SDK для транскриптов YouTube | YouTubeTranscript.dev