Signed-off-by: Mohamed-Abdelhalim2 <mohamed-abdelhalim2@noreply.app.gitpasha.com>
22 KiB
🔎 ملخّص الطلب
- أداة (أو مجموعة أدوات) لأرشفة فيديوهات YouTube من روابط
- إمكانية تصنيف الفيديوهات/القنوات تحت عنوان أو فئة مخصّصة – أي أنك تريد متابعة محتوى قنوات محددة فقط وليس كل القنوات التي تتابعها.
- إضافات 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 من https://github.com/yt-dlp/yt-dlp/releases/latest 2. أنشئ مجلدًا (مثلاً C:\yt-dlp\) وانسخ الملف إليه. |
| macOS | bash<br>brew install yt-dlp<br> (إذا كان لديك Homebrew) |
| Linux | bash<br>sudo apt-get install python3-pip # إذا لم يكن مثبتًا<br>python3 -m pip install -U yt-dlp<br> أو تحميل الملف التنفيذي مباشرةً من 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 (اختياري):
{
"UC7XYZ789": "تقنية",
"UClmnopqr": "طبخ",
"UCstuvwx": "رياضة"
}
1.1.3. سكريبت Python لتصنيف أثناء التحميل
ملف:
download.py
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)
@echo off
python download.py
pause
- Linux/macOS (
run-archive.sh)
#!/usr/bin/env bash
python3 download.py
ما يحدث؟
- كل فيديو يُحفظ داخل مجلد يُسمّى باسم الفئة (من
categories.json). - إذا لم يكن الفيديو من قناة مصنّفة، يُحفظ في مجلد
غير‑مصنّف. - ملف
download-archive.txtيمنع إعادة تنزيل ملفات تم حفظها مسبقًا.
1.1.4. تشغيل الأرشفة
# من داخل مجلد المشروع
./run-archive.sh # Linux/macOS
# أو
run-archive.bat # Windows
1.2. حلول بديلة (بدون سطر أوامر)
| التطبيق | نظام التشغيل | مميزات رئيسية | رابط التحميل |
|---|---|---|---|
| NewPipe | Android | - تنزيل فيديو/صوت - حفظ الفيديو في مجلد مخصص - لا يطلب حساب Google ولا يتبع خوارزمية YouTube |
https://f-droid.org/packages/org.schabi.newpipe/ |
| FreeTube | Windows / macOS / Linux | - مشاهدة بدون إعلانات (يستخدم Invidious) - إمكانية تنزيل الفيديو (مدمج yt‑dlp) - تنظيم القنوات في “Playlists” مخصصة |
https://freetubeapp.io/ |
| 4K Video Downloader (نسخة مجانية) | Windows / macOS / Linux | - واجهة رسومية بسيطة - دعم قوائم تشغيل كاملة - حفظ الفيديو مع اسم القناة وتاريخ الرفع |
https://www.4kdownload.com/products/product-videodownloader |
| JDownloader 2 | Windows / macOS / Linux | - مدير تنزيل عام يدعم ملفات نصية بالروابط - يمكن ربطه بـ yt‑dlp كـ “plugin” لتصنيف تلقائي |
https://jdownloader.org/jdownloader2 |
نصيحة: إذا كنت تريد حفظ الفيديوهات على هاتف Android مع تصنيف يدوي، فإن NewPipe هو الخيار الأسرع؛ إذا كنت تعمل على كمبيوتر وتحتاج لتصنيف آلي، استخدم الـ yt‑dlp مع السكريبت أعلاه.
2️⃣ تصنيف القنوات ومتابعة الاشتراكات فقط (دون خوارزمية YouTube)
2.1. ملحقات Chrome لتصنيف القنوات داخل YouTube
| الملحق | ما يقدّمه | رابط التحميل |
|---|---|---|
| PocketTube – YouTube Channel Manager | • إنشاء “Groups” (مجموعات) وتسمية كل مجموعة • سحب القنوات إلى المجموعة المطلوبة • إخفاء الخلاصات من القنوات غير المختارة • يظل يعمل داخل موقع YouTube الأصلي (لا يلزم تطبيق خارجي) |
https://chrome.google.com/webstore/detail/pockettube‑youtube‑channel‑manager/ijbgfdnacpdjmhkjhdhcncjjegjfkmdn |
| Channel Manager for YouTube | • إضافة “Labels” (وسوم) لكل قناة • عرض القنوات بحسب الوسم في صفحة “Subscriptions” |
https://chrome.google.com/webstore/detail/channel‑manager‑for‑youtube/pmkpjlegmclgkjmhjicjgnjfhbpjkjco |
| Unhook – Remove YouTube Recommended Videos | • إلغاء جميع مقاطع “Recommended” و “Up Next” لتظهر فقط مقاطع القنوات التي تشترك فيها. | https://chrome.google.com/webstore/detail/unhook‑remove‑youtube‑reco/ejjhhjphdbjcljhplbcbjhnnfocjpioj |
كيفية إنشاء مجموعة وتصنيف القنوات باستخدام PocketTube
- ثبت الملحق من الرابط أعلاه.
- افتح YouTube (ستظهر أيقونة PocketTube على شريط الأدوات).
- اضغط على الأيقونة → “Create Group”. أعطِ المجموعة اسمًا (مثلاً “تقنية”).
- في صفحة Subscriptions اسحب القنوات التي تريدها إلى المجموعة.
- لتقليل الضوضاء، اختر “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
-
استخراج الاشتراكات (تحتاج حساب Google)
- انتقل إلى https://takeout.google.com/ → “YouTube and YouTube Music” → تصدير → ستحصل على ملف
subscriptions.xml(OPML).
- انتقل إلى https://takeout.google.com/ → “YouTube and YouTube Music” → تصدير → ستحصل على ملف
-
استيراد OPML إلى Feedly
- سجّل الدخول إلى https://feedly.com/ → “Add Content → OPML” → استورد الملف.
-
إنشاء “Collections” (مجموعات) داخل Feedly لكل فئة (مثلاً “تقنية”، “طبخ”). اسحب القنوات إلى المجموعة المناسبة.
-
توليد روابط الفيديو اليومية:
- في Feedly يمكنك اختيار “Export → OPML” مرةً أخرى أو استخدام Zapier / IFTTT لتصدير كل عنصر جديد إلى ملف نصي
links.txt.
- في Feedly يمكنك اختيار “Export → OPML” مرةً أخرى أو استخدام Zapier / IFTTT لتصدير كل عنصر جديد إلى ملف نصي
-
تشغيل 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”. |
كيفية تثبيت الإضافات (خطوات سريعة)
- افتح Chrome → انتقل إلى Chrome Web Store (https://chrome.google.com/webstore).
- ابحث عن الاسم (مثلاً “uBlock Origin”).
- اضغط Add to Chrome → Add extension.
- بعد التثبيت، اضغط على أيقونة الإضافة في شريط الأدوات لضبط الإعدادات (مثلاً: تفعيل “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 – إعداد أداة الأرشفة
- ثبت yt‑dlp (أو استخدم NewPipe إذا كنت على Android).
- أنشئ مجلد مشروع (مثلاً
C:\YT‑Archive). - ضع داخل المجلد الملفات
links.txt,categories.json,download.py.
الخطوة 2 – تجميع الروابط وتصنيف القنوات
-
طريقة سريعة (بدون برمجة):
- سجّل الدخول إلى YouTube → قائمة الاشتراكات.
- استخدم PocketTube لإنشاء مجموعات (مثلاً “تقنية”، “رياضة”).
- داخل كل مجموعة، اضغط على أيقونة القائمة الثلاثية → “Copy channel link” لجميع القنوات التي تريد أرشفتها.
- الصق الروابط في ملف
links.txt. - أضف معرف القناة (بعد
/channel/) إلىcategories.jsonمع اسم الفئة.
-
طريقة متقدمة (باستخدام Feedly + Zapier):
- استورد ملف OPML إلى Feedly.
- أنشئ “Collections” بحسب الفئات.
- اربط Feedly بـ Zapier → “New article in Feedly” → “Append to Google Sheet”.
- احصل على عمود “URL” في Google Sheet → صَدِّر إلى ملف نصي
links.txtيوميًا.
الخطوة 3 – تشغيل الأرشفة
# من سطر الأوامر داخل مجلد المشروع
python download.py # أو تشغيل run-archive.bat
- ستجد الفيديوهات في مجلدات مثل:
/Archive/تقنية/ChannelName/2024-07-28 - اسم الفيديو.mp4 /Archive/طبخ/ChannelName/2024-07-27 - وصفة …
الخطوة 4 – تقليل الإعلانات وحماية الخصوصية على Chrome
- ثبت uBlock Origin, Privacy Badger, Location Guard.
- قم بتفعيل الفلاتر الموصى بها أعلاه.
- في إعدادات 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)
6️⃣ نصائح أمان إضافية
- احفظ مفاتيح API في ملفات غير متاحة للإنترنت (مثل
client_secret.jsonإذا استخدمت YouTube Data API). - استخدم VPN عند تنزيل محتوى من دول قد تكون فيها قيود جغرافية أو حيث تريد إخفاء عنوان IP.
- تحقق من توقيع ملفات الـ APK (NewPipe) عبر “SHA‑256” الموجود على صفحة GitHub.
- تجنّب تشغيل سكريبتات غير موثوقة على
links.txt؛ تأكد من أن الروابط تأتي من مصادر موثوقة (قنواتك فقط). - احذف ملفات
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)، أخبرني وسأرسل لك التعليمات التفصيلية أو ملفات القالب المطلوبة. 🚀