
تنزيل نصوص يوتيوب
Prosey هي أداة سطر أوامر لتنزيل وعرض النصوص المكتوبة (الترانسكريبت) من فيديوهات YouTube، حتى تتمكن من الحصول على المعلومات التي تبحث عنها دون إضاعة ساعات.
حالات الاستخدام الرئيسية هي:
كلا الاستخدامين يتطلبان مساعد ذكاء اصطناعي على نظامك (الافتراضي: opencode، استخدم prosey config لتكوين المساعد الخاص بك).
إذا اكتشفنا أداة تلوين صياغة (syntax highlighter) على نظامك، ستحصل على مخرجات ملونة جميلة.
يمكن لـ 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 index
prosey render
prosey config
prosey help
summarize هو الأمر الافتراضي، لذا prosey <id> يشغّل ملخص الذكاء الاصطناعي.
استخدم prosey read <id> لتنزيل وطباعة نص مكتوب منسق بشكل غني.
يقوم أمر summarize بجلب نص مكتوب، ويضيف في البداية الأمر من
قسم الإعدادات [summarize]، ويمرر النتيجة إلى أمر الذكاء الاصطناعي المُهيأ.
يقوم أمر read بتنزيل النص المكتوب وطباعته إلى stdout (نص عادي،
أو markdown، أو JSON). هذا مفيد عندما لا تحتاج إلى معالجة بالذكاء الاصطناعي.
يعرض أمر info بيانات وصفية للفيديو (العنوان، القناة، المدة، المشاهدات).
يقوم أمر index بإعادة بناء فهرس المستندات وفتحه في المتصفح.
يسرد الفهرس كل ملخص ونص مكتوب مخزن في دليل البيانات
ويُعاد بناؤه تلقائيًا بعد كل تشغيل تلخيص/نسخ. النقر على
شعار Prosey في أي صفحة محتوى يعيدك إلى الفهرس.
يقوم أمر render بإعادة إنشاء كل صفحة HTML من markdown المخزن مؤقتًا
(بدون شبكة أو معالجة بالذكاء الاصطناعي) ويعيد كتابة الفهرس.
يفتح أمر 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 Base Directory
(~/.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 | عنوان URL أو معرف فيديو غير صالح |
يستخدم 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 | عرض رقم الإصدار والخروج. |