YouTube2Text API 사용 가이드
YouTube2Text는 분석, 인사이트, 요약, 콘텐츠 생성 및 기타 텍스트 처리 응용 프로그램을 위해 YouTube 비디오에서 순수 텍스트 전사(자막 시간 코드 및 기타 메타데이터 없이)를 추출하는 유틸리티입니다.
시작하기
빠르게 시작하려면 https://api.youtube2text.org를 방문하여 데모 API 키를 얻을 수 있습니다. 그러나 데모 키는 자주 순환되며 사용량 할당량이 제한되어 있습니다. 프로덕션 사용 또는 정기적인 사용의 경우, 더 높은 할당량을 가진 안정적이고 전용 API 키를 위해 사용 가능한 플랜 중 하나를 구독하는 것을 고려하십시오.
직접 API 사용
YouTube2Text API는 https://api.youtube2text.org에서 사용할 수 있습니다. 전사를 위한 주요 엔드포인트는 /transcribe입니다.
기본 CURL 요청
curl -X POST https://api.youtube2text.org/transcribe \
-H "Content-Type: application/json" \
-H "x-api-key: YT2TEXT_API_KEY" \
-d '{
"url": "https://www.youtube.com/watch?v=VIDEO_ID"
}'입력 매개변수
url (필수): 전체 YouTube 비디오 URL; maxChars (선택): 반환할 최대 문자 수 (기본값 150,000)
응답 구조
성공 응답 (200)
{
"result": {
"videoId": "VIDEO_ID",
"title": "Video Title",
"pubDate": "2025-06-30T08:45:04-07:00",
"content": "The full video transcription text without timestamps...",
"contentSize": 12345,
"truncated": false
}
}오류 응답 (400/401/404/429/500)
{
"error": {
"code": "ERROR_CODE",
"message": "Error description",
"status": 400,
"retryAfterSeconds": 3600,
"details": "Additional error details"
}
}응답 코드
- 200: 성공 - 전사 검색됨
- 400: 잘못된 요청 - 잘못된 URL 또는 유효성 검사 오류
- 401: 미인증 - API 키 누락 또는 잘못됨
- 404: 찾을 수 없음 - 비디오를 찾을 수 없거나 전사를 사용할 수 없음
- 429: 속도 제한 - 할당량 초과 또는 요청 초과
- 500: 내부 서버 오류 - 서버 측 문제
오류 코드
- VALIDATION_ERROR: 잘못된 URL 또는 누락된 매개변수
- UNAUTHORIZED: 잘못되거나 만료된 API 키
- VIDEO_NOT_FOUND: YouTube 비디오를 찾을 수 없음
- TRANSCRIPT_UNAVAILABLE: 이 비디오에 대한 전사를 사용할 수 없음
- INVALID_URL: 잘못 형성된 YouTube URL
- RATE_LIMIT_EXCEEDED: 월간 할당량 초과 또는 속도 제한
- INTERNAL_ERROR: 서버 측 오류
MCP 통합
YouTube2Text는 다양한 AI 모델과의 원활한 통합을 위해 모델 컨텍스트 프로토콜(MCP)을 지원합니다.
Anthropic Claude
import anthropic
from anthropic.types.beta import BetaRequestMCPServerURLDefinitionParam, BetaMessageParam
default_key = "ANTHROPIC_API_KEY"
client = anthropic.Anthropic(api_key=default_key)
server = BetaRequestMCPServerURLDefinitionParam(
name="youtube2text",
type="url",
url="https://api.youtube2text.org/mcp",
authorization_token="YT2TEXT_API_KEY"
)
prompt_message = BetaMessageParam(role="user", content="Please use the tools from the remote MCP server to help me. Provide the transcription of https://www.youtube.com/watch?v=DCv5p_eJTlU")
response = client.beta.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=10000,
messages=[prompt_message],
# Direct MCP server connection - no manual tool definition needed!
mcp_servers=[server],
# Required beta header for MCP connector
extra_headers={
"anthropic-beta": "mcp-client-2025-04-04",
}
)
print(response.content)OpenAI
from openai import OpenAI
from openai.types.responses.tool_param import Mcp
import os
os.environ["OPENAI_API_KEY"] = "OPENAI_API_KEY"
client = OpenAI()
youtube_transcribe_mcp = Mcp(
type="mcp",
server_label="youtube2text",
server_url="https://api.youtube2text.org/mcp",
require_approval="never",
headers={"Authorization": "Bearer YT2TEXT_API_KEY"}
)
resp = client.responses.create(
model="gpt-4.1",
tools=[youtube_transcribe_mcp],
input="Please use the tools from the remote MCP server to help me. Provide the transcription of https://www.youtube.com/watch?v=DCv5p_eJTlU",
)
print(resp.output_text)Google Gemini
import google.generativeai as genai
import requests
genai.configure(api_key="GEMINI_API_KEY")
YOUTUBE_TRANSCRIPT_API_URL = "https://api.youtube2text.org/mcp"
YOUTUBE_TRANSCRIPT_API_TOKEN = "YT2TEXT_API_KEY"
# Define the External Tool (Function)
def get_youtube_transcription(video_url: str):
"""
Retrieves the transcription of a YouTube video from a given URL.
Args:
video_url: The full URL of the YouTube video.
"""
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {YOUTUBE_TRANSCRIPT_API_TOKEN}"
}
payload = {"url": video_url}
try:
response = requests.post(YOUTUBE_TRANSCRIPT_API_URL, headers=headers, json=payload)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
return {"error": str(e)}
# Set up the Gemini Model with the Tool
model = genai.GenerativeModel(
model_name='gemini-2.5-flash',
tools=[get_youtube_transcription]
)
# Start a Chat Session and Send the Prompt
chat = model.start_chat(enable_automatic_function_calling=True)
prompt = "Please provide the transcription of https://www.youtube.com/watch?v=DCv5p_eJTlU"
response = chat.send_message(prompt)
print(response.text)자동화 플랫폼 통합
Zapier 통합
YouTube2Text는 MCP 연결을 통해 Zapier와 통합될 수 있습니다. Zapier의 AI Actions 기능은 MCP 서버를 지원하여 비디오 전사를 트리거하는 자동화된 워크플로를 생성할 수 있습니다.
n8n 통합
n8n은 사용자 정의 노드와 HTTP 요청 노드를 통해 MCP 통합을 지원합니다. YouTube2Text의 MCP 엔드포인트를 n8n 워크플로에 연결하여 자동화된 비디오 처리 파이프라인을 구현할 수 있습니다.
추가 예제
더 많은 구현 예제, 고급 사용 패턴 및 통합 가이드는 포괄적인 문서와 코드 샘플을 위해 프로젝트 저장소를 방문하십시오.