عن المشروع
YouTube Transcript API هي مكتبة Python لاسترداد الترجمات والكتابيين (subtitles) من فيديوهات YouTube. وعلى عكس الحلول القائمة على Selenium، لا تتطلب متصفحًا بلا رأس (headless browser)، مما يجعلها خفيفة وسهلة النشر. تعمل مع كل من الكتابيين الذين تم إنشاؤها يدويًا وتلك المولَّدة تلقائيًا.
التثبيت سهل عبر pip: `pip install youtube-transcript-api`.
توفر الواجهة الأساسية فئة `YouTubeTranscriptApi` مع دالة `fetch()` التي تقبل معرف فيديو YouTube (وليس الرابط الكامل). تُعيد كائن `FetchedTranscript` يحتوي على مصفوفة من الشرائح (snippets)، كل شريحة تحتوي على النص والزمن الابتدائي والمدة. الناتج قابل للعدّ والوصول بالفهرس وله خاصية الطول.
من الميزات الرئيسية:
- استرداد الترجمات بلغات محددة بتمرير معلمة `languages` كقائمة من رموز اللغات (مثل `['de', 'en']`).
- الحفاظ على التنسيق HTML مثل الخط المائل والعريض باستخدام `preserve_formatting=True`.
- سرد جميع الترجمات المتاحة للفيديو عبر `list()`، ثم تصفيتها حسب اللغة أو نوع الترجمة (من صنع يدوي مقابل مولّدة تلقائيًا).
- ترجمة الترجمات الموجودة إلى لغات أخرى باستخدام دالة `translate()` على كائن `Transcript`.
- تنسيق الإخراج بصيغ JSON أو SRT أو WebVTT أو CSV أو نص عادي عبر المكوّنات المدمجة في فرع `formatters`.
- أداة سطر أوامر (`youtube_transcript_api`) للاستخدام عبر واجهة سطر الأوامر مع خيارات للغة وتنسيق الإخراج والترجمة واستبعاد الترجمات المولَّدة تلقائيًا أو اليدوية.
- دعم الوكيل (proxy) لتجاوز حظر عناوين IP من مزودي السحابة أو حجم الطلبات العالي، مع وكلاء residential دوارين متكاملين من Webshare أو تكوين وكيل HTTP/SOCKS عام.
يعتمد المشروع على جزء غير موثّق من واجهة YouTube web-client API ويحمل تحذيرًا من أنه قد ينكسر إذا غيّرت YouTube تنفيذها الداخلي. مرخّص بموجب رخصة MIT ومتوفر على PyPI.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.