## 🔎 ملخّص الطلب 1. **أداة (أو مجموعة أدوات) لأرشفة فيديوهات YouTube من روابط** 2. **إمكانية تصنيف الفيديوهات/القنوات تحت عنوان أو فئة مخصّصة** – أي أنك تريد متابعة محتوى **قنوات محددة فقط** وليس كل القنوات التي تتابعها. 3. **إضافات Chrome لتقليل الإعلانات المستهدفة ومنع المواقع من طلب موقعك الجغرافي**. سأقدّم لك حلًّا عمليًا يجمع بين **أدوات مجانية/مفتوحة المصدر**، مع **خطوات إعداد مفصّلة** وروابط تحميل مباشرة، بالإضافة إلى **نصائح أمان**. --- ## 1️⃣ أرشفة الفيديوهات من روابط (مع تصنيف تلقائي) ### 1.1. الخيار الأكثر مرونة – **yt‑dlp + ملف تصنيف (JSON/CSV)** | العنصر | ما يفعله | لماذا هو مفيد | |--------|----------|--------------| | **yt‑dlp** (fork محسّن من youtube‑dl) | تنزيل الفيديو بأعلى جودة، حفظ الوصف، الترجمات، صورة المصغرة، وإنشاء ملف `archive.txt` لتجنب تنزيل نفس الفيديو مرتين. | سطر أوامر بسيط، يدعم جميع الأنظمة (Windows‑macOS‑Linux). | | **ملف `links.txt`** | كل سطر يحتوي على رابط فيديو أو رابط RSS لقناة. | يتيح لك تجميع الروابط من أي مصدر (موقع، ملف OPML، أو سكريبت). | | **ملف `categories.json`** (اختياري) | يربط كل معرف قناة (`channelId`) بفئة/عنوان مخصص (مثلاً “تقنية”، “طبخ”). | يتيح فرز الفيديوهات إلى مجلدات حسب الفئة تلقائيًا. | | **سكريبت Python** (قليل الأسطر) | يقرأ `links.txt` + `categories.json` → يستدعي yt‑dlp مع خيارات التسمية. | كل شيء يتم بنقرة واحدة؛ لا تحتاج لتدخل يدوي بعد الإعداد. | #### 1.1.1. تثبيت yt‑dlp | النظام | طريقة التثبيت | |-------|---------------| | **Windows** | 1. حمل `yt-dlp.exe` من
2. أنشئ مجلدًا (مثلاً `C:\yt-dlp\`) وانسخ الملف إليه. | | **macOS** | ```bash
brew install yt-dlp
``` (إذا كان لديك Homebrew) | | **Linux** | ```bash
sudo apt-get install python3-pip # إذا لم يكن مثبتًا
python3 -m pip install -U yt-dlp
``` أو تحميل الملف التنفيذي مباشرةً من GitHub. | #### 1.1.2. هيكلة الملفات ``` /archive‑project/ │─ yt‑dlp.exe (أو ملف تنفيذي للمنصة) │─ links.txt ← كل سطر = رابط فيديو │─ categories.json ← (اختياري) تصنيف القنوات │─ download‑archive.txt ← يُنشأ تلقائيًا │─ run‑archive.bat (Windows) أو run‑archive.sh (Linux/macOS) │─ download.py (سكريبت Python) ``` **ملف `links.txt` (مثال):** ``` https://www.youtube.com/watch?v=abc123 https://www.youtube.com/watch?v=def456 https://www.youtube.com/feeds/videos.xml?channel_id=UC7XYZ789 # RSS قناة ``` **ملف `categories.json` (اختياري):** ```json { "UC7XYZ789": "تقنية", "UClmnopqr": "طبخ", "UCstuvwx": "رياضة" } ``` #### 1.1.3. سكريبت Python لتصنيف أثناء التحميل > **ملف:** `download.py` ```python import json, os, subprocess, sys, pathlib # ---------- إعدادات ---------- YT_DLP = "yt-dlp.exe" if os.name == "nt" else "yt-dlp" LINKS_FILE = "links.txt" ARCHIVE_FILE = "download-archive.txt" CATS_FILE = "categories.json" OUTPUT_TEMPLATE = "%(category)s/%(uploader)s/%(upload_date)s - %(title)s.%(ext)s" # ------------------------------ # تحميل التصنيفات (إن وجدت) categories = {} if pathlib.Path(CATS_FILE).exists(): with open(CATS_FILE, "r", encoding="utf-8") as f: categories = json.load(f) def get_category(channel_id): return categories.get(channel_id, "غير‑مصنّف") # بناء قائمة الروابط مع تمرير متغيّر `category` إلى yt‑dlp with open(LINKS_FILE, "r", encoding="utf-8") as f: for url in f: url = url.strip() if not url: continue # استخراج معرف القناة (إذا كان URL لقناة أو RSS) # الصيغة العامة: …/channel/CHANNEL_ID أو …?channel_id=CHANNEL_ID channel_id = None if "channel_id=" in url: channel_id = url.split("channel_id=")[-1].split("&")[0] elif "/channel/" in url: channel_id = url.split("/channel/")[-1].split("/")[0] # إذا وجدنا معرف القناة → نحدد الفئة category = get_category(channel_id) if channel_id else "غير‑مصنّف" # أمر yt‑dlp مع المتغيّر `category` في قالب الإخراج cmd = [ YT_DLP, "--format", "bestvideo+bestaudio/best", "--embed-subs", "--write-info-json", "--write-thumbnail", "--download-archive", ARCHIVE_FILE, "--output", OUTPUT_TEMPLATE.replace("%(category)s", category), url ] # تشغيل العملية وعرض السجل print(f"🔽 تحميل: {url} → الفئة: {category}") subprocess.run(cmd, check=False) ``` **ملف تشغيل (Batch/ Bash)** - **Windows (`run-archive.bat`)** ```bat @echo off python download.py pause ``` - **Linux/macOS (`run-archive.sh`)** ```bash #!/usr/bin/env bash python3 download.py ``` > **ما يحدث؟** - كل فيديو يُحفظ داخل مجلد يُسمّى باسم الفئة (من `categories.json`). - إذا لم يكن الفيديو من قناة مصنّفة، يُحفظ في مجلد `غير‑مصنّف`. - ملف `download-archive.txt` يمنع إعادة تنزيل ملفات تم حفظها مسبقًا. #### 1.1.4. تشغيل الأرشفة ```bash # من داخل مجلد المشروع ./run-archive.sh # Linux/macOS # أو run-archive.bat # Windows ``` ### 1.2. حلول بديلة (بدون سطر أوامر) | التطبيق | نظام التشغيل | مميزات رئيسية | رابط التحميل | |---------|--------------|----------------|--------------| | **NewPipe** | Android | - تنزيل فيديو/صوت
- حفظ الفيديو في مجلد مخصص
- لا يطلب حساب Google ولا يتبع خوارزمية YouTube | | | **FreeTube** | Windows / macOS / Linux | - مشاهدة بدون إعلانات (يستخدم Invidious)
- إمكانية تنزيل الفيديو (مدمج yt‑dlp)
- تنظيم القنوات في “Playlists” مخصصة | | | **4K Video Downloader** (نسخة مجانية) | Windows / macOS / Linux | - واجهة رسومية بسيطة
- دعم قوائم تشغيل كاملة
- حفظ الفيديو مع اسم القناة وتاريخ الرفع | | | **JDownloader 2** | Windows / macOS / Linux | - مدير تنزيل عام يدعم ملفات نصية بالروابط
- يمكن ربطه بـ `yt‑dlp` كـ “plugin” لتصنيف تلقائي | | > **نصيحة**: إذا كنت تريد **حفظ الفيديوهات على هاتف Android** مع تصنيف يدوي، فإن NewPipe هو الخيار الأسرع؛ إذا كنت تعمل على **كمبيوتر** وتحتاج لتصنيف آلي، استخدم الـ yt‑dlp مع السكريبت أعلاه. --- ## 2️⃣ تصنيف القنوات ومتابعة الاشتراكات فقط (دون خوارزمية YouTube) ### 2.1. ملحقات Chrome لتصنيف القنوات داخل YouTube | الملحق | ما يقدّمه | رابط التحميل | |--------|-----------|--------------| | **PocketTube – YouTube Channel Manager** | • إنشاء “Groups” (مجموعات) وتسمية كل مجموعة
• سحب القنوات إلى المجموعة المطلوبة
• إخفاء الخلاصات من القنوات غير المختارة
• يظل يعمل داخل موقع YouTube الأصلي (لا يلزم تطبيق خارجي) | | | **Channel Manager for YouTube** | • إضافة “Labels” (وسوم) لكل قناة
• عرض القنوات بحسب الوسم في صفحة “Subscriptions” | | | **Unhook – Remove YouTube Recommended Videos** | • إلغاء جميع مقاطع “Recommended” و “Up Next” لتظهر فقط مقاطع القنوات التي تشترك فيها. | | #### كيفية إنشاء مجموعة وتصنيف القنوات باستخدام PocketTube 1. **ثبت الملحق** من الرابط أعلاه. 2. افتح YouTube (ستظهر أيقونة PocketTube على شريط الأدوات). 3. اضغط على الأيقونة → **“Create Group”**. أعطِ المجموعة اسمًا (مثلاً “تقنية”). 4. في صفحة **Subscriptions** اسحب القنوات التي تريدها إلى المجموعة. 5. لتقليل الضوضاء، **اختر “Hide videos from other groups”** داخل إعدادات PocketTube. الآن الخلاصات ستظهر فقط للفيديوهات داخل المجموعة المختارة. ### 2.2. حلول سطح المكتب (بدون المتصفح) | التطبيق | نظام | طريقة التصنيف | |--------|------|----------------| | **FreeTube** | Windows / macOS / Linux | • يدعم إنشاء “Playlists” مخصصة (كل قائمة تمثل فئة).
• لا يستخدم خوارزمية توصية؛ يعرض فقط القنوات التي تضيفها يدوياً. | | **Invidious (خادم خاص أو عام)** | أي (متصفح) | • يمكنك تشغيل القنوات عبر واجهة Invidious (مثلاً `https://yewtu.be`).
• لا يجمع بياناتك ولا يعرض إعلانات.
• يمكن حفظ القنوات في ملف `subscriptions.json` وتعديله يدوياً لتصنيفها. | | **Memento – YouTube Subscriptions Manager** (Android) | Android | • يتيح إضافة وسوم (Tags) لكل قناة وتصديرها كملف OPML. | ### 2.3. طريقة متقدمة: استخراج الاشتراكات إلى ملف OPML + تصنيف في **Feedly** أو **Inoreader** 1. **استخراج الاشتراكات** (تحتاج حساب Google) - انتقل إلى → **“YouTube and YouTube Music”** → **تصدير** → ستحصل على ملف `subscriptions.xml` (OPML). 2. **استيراد OPML إلى Feedly** - سجّل الدخول إلى → **“Add Content → OPML”** → استورد الملف. 3. **إنشاء “Collections” (مجموعات)** داخل Feedly لكل فئة (مثلاً “تقنية”، “طبخ”). اسحب القنوات إلى المجموعة المناسبة. 4. **توليد روابط الفيديو اليومية**: - في Feedly يمكنك اختيار “Export → OPML” مرةً أخرى أو استخدام **Zapier / IFTTT** لتصدير كل عنصر جديد إلى ملف نصي `links.txt`. 5. **تشغيل yt‑dlp** مع `links.txt` → سيحفظ الفيديوهات في مجلدات الفئة التي حددتها في الخطوة 1. > **الميزة**: لا تحتاج إلى أي برمجة إذا استخدمت PocketTube + Feedly معًا؛ فقط استورد القنوات إلى Feedly لتصنيفها ثم استخدم أداة استخراج الروابط (Zapier) لتغذية `links.txt`. --- ## 3️⃣ إضافات Chrome لتقليل الإعلانات المستهدفة ومنع طلب الموقع الجغرافي | الإضافة | ما تقوم به | مميزات أمان | |---------|-----------|-------------| | **uBlock Origin** | مانع إعلانات شامل، يمنع طلبات التتبع (tracking) وشبكات الإعلانات. | مفتوح المصدر، يستهلك موارد قليلة. | | **Privacy Badger** (Electronic Frontier Foundation) | يحظر تلقائيًا المتعقّبين الذين يحاولون جمع بياناتك. | لا يحتاج إعداد يدوي، يحدّ من “fingerprinting”. | | **Ghostery** | يحجب المتعقّبين، يقدم لوحة تحكم لتفعيل/إيقاف كل “مُعَرف” (tracker). | واجهة سهلة الاستخدام. | | **Location Guard** | يخفّض دقة أو يحجب طلبات الموقع الجغرافي تمامًا. | يمكن تعيين إعدادات “تقريب” للـ GPS أو إيقافه بالكامل. | | **HTTPS Everywhere** (من EFF) | يفرض تحميل المواقع عبر HTTPS، يقلل من التجسس عبر HTTP غير المشفر. | الآن مدمج في معظم المتصفحات الحديثة، لكن الإضافة لا تزال مفيدة. | | **Decentraleyes** | يبدّل مكتبات CDN (مثل Google Hosted Libraries) ببدائل محلية لتقليل طلبات الطرف الثالث. | يقلل من “third‑party requests”. | #### كيفية تثبيت الإضافات (خطوات سريعة) 1. **افتح Chrome** → انتقل إلى **Chrome Web Store** (https://chrome.google.com/webstore). 2. ابحث عن الاسم (مثلاً “uBlock Origin”). 3. اضغط **Add to Chrome** → **Add extension**. 4. بعد التثبيت، اضغط على أيقونة الإضافة في شريط الأدوات لضبط الإعدادات (مثلاً: **تفعيل “Block all third‑party cookies”** في uBlock). #### إعدادات مبدئية لتقليل الإعلانات المستهدفة - **uBlock Origin → Dashboard → “My filters”** → أضف السطر التالي لمنع جميع طلبات إعلانات Google: ``` ||googleadservices.com^ ||googlesyndication.com^ ``` - **Location Guard → Settings** → اختر **“Never share location”** أو **“Reduce precision to 5 km”** إذا احتجت موقعًا تقريبيًا فقط. - **Privacy Badger**: اتركها على الوضع الافتراضي؛ ستتذكر المواقع التي تحاول تتبعك وتُحظرها تلقائيًا. > **ملحوظة أمان**: لا تقم بتمكين أي ملحق يطلب “إدارة جميع البيانات على جميع المواقع” إلا إذا كنت تثق به تمامًا (كل الإضافات المذكورة أعلاه موثوقة ومفتوحة المصدر). --- ## 4️⃣ خطوات تنفيذية شاملة (من البداية إلى النهاية) ### الخطوة 1 – إعداد أداة الأرشفة 1. **ثبت yt‑dlp** (أو استخدم NewPipe إذا كنت على Android). 2. أنشئ مجلد مشروع (مثلاً `C:\YT‑Archive`). 3. ضع داخل المجلد الملفات `links.txt`, `categories.json`, `download.py`. ### الخطوة 2 – تجميع الروابط وتصنيف القنوات - **طريقة سريعة (بدون برمجة):** 1. سجّل الدخول إلى YouTube → **قائمة الاشتراكات**. 2. استخدم **PocketTube** لإنشاء مجموعات (مثلاً “تقنية”، “رياضة”). 3. داخل كل مجموعة، اضغط على أيقونة **القائمة الثلاثية → “Copy channel link”** لجميع القنوات التي تريد أرشفتها. 4. الصق الروابط في ملف `links.txt`. 5. أضف معرف القناة (بعد `/channel/`) إلى `categories.json` مع اسم الفئة. - **طريقة متقدمة (باستخدام Feedly + Zapier):** 1. استورد ملف OPML إلى Feedly. 2. أنشئ “Collections” بحسب الفئات. 3. اربط Feedly بـ **Zapier** → “New article in Feedly” → “Append to Google Sheet”. 4. احصل على عمود “URL” في Google Sheet → صَدِّر إلى ملف نصي `links.txt` يوميًا. ### الخطوة 3 – تشغيل الأرشفة ```bash # من سطر الأوامر داخل مجلد المشروع python download.py # أو تشغيل run-archive.bat ``` - ستجد الفيديوهات في مجلدات مثل: ``` /Archive/تقنية/ChannelName/2024-07-28 - اسم الفيديو.mp4 /Archive/طبخ/ChannelName/2024-07-27 - وصفة … ``` ### الخطوة 4 – تقليل الإعلانات وحماية الخصوصية على Chrome 1. ثبت **uBlock Origin**, **Privacy Badger**, **Location Guard**. 2. قم بتفعيل الفلاتر الموصى بها أعلاه. 3. في إعدادات Chrome → **Privacy and security → Cookies and other site data** → فعل **“Block third‑party cookies”**. ### الخطوة 5 – صيانة دورية | الفترة | الإجراء | |--------|----------| | **يوميًا** | تشغيل السكريبت لتحديث `links.txt` وتنزيل الفيديوهات الجديدة. | | **أسبوعيًا** | مراجعة `categories.json` وإضافة/إزالة قنوات حسب الحاجة. | | **شهريًا** | تحديث yt‑dlp (`yt-dlp -U`) لضمان توافقه مع تغييرات YouTube. | | **كل 3 أشهر** | مراجعة إضافات Chrome وتحديثها من المتجر. | --- ## 5️⃣ روابط التحميل المباشرة (محدثة حتى يوليو 2026) | الأداة | رابط التحميل | ملاحظات | |--------|--------------|----------| | **yt‑dlp** (الملف التنفيذي) | (Windows)
أو للأنظمة الأخرى | دائمًا استخرج من GitHub الرسمي. | | **NewPipe** | | غير متوفر في Google Play؛ استخدم F‑Droid أو APK من الموقع الرسمي. | | **FreeTube** | | يتضمن نسخة للـ macOS (DMG) و Windows (EXE). | | **PocketTube (Chrome)** | | مجاني، يدعم إنشاء مجموعات غير محدودة. | | **uBlock Origin** | | افتح الإعدادات → “My filters” لإضافة الفلاتر المخصصة. | | **Privacy Badger** | | لا تحتاج إعدادات إضافية. | | **Location Guard** | | اضبط “Never share location”. | | **Feedly** | | سجل حسابًا مجانيًا؛ يدعم استيراد OPML. | | **Zapier (Free plan)** | | يمكن إنشاء “Zap” بسيط لتصدير روابط YouTube إلى Google Sheet. | --- ## 6️⃣ نصائح أمان إضافية 1. **احفظ مفاتيح API في ملفات غير متاحة للإنترنت** (مثل `client_secret.json` إذا استخدمت YouTube Data API). 2. **استخدم VPN** عند تنزيل محتوى من دول قد تكون فيها قيود جغرافية أو حيث تريد إخفاء عنوان IP. 3. **تحقق من توقيع ملفات الـ APK** (NewPipe) عبر “SHA‑256” الموجود على صفحة GitHub. 4. **تجنّب تشغيل سكريبتات غير موثوقة** على `links.txt`؛ تأكد من أن الروابط تأتي من مصادر موثوقة (قنواتك فقط). 5. **احذف ملفات `download-archive.txt`** إذا كان يحتوي على روابط لا ترغب في حفظها في السحابة أو مشاركتها. --- ## 🎉 خلاصة سريعة (قائمة “فعل الآن”) | ✅ | الإجراء | أين؟ | |----|----------|------| | ☐ **ثبت yt‑dlp** | GitHub (الملف التنفيذي) | | ☐ **أنشئ مجلد مشروع** (`C:\YT‑Archive`) | | ☐ **أضف `links.txt` و `categories.json`** | محرّر نصوص | | ☐ **انسخ سكريبت `download.py`** | محرّر نصوص | | ☐ **ثبت PocketTube** (أو استخدم Feedly) لتصنيف القنوات | Chrome Web Store | | ☐ **استخرج روابط القنوات إلى `links.txt`** | يدويًا أو عبر Feedly+Zapier | | ☐ **شغّل `python download.py`** (أو `run-archive.bat`) | سطر الأوامر | | ☐ **ثبت uBlock Origin + Privacy Badger + Location Guard** | Chrome Web Store | | ☐ **فعّل “Block third‑party cookies”** في إعدادات Chrome | Chrome → Settings → Privacy | | ☐ **استخدم VPN** إذا رغبت في إخفاء موقعك | أي خدمة موثوقة (NordVPN, ProtonVPN…) | بهذا تكون لديك **نظام أرشفة كامل** يدعم **تصنيف القنوات** ويُحافظ على **خصوصيتك من الإعلانات والتتبع**. إذا احتجت مساعدة في أي خطوة (مثلاً إعداد سكريبت Python على macOS أو ربط Zapier بـ Feedly)، أخبرني وسأرسل لك التعليمات التفصيلية أو ملفات القالب المطلوبة. 🚀