Transcript Dock مقابل youtube-transcript-api
youtube-transcript-api مكتبة Python مجانية يحظرها YouTube على عناوين IP السحابية. متى تستحق واجهة مستضافة مدفوعة، وكيف تنتقل إليها في بضعة أسطر.
آخر تحديث
باختصار: استمر في استخدام youtube-transcript-api للسكريبتات والدفاتر على اتصالك الخاص؛ فهي مجانية وجيدة. وانتقل إلى واجهة مستضافة عندما تعمل المكتبة على خادم، لأن YouTube يحظر معظم عناوين IP السحابية، فتحتاج المكتبة عندها إلى وكيل سكني مدفوع. وتغطي الواجهة المستضافة TikTok والفيديوهات التي لا تحتوي على ترجمات أيضًا.
مقارنة جنبًا إلى جنب#
| الميزة | Transcript Dock | youtube-transcript-api |
|---|---|---|
| ما هي | واجهة API مستضافة وخادم MCP | مكتبة Python مفتوحة المصدر (MIT) |
| المصادر | YouTube وTikTok وملفات مرفوعة وروابط وسائط مباشرة | YouTube |
| التشغيل من السحابة | نعم، ولا يحتاج إلى إعداد | تحتاج إلى وكيل سكني متناوب |
| بدون ترجمات | تفريغ بالذكاء الاصطناعي في الخطط المدفوعة | غير مدعوم |
| الصيغ المُصدَّرة | TXT وSRT وVTT وJSON | نص وJSON ومُنسِّقات SRT وWebVTT |
| الترجمة | اختر لغة ترجمة موجودة | الترجمة التلقائية من YouTube |
| التكلفة | رصيد واحد لكل نص؛ و50 رصيدًا مجانيًا كل شهر | مجانية، مع تكاليف الوكيل في السحابة |
مشكلة عناوين IP السحابية#
يقول ملف README الخاص بالمكتبة إن YouTube بدأ يحظر معظم عناوين IP المعروفة بانتمائها إلى مزودي السحابة، فتفشل الاستدعاءات عندها بخطأ RequestBlocked أو IpBlocked. والحل الذي تقترحه هو وكيل سكني متناوب، وهذا يعني فاتورة ثانية، وشيئًا إضافيًا تحتاج إلى مراقبته. وتتولى Transcript Dock هذا الجزء نيابةً عنك، وتدفع مقابل كل نص بدلًا من الدفع مقابل كل غيغابايت من حركة الوكيل.
الانتقال يحتاج إلى بضعة أسطر#
تعود المقاطع مع start وend بالثواني، وهي قريبة من مقاطع المكتبة.
# beforefrom youtube_transcript_api import YouTubeTranscriptApisnippets = YouTubeTranscriptApi().fetch("dQw4w9WgXcQ")# afterimport requestsAPI, H = "https://www.transcriptdock.com", {"Authorization": "Bearer td_live_YOUR_KEY"}job = requests.post(f"{API}/v1/jobs", headers={**H, "Idempotency-Key": "yt-dQw4w9WgXcQ"},json={"source": {"url": "https://youtu.be/dQw4w9WgXcQ"}, "mode": "captions_only"}).json()while job["status"] not in ("succeeded", "failed", "cancelled"):job = requests.get(f"{API}/v1/jobs/{job['id']}", params={"wait": 25}, headers=H).json()segments = requests.get(f"{API}/v1/transcripts/{job['result_id']}", headers=H).json()["segments"]# each segment: {"start": 0.0, "end": 2.4, "text": "..."}
أيهما تختار#
- اختر المكتبة لـ YouTube فقط، وحجم صغير، والتشغيل من حاسوبك أو خادم منزلي.
- اختر Transcript Dock للإنتاج على مستضيف سحابي، وTikTok، والفيديوهات بلا ترجمات، وتصدير ملفات الترجمة، أو لمنح Claude وCursor الوصول عبر MCP.
المزيد من الخيارات في كيفية الحصول على نص فيديو YouTube.