الملفات
Chat-about-knowledge/archives/Google account/YouTube/.md

22 KiB
خام اللوم التاريخ

🔎 ملخّص الطلب

  1. أداة (أو مجموعة أدوات) لأرشفة فيديوهات YouTube من روابط
  2. إمكانية تصنيف الفيديوهات/القنوات تحت عنوان أو فئة مخصّصة أي أنك تريد متابعة محتوى قنوات محددة فقط وليس كل القنوات التي تتابعها.
  3. إضافات Chrome لتقليل الإعلانات المستهدفة ومنع المواقع من طلب موقعك الجغرافي.

سأقدّم لك حلًّا عمليًا يجمع بين أدوات مجانية/مفتوحة المصدر، مع خطوات إعداد مفصّلة وروابط تحميل مباشرة، بالإضافة إلى نصائح أمان.


1 أرشفة الفيديوهات من روابط (مع تصنيف تلقائي)

1.1. الخيار الأكثر مرونة ytdlp + ملف تصنيف (JSON/CSV)

العنصر ما يفعله لماذا هو مفيد
ytdlp (fork محسّن من youtubedl) تنزيل الفيديو بأعلى جودة، حفظ الوصف، الترجمات، صورة المصغرة، وإنشاء ملف archive.txt لتجنب تنزيل نفس الفيديو مرتين. سطر أوامر بسيط، يدعم جميع الأنظمة (WindowsmacOSLinux).
ملف links.txt كل سطر يحتوي على رابط فيديو أو رابط RSS لقناة. يتيح لك تجميع الروابط من أي مصدر (موقع، ملف OPML، أو سكريبت).
ملف categories.json (اختياري) يربط كل معرف قناة (channelId) بفئة/عنوان مخصص (مثلاً “تقنية”، “طبخ”). يتيح فرز الفيديوهات إلى مجلدات حسب الفئة تلقائيًا.
سكريبت Python (قليل الأسطر) يقرأ links.txt + categories.json → يستدعي ytdlp مع خيارات التسمية. كل شيء يتم بنقرة واحدة؛ لا تحتاج لتدخل يدوي بعد الإعداد.

1.1.1. تثبيت ytdlp

النظام طريقة التثبيت
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. هيكلة الملفات

/archiveproject/
│─ ytdlp.exe (أو ملف تنفيذي للمنصة)
│─ links.txt               ← كل سطر = رابط فيديو
│─ categories.json        ← (اختياري) تصنيف القنوات
│─ downloadarchive.txt    ← يُنشأ تلقائيًا
│─ runarchive.bat (Windows) أو runarchive.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` إلى ytdlp
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 "غير‑مصنّف"

        # أمر ytdlp مع المتغيّر `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)
- إمكانية تنزيل الفيديو (مدمج ytdlp)
- تنظيم القنوات في “Playlists” مخصصة
https://freetubeapp.io/
4K Video Downloader (نسخة مجانية) Windows / macOS / Linux - واجهة رسومية بسيطة
- دعم قوائم تشغيل كاملة
- حفظ الفيديو مع اسم القناة وتاريخ الرفع
https://www.4kdownload.com/products/product-videodownloader
JDownloader2 Windows / macOS / Linux - مدير تنزيل عام يدعم ملفات نصية بالروابط
- يمكن ربطه بـ ytdlp كـ “plugin” لتصنيف تلقائي
https://jdownloader.org/jdownloader2

نصيحة: إذا كنت تريد حفظ الفيديوهات على هاتف Android مع تصنيف يدوي، فإن NewPipe هو الخيار الأسرع؛ إذا كنت تعمل على كمبيوتر وتحتاج لتصنيف آلي، استخدم الـytdlp مع السكريبت أعلاه.


2 تصنيف القنوات ومتابعة الاشتراكات فقط (دون خوارزمية YouTube)

2.1. ملحقات Chrome لتصنيف القنوات داخل YouTube

الملحق ما يقدّمه رابط التحميل
PocketTube YouTube Channel Manager • إنشاء “Groups” (مجموعات) وتسمية كل مجموعة
• سحب القنوات إلى المجموعة المطلوبة
• إخفاء الخلاصات من القنوات غير المختارة
• يظل يعمل داخل موقع YouTube الأصلي (لا يلزم تطبيق خارجي)
https://chrome.google.com/webstore/detail/pockettubeyoutubechannelmanager/ijbgfdnacpdjmhkjhdhcncjjegjfkmdn
Channel Manager for YouTube • إضافة “Labels” (وسوم) لكل قناة
• عرض القنوات بحسب الوسم في صفحة “Subscriptions”
https://chrome.google.com/webstore/detail/channelmanagerforyoutube/pmkpjlegmclgkjmhjicjgnjfhbpjkjco
Unhook Remove YouTube Recommended Videos • إلغاء جميع مقاطع “Recommended” و “Up Next” لتظهر فقط مقاطع القنوات التي تشترك فيها. https://chrome.google.com/webstore/detail/unhookremoveyoutubereco/ejjhhjphdbjcljhplbcbjhnnfocjpioj

كيفية إنشاء مجموعة وتصنيف القنوات باستخدام 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)

    • انتقل إلى https://takeout.google.com/“YouTube and YouTube Music”تصدير → ستحصل على ملف subscriptions.xml (OPML).
  2. استيراد OPML إلى Feedly

    • سجّل الدخول إلى https://feedly.com/“Add Content → OPML” → استورد الملف.
  3. إنشاء “Collections” (مجموعات) داخل Feedly لكل فئة (مثلاً “تقنية”، “طبخ”). اسحب القنوات إلى المجموعة المناسبة.

  4. توليد روابط الفيديو اليومية:

    • في Feedly يمكنك اختيار “Export → OPML” مرةً أخرى أو استخدام Zapier / IFTTT لتصدير كل عنصر جديد إلى ملف نصي links.txt.
  5. تشغيل ytdlp مع 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 أو إيقافه بالكامل.
HTTPSEverywhere (من EFF) يفرض تحميل المواقع عبر HTTPS، يقلل من التجسس عبر HTTP غير المشفر. الآن مدمج في معظم المتصفحات الحديثة، لكن الإضافة لا تزال مفيدة.
Decentraleyes يبدّل مكتبات CDN (مثل Google Hosted Libraries) ببدائل محلية لتقليل طلبات الطرف الثالث. يقلل من “thirdparty requests”.

كيفية تثبيت الإضافات (خطوات سريعة)

  1. افتح Chrome → انتقل إلى Chrome Web Store (https://chrome.google.com/webstore).
  2. ابحث عن الاسم (مثلاً “uBlock Origin”).
  3. اضغط Add to ChromeAdd extension.
  4. بعد التثبيت، اضغط على أيقونة الإضافة في شريط الأدوات لضبط الإعدادات (مثلاً: تفعيل “Block all thirdparty cookies” في uBlock).

إعدادات مبدئية لتقليل الإعلانات المستهدفة

  • uBlock Origin → Dashboard → “My filters” → أضف السطر التالي لمنع جميع طلبات إعلانات Google:

    ||googleadservices.com^
    ||googlesyndication.com^
    
  • Location Guard → Settings → اختر “Never share location” أو “Reduce precision to 5km” إذا احتجت موقعًا تقريبيًا فقط.

  • Privacy Badger: اتركها على الوضع الافتراضي؛ ستتذكر المواقع التي تحاول تتبعك وتُحظرها تلقائيًا.

ملحوظة أمان: لا تقم بتمكين أي ملحق يطلب “إدارة جميع البيانات على جميع المواقع” إلا إذا كنت تثق به تمامًا (كل الإضافات المذكورة أعلاه موثوقة ومفتوحة المصدر).


4 خطوات تنفيذية شاملة (من البداية إلى النهاية)

الخطوة1 إعداد أداة الأرشفة

  1. ثبت ytdlp (أو استخدم NewPipe إذا كنت على Android).
  2. أنشئ مجلد مشروع (مثلاً C:\YTArchive).
  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 تشغيل الأرشفة

# من سطر الأوامر داخل مجلد المشروع
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 thirdparty cookies”.

الخطوة5 صيانة دورية

الفترة الإجراء
يوميًا تشغيل السكريبت لتحديث links.txt وتنزيل الفيديوهات الجديدة.
أسبوعيًا مراجعة categories.json وإضافة/إزالة قنوات حسب الحاجة.
شهريًا تحديث ytdlp (yt-dlp -U) لضمان توافقه مع تغييرات YouTube.
كل 3 أشهر مراجعة إضافات Chrome وتحديثها من المتجر.

5 روابط التحميل المباشرة (محدثة حتى يوليو2026)

الأداة رابط التحميل ملاحظات
ytdlp (الملف التنفيذي) https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe (Windows)
أو https://github.com/yt-dlp/yt-dlp/releases/latest للأنظمة الأخرى
دائمًا استخرج من GitHub الرسمي.
NewPipe https://f-droid.org/packages/org.schabi.newpipe/ غير متوفر في GooglePlay؛ استخدم FDroid أو APK من الموقع الرسمي.
FreeTube https://freetubeapp.io/ يتضمن نسخة للـmacOS (DMG) و Windows (EXE).
PocketTube (Chrome) https://chrome.google.com/webstore/detail/pockettubeyoutubechannelmanager/ijbgfdnacpdjmhkjhdhcncjjegjfkmdn مجاني، يدعم إنشاء مجموعات غير محدودة.
uBlock Origin https://chrome.google.com/webstore/detail/ublockorigin/cjpalhdlnbpafiamejdnhcphjbkeiagm افتح الإعدادات → “My filters” لإضافة الفلاتر المخصصة.
Privacy Badger https://chrome.google.com/webstore/detail/privacybadger/pkehgijcmpdhfbdbbnkijodcdgclbona لا تحتاج إعدادات إضافية.
Location Guard https://chrome.google.com/webstore/detail/locationguard/jmpmfcjnflbcoidlgapblgpkcofhcohn اضبط “Never share location”.
Feedly https://feedly.com/ سجل حسابًا مجانيًا؛ يدعم استيراد OPML.
Zapier (Free plan) https://zapier.com/ يمكن إنشاء “Zap” بسيط لتصدير روابط YouTube إلى Google Sheet.

6 نصائح أمان إضافية

  1. احفظ مفاتيح API في ملفات غير متاحة للإنترنت (مثل client_secret.json إذا استخدمت YouTube Data API).
  2. استخدم VPN عند تنزيل محتوى من دول قد تكون فيها قيود جغرافية أو حيث تريد إخفاء عنوان IP.
  3. تحقق من توقيع ملفات الـAPK (NewPipe) عبر “SHA256” الموجود على صفحة GitHub.
  4. تجنّب تشغيل سكريبتات غير موثوقة على links.txt؛ تأكد من أن الروابط تأتي من مصادر موثوقة (قنواتك فقط).
  5. احذف ملفات download-archive.txt إذا كان يحتوي على روابط لا ترغب في حفظها في السحابة أو مشاركتها.

🎉 خلاصة سريعة (قائمة “فعل الآن”)

الإجراء أين؟
ثبت ytdlp GitHub (الملف التنفيذي)
أنشئ مجلد مشروع (C:\YTArchive)
أضف 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 thirdparty cookies” في إعدادات Chrome Chrome → Settings → Privacy
استخدم VPN إذا رغبت في إخفاء موقعك أي خدمة موثوقة (NordVPN, ProtonVPN…)

بهذا تكون لديك نظام أرشفة كامل يدعم تصنيف القنوات ويُحافظ على خصوصيتك من الإعلانات والتتبع. إذا احتجت مساعدة في أي خطوة (مثلاً إعداد سكريبت Python على macOS أو ربط Zapier بـ Feedly)، أخبرني وسأرسل لك التعليمات التفصيلية أو ملفات القالب المطلوبة. 🚀