Transcript Dock и youtube-transcript-api
youtube-transcript-api бесплатная библиотека Python, которой YouTube блокирует доступ с облачных IP-адресов. Когда облачный API стоит своих денег и как перейти на него за несколько строк.
Обновлено
Коротко: для скриптов и ноутбуков на вашем собственном интернет-соединении продолжайте использовать youtube-transcript-api: она бесплатна и хороша. Переходите на облачный API, когда библиотека работает на сервере: YouTube блокирует большинство облачных IP-адресов, и тогда библиотеке нужен платный резидентный прокси. Облачный API также охватывает TikTok и видео без субтитров.
Сравнение по пунктам#
| Параметр | Transcript Dock | youtube-transcript-api |
|---|---|---|
| Что это | Облачный API и MCP-сервер | Библиотека Python с открытым кодом (MIT) |
| Источники | YouTube, TikTok, загрузка файлов, прямые ссылки на медиа | YouTube |
| Работает из облака | Да, ничего настраивать не нужно | Нужен ротируемый резидентный прокси |
| Нет субтитров | Транскрипция с ИИ на платных тарифах | Не поддерживается |
| Экспорт | TXT, SRT, VTT, JSON | Текст, JSON, форматирование в SRT и WebVTT |
| Перевод | Выбор существующего языка субтитров | Автоматический перевод YouTube |
| Стоимость | 1 кредит за транскрипт; 50 бесплатных каждый месяц | Бесплатно, плюс расходы на прокси в облаке |
Проблема облачных IP-адресов#
В README библиотеки сказано, что YouTube начал блокировать большинство IP-адресов, известных как принадлежащие облачным провайдерам, и тогда запросы завершаются ошибками RequestBlocked или IpBlocked. Предлагаемое решение: ротируемый резидентный прокси. Это второй счёт и ещё одна вещь, за которой нужно следить. Transcript Dock берёт эту часть на себя, и вы платите за транскрипт, а не за гигабайт трафика прокси.
Переход займёт несколько строк#
Сегменты приходят с start и end в секундах, что близко к фрагментам библиотеки.
# beforefrom youtube_transcript_api import YouTubeTranscriptApisnippets = YouTubeTranscriptApi().fetch("dQw4w9WgXcQ")# afterimport requestsAPI, H = "https://www.transcriptdock.com", {"Authorization": "Bearer td_live_YOUR_KEY"}job = requests.post(f"{API}/v1/jobs", headers={**H, "Idempotency-Key": "yt-dQw4w9WgXcQ"},json={"source": {"url": "https://youtu.be/dQw4w9WgXcQ"}, "mode": "captions_only"}).json()while job["status"] not in ("succeeded", "failed", "cancelled"):job = requests.get(f"{API}/v1/jobs/{job['id']}", params={"wait": 25}, headers=H).json()segments = requests.get(f"{API}/v1/transcripts/{job['result_id']}", headers=H).json()["segments"]# each segment: {"start": 0.0, "end": 2.4, "text": "..."}
Что выбрать#
- Выбирайте библиотеку, если нужен только YouTube, объём небольшой и вы работаете с ноутбука или домашнего сервера.
- Выбирайте Transcript Dock для продакшена на облачном хостинге, для TikTok, видео без субтитров, экспорта субтитров или доступа Claude и Cursor через MCP.
Другие варианты описаны в руководстве по получению транскрипта YouTube.