
تنزيل نصوص يوتيوب
Prosey هي أداة سطر أوامر لتنزيل وعرض النصوص المنقولة من فيديوهات YouTube، بحيث يمكنك الحصول على المعلومات التي تبحث عنها دون إضاعة ساعات.
حالات الاستخدام الرئيسية هي:
كلا الاستخدامين يحتاجان إلى مساعد ذكاء اصطناعي على نظامك (الافتراضي: opencode، استخدم prosey config لتكوين المساعد الخاص بك).
إذا اكتشفنا أداة تلوين بناء الجملة على نظامك، ستحصل على مخرجات ملونة جميلة.
يمكن لـ Prosey أيضًا إخراج أو تخزين تنسيق JSON الأصلي كما هو.
| الميزة | الوصف |
|---|---|
| 💡 تلخيص | جلب وتلخيص نص الفيديو المنقول |
| 📖 قراءة | جلب وعرض النص المنقول منسقًا بتنسيق Markdown |
| 📋 تنزيل النص المنقول | جلب نصوص YouTube المنقولة كنص عادي أو JSON حرفي |
| 🤖 تلخيص بالذكاء الاصطناعي | توجيه النصوص المنقولة إلى أي وكيل ذكاء اصطناعي (opencode, Claude, Copilot, Codex) |
| 🎨 عارض ذكي | تلوين بناء الجملة تلقائيًا إذا تم تثبيت bat أو glow أو mdcat (أو قم بتكوين العارض الخاص بك) |
| 🛠️ تخصيص | استخدم prosey config للوصول إلى إعداداتك وتحريرها / تخصيص المطالبات |
| 💾 تخزين مؤقت على القرص | يتم تخزين النصوص المنقولة والملخصات مؤقتًا على القرص لإعادة القراءة الفورية |
| 📄 التنسيقات المدعومة | نص عادي وJSON |
جرّبه فورًا باستخدام npx:
npx @tacone/prosey 771PQEDeRmw
npx @tacone/prosey https://youtu.be/771PQEDeRmw --lang es -o transcript.txt
قم بتثبيته عالميًا باستخدام مدير الحزم المفضل لديك:
npm install -g @tacone/prosey
# أو
yarn global add @tacone/prosey
# أو
pnpm add -g @tacone/prosey
# أو
bun install -g @tacone/prosey
ثم استخدمه في أي مكان:
prosey 771PQEDeRmw
يستخدم Bun للتطوير — البرامج النصية، إدارة الحزم، وتشغيل كود TypeScript مباشرة.
git clone https://github.com/tacone/prosey.git
cd prosey
bun install
bun run start -- 771PQEDeRmw
prosey [options] <video controls-url-or-id>
prosey read [options] <video controls-url-or-id>
prosey info [options] <video controls-url-or-id>
prosey summarize [options] <video controls-url-or-id>
prosey config
prosey help
summarize هو الأمر الافتراضي، لذا فإن prosey <id> يشغل أداة التلخيص بالذكاء الاصطناعي.
استخدم prosey read <id> لتنزيل وطباعة نص منقول منسق بشكل غني.
يقوم أمر summarize بجلب النص المنقول، ويسبقه بالمطالبة من
قسم التكوين [summarize]، ويوجه النتيجة إلى أمر الذكاء الاصطناعي المُكوّن.
يقوم أمر read بتنزيل النص المنقول وطباعته إلى stdout (نص عادي،
markdown، أو JSON). هذا مفيد عندما لا تحتاج إلى معالجة بالذكاء الاصطناعي.
يعرض أمر info بيانات الفيديو الوصفية (العنوان، القناة، المدة، المشاهدات).
يقوم أمر config بفتح ملف التكوين الخاص بك في $EDITOR للتحرير. إذا
لم يتم تعيين $EDITOR، يتم طباعة مسار ملف التكوين.
يعرض أمر help رسالة المساعدة، نفس --help.
# تلخيص (ملخص بالذكاء الاصطناعي + تنسيق + تلوين بناء الجملة)
prosey 771PQEDeRmw
# تلخيص (نفس ما سبق)
prosey summarize 771PQEDeRmw
# نسخ (ملخص بالذكاء الاصطناعي + تنسيق + تلوين بناء الجملة)
prosey read 771PQEDeRmw
# عرض بيانات الفيديو الوصفية
prosey info 771PQEDeRmw
# تحرير التكوين في $EDITOR
prosey config
# عرض اللغات المتاحة
prosey read https://youtu.be/771PQEDeRmw --list
# تحديد اللغة
prosey read https://youtu.be/771PQEDeRmw --lang es
# عرض JSON (بدون نسخ بالذكاء الاصطناعي)
prosey read 771PQEDeRmw
# عرض نص عادي (بدون نسخ بالذكاء الاصطناعي)
prosey read 771PQEDeRmw
# حفظ النص المنقول إلى ملف
prosey read 771PQEDeRmw -o transcript.txt
عند استخدام --json، تكون المخرجات عبارة عن مصفوفة من الكائنات:
[
{
"text": "♪ We're no strangers to love ♪",
"offset": 18.64,
"duration": 3.24,
"timestamp": "00:18"
}
]
timestamp موجود دائمًا في وضع JSON. يتم تجاهل تفاصيل الفيديو
(بصمت) لأن JSON هي بيانات منظمة.
يستخدم هذا المشروع Bun للتطوير.
bun run typecheck # فحص TypeScript
bun run start # تشغيل CLI من المصدر
bun run test # تشغيل اختبارات الوحدة
bun run build # تجميع حزمة Node إلى bin/prosey
قبل النشر إلى npm، يتم تشغيل bun run build تلقائيًا عبر خطاف prepack،
مما ينتج حزمة JS متوافقة مع Node في bin/prosey.
يقرأ Prosey التكوين من ملف TOML. يتبع الموقع
مواصفات دليل القاعدة XDG
(~/.config/prosey/config.toml)، أو يمكنك تعيين متغير البيئة PROSEY_CONFIG_PATH
لاستخدام مسار مخصص.
يتم إنشاء ملف التكوين تلقائيًا عند التشغيل الأول بالقيم الافتراضية.
استخدم --reset-config لاستعادة القيم الافتراضية في أي وقت.
pagerأمر العارض لمخرجات النص المنقول والملخص. الافتراضي هو "auto"، والذي
يكتشف أول أمر متاح من: bat -lmd --style plain ← glow -p ← mdcat -l -p ← less.
اضبطه على أمر مخصص (مثل "less -R") للتجاوز. متغير البيئة PROSEY_PAGER
له الأسبقية على هذا الإعداد.
[summarize]يقوم قسم [summarize] بتكوين أمر summarize:
| المفتاح | الوصف |
|---|---|
prompt | تعليمة تُسبق النص المنقول |
command | أمر شل يستقبل المطالبة عبر stdin |
PROSEY_PAGERمتغير بيئة لتعيين أمر العارض. له الأسبقية على
قيمة التكوين pager. اضبطه على "auto" أو اتركه فارغًا لاستخدام الكشف التلقائي.
يتم تخزين النصوص المنقولة والملخصات مؤقتًا في /tmp/prosey/. الاستدعاءات المتكررة
لنفس الفيديو والخيارات تكون فورية وتعمل دون اتصال. استخدم --no-cache
لتخطي قراءة التخزين المؤقت وفرض جلب جديد.
عند تشغيل prosey summarize، يعمل الأمر داخل دليل التخزين المؤقت
لذلك الفيديو. هذا يمنع وكيل الذكاء الاصطناعي من التقاط ملفات خاصة بالمشروع
مثل AGENTS.md أو CLAUDE.md من المجلد الحالي، ويحد من
قدرته على تعديل الملفات خارج ذلك الدليل.
| الرمز | المعنى |
|---|---|
0 | نجاح |
65 | رابط أو معرف فيديو غير صالح |
يستخدم prosey واجهة برمجة تطبيقات Innertube الخاصة بـ YouTube عبر مكتبة youtube-transcript-plus. لا حاجة إلى مفاتيح API أو أتمتة متصفح.
تعمل الأداة مع كل من التسميات التوضيحية المنشأة يدويًا والنصوص المنقولة المولدة تلقائيًا (تحويل الكلام إلى نص من YouTube). يقوم الكشف التلقائي بالتنقل بين اللغات بالترتيب الذي توفره استجابة مشغل YouTube.
| العلامة | الوصف |
|---|
--lang <code> | رمز اللغة (مثل en, fr). يتم الكشف تلقائيًا إذا تم حذفه. |
-t, --timestamps | أسبق [MM:SS] لكل سطر في مخرجات النص. |
--list | عرض لغات النص المنقول المتاحة للفيديو، ثم الخروج. |
-o, --output <path> | كتابة المخرجات إلى ملف بدلاً من stdout. |
--json | إخراج النص المنقول كمصفوفة JSON. كل عنصر يتضمن text, offset (بالثواني), duration, و timestamp. |
--text | إخراج كنص عادي (الافتراضي لـ prosey read). |
--details | أسبق تفاصيل الفيديو (العنوان، القناة، المدة، المشاهدات، الوصف) إلى النص المنقول (الافتراضي). |
--no-details | تجاهل تفاصيل الفيديو، النص المنقول فقط. |
--no-decode-entities | الحفاظ على كيانات HTML الأولية (مثل '). يتم فك الترميز افتراضيًا في وضع النص. |
--no-cache | تخطي قراءة التخزين المؤقت وفرض جلب جديد. |
--no-format | تخطي تنسيق markdown الأجمل على مخرجات التلخيص. |
-q, --quiet | كتم جميع تسجيلات stderr. |
-v, --verbose | طباعة معلومات التصحيح إلى stderr. |
--no-pager | تعطيل العارض لمخرجات stdout (يتم الكشف تلقائيًا افتراضيًا). |
--pager | استخدام العارض لمخرجات stdout (الافتراضي). |
--reset-config | إعادة تعيين ملف التكوين إلى الافتراضي والخروج. |
--help | عرض رسالة المساعدة والخروج. |
--version | عرض رقم الإصدار والخروج. |