Python SDK لنصوص فيديوهات YouTube: حزمة PyPI الرسمية
استخرج نصوص فيديوهات YouTube في تطبيقات Python. ثبّت الحزمة من PyPI، وصادِق باستخدام مفتاح API، وادمج استخراج النصوص في مسارات البيانات وأدوات البحث وسكربتات الأتمتة لديك.
التثبيت
pip install youtubetranscriptdevapi
البدء السريع
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}")المزايا
# 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})batch = yt.batch(["video1", "video2", "video3"])
for t in batch.completed:
print(f"{t.video_id}: {t.word_count} words")job = yt.transcribe_asr("video_without_captions")
result = yt.wait_for_job(job.job_id) # polls until complete
print(result.text)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
# 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)العميل غير المتزامن
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())معالجة الأخطاء
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
كائن Transcript
كائن Segment
تكلفة الأرصدة
مقارنة مع YOUTUBE-TRANSCRIPT-API (مفتوحة المصدر)
ربما صادفت حزمة youtube-transcript-api الشهيرة مفتوحة المصدر. إليك أوجه الاختلاف بينها وبين حزمتنا:
حزم SDK وأدوات أخرى
الأسئلة الشائعة
ما إصدارات 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 ←