🐍 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"

تكلفة الأرصدة

العمليةالتكلفة
استخراج الترجماترصيد واحد
الترجمةرصيد واحد لكل 2,500 حرف
التفريغ الصوتي عبر ASRرصيد واحد لكل 90 ثانية
إعادة جلب نص تملكهمجانًا

مقارنة مع YOUTUBE-TRANSCRIPT-API (مفتوحة المصدر)

ربما صادفت حزمة youtube-transcript-api الشهيرة مفتوحة المصدر. إليك أوجه الاختلاف بينها وبين حزمتنا:

الميزةYouTubeTranscript.dev SDKyoutube-transcript-api
بديل احتياطي للتفريغ بالذكاء الاصطناعينعم: تتعامل مع الفيديوهات التي لا تحتوي على ترجماتلا: تفشل إذا لم تكن هناك ترجمات
الصيانة والدعمصيانة مستمرة مع اتفاقية مستوى خدمة (SLA)صيانة مجتمعية وتحديثات متقطعة
التعامل مع حدود الطلباتمدمج مع إعادة محاولة تلقائيةيدوي: عليك التعامل مع حدود الطلبات بنفسك
دعم قوائم التشغيل والمعالجة بالجملةمعالجة دفعية مدمجةتتطلب تكرارًا يدويًا
الحظر من YouTubeمن جهة الخادم: لا خطر لحظر عنوان IPمن جهة العميل: قد يُحظر عنوان IP الخاص بك

حزم SDK وأدوات أخرى

اللغةالحزمة
JavaScript / Nodeyoutube-transcript-api على npm
Dart / Flutteryoutubetranscript على pub.dev
خادم MCPmcp.youtubetranscript.dev

الأسئلة الشائعة

ما إصدارات Python المدعومة؟+

Python 3.8 وما بعده. نوصي بـ Python 3.10+ للحصول على أفضل تجربة مع تلميحات الأنواع.

ما الفرق بينها وبين youtube-transcript-api؟+

SDK الخاصة بنا هي الحزمة الرسمية لـ YouTubeTranscript.dev. وتتضمن التفريغ المدعوم بالذكاء الاصطناعي للفيديوهات التي لا تحتوي على ترجمات، والاستخراج من جهة الخادم لتجنّب حظر عنوان IP، وإدارة مدمجة لحدود الطلبات، ودعمًا احترافيًا. أما البديل مفتوح المصدر فيستخرج الترجمات الموجودة فقط ويعمل من جهة العميل.

هل يمكنني استخدامها في دفاتر Jupyter؟+

نعم. تعمل API المتزامنة بشكل مثالي في دفاتر Jupyter وGoogle Colab. واستخدم API غير المتزامنة للمعالجة المتزامنة في بيئات الدفاتر.

هل تعمل مع Django وFlask؟+

نعم. SDK مستقلة عن أطر العمل وتعمل مع أي إطار عمل ويب في Python. واستخدم الواجهة غير المتزامنة مع أطر العمل غير المتزامنة مثل FastAPI.

ابدأ البناء باستخدام Python SDK

ثبّت عبر pip install، وصادِق، واستخرج النصوص في دقائق.

اطّلع عليها في PYPI ←

ابدأ استخراج النصوص مجانًا

حوّل أي فيديو على YouTube إلى نص خلال ثوانٍ. دون الحاجة إلى بطاقة ائتمان.

جرّب YOUTUBETRANSCRIPT.DEV ←
Python SDK لنصوص فيديوهات YouTube | YouTubeTranscript.dev