🐍 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 (קוד פתוח)

ייתכן שנתקלתם בחבילת הקוד הפתוח הפופולרית youtube-transcript-api. כך החבילה שלנו שונה ממנה:

תכונהYouTubeTranscript.dev SDKyoutube-transcript-api
גיבוי בתמלול AIכן: מתמודד עם סרטונים בלי כתוביותלא: נכשל אם אין כתוביות
תחזוקה ותמיכהמתוחזק באופן פעיל, עם SLAמתוחזק על ידי הקהילה, עדכונים ספורדיים
טיפול במגבלות קצבמובנה, עם ניסיונות חוזרים אוטומטייםידני: אתם מטפלים במגבלות הקצב
תמיכה בפלייליסטים ובכמויותעיבוד קבוצתי מובנהנדרשת איטרציה ידנית
חסימות של YouTubeבצד השרת: אין סיכון לחסימת IPבצד הלקוח: כתובת ה-IP שלכם עלולה להיחסם

SDKs וכלים נוספים

שפהחבילה
JavaScript / Nodeyoutube-transcript-api ב-npm
Dart / Flutteryoutubetranscript ב-pub.dev
שרת MCPmcp.youtubetranscript.dev

שאלות נפוצות

אילו גרסאות Python נתמכות?+

Python 3.8 ומעלה. אנחנו ממליצים על Python 3.10 ומעלה לחוויה הטובה ביותר עם type hints.

במה זה שונה מ-youtube-transcript-api?+

ה-SDK שלנו הוא החבילה הרשמית של YouTubeTranscript.dev. הוא כולל תמלול מבוסס AI לסרטונים בלי כתוביות, חילוץ בצד השרת שמונע חסימת IP, הגבלת קצב מובנית ותמיכה מקצועית. חלופת הקוד הפתוח רק מחלצת כתוביות קיימות ורצה בצד הלקוח.

אפשר להשתמש בו ב-Jupyter notebooks?+

כן. ה-API הסינכרוני עובד מצוין ב-Jupyter notebooks וב-Google Colab. לעיבוד מקבילי בסביבות notebook, השתמשו ב-API האסינכרוני.

האם הוא עובד עם Django ו-Flask?+

כן. ה-SDK לא תלוי בפריימוורק ועובד עם כל פריימוורק ווב של Python. עם פריימוורקים אסינכרוניים כמו FastAPI, השתמשו בממשק האסינכרוני.

התחילו לבנות עם ה-Python SDK

pip install, התחברות, ואתם מחלצים תמלולים תוך דקות.

צפו ב-PyPI ←

התחילו לחלץ תמלולים בחינם

המירו כל סרטון YouTube לטקסט תוך שניות. בלי צורך בכרטיס אשראי.

נסו את YOUTUBETRANSCRIPT.DEV ←
Python SDK לתמלולי YouTube | YouTubeTranscript.dev