خطوة بخطوة: بناء وكيل بحث على YouTube باستخدام كود Claude
إذا كنت قد أمضيت بعد ظهر أحد الأيام في التنقل عبر YouTube، ثم نسيت أي مقاطع الفيديو كانت تستحق الحفظ، فأنت لست وحدك. تخيل الآن مساعدًا لا يكل يمكنه العثور على أفضل مقاطع الفيديو، واستخراج ملخصات، وسحب الاقتباسات الرئيسية، ووضع الطوابع الزمنية للرؤى، وإرجاع المصادر عند الطلب—بسرعة. هذا بالضبط ما يمكن أن يفعله وكيل البحث على YouTube. في هذا الدليل المفصل خطوة بخطوة، سنقوم ببناء وكيل بحث عملي على YouTube باستخدام كود Claude، مصمم للمبدعين والمحللين والطلاب والمتعلمين المهووسين الذين يريدون إشارات أكثر من الضوضاء.
سنسلك طريقًا عمليًا ومباشرًا: البنية، والكود، والمطالبات، والضمانات. على طول الطريق، سنتخذ خيارات متحيزة يمكنك تبديلها لاحقًا. بحلول النهاية، سيكون لديك وكيل عمل يمكنه البحث في YouTube، وجمع النصوص، والاستنتاج عبر مقاطع فيديو متعددة، وإنتاج ملخصات بحث نظيفة.
ما الذي نبنيه (ولماذا هو مهم)
- الهدف: وكيل بحث على YouTube يمكنه:
- البحث في YouTube عن طريق الاستعلام
- ترتيب النتائج حسب الأهمية/التفاعل
- جلب النصوص (الترجمة التلقائية أو الطرف الثالث)
- تقسيم المحتوى وتضمينه للاسترجاع
- استخدام كود Claude لتجميع رؤى من مقاطع فيديو متعددة
- إخراج ملاحظات منظمة: ملخص، ادعاءات، طوابع زمنية، اقتباسات، ومراجع
- الكلمة المفتاحية الرئيسية: "Building a YouTube research agent with Claude Code"
- التنسيق: برنامج تعليمي مفصل خطوة بخطوة مع التعليمات البرمجية والمطالبات القابلة للتشغيل
- المخرجات: موجز بحث بتنسيق Markdown + JSON للاستخدام البرمجي
لماذا هو مهم: YouTube هو أكبر قاعدة معرفة عامة للمحادثات والدروس والعروض التوضيحية والمناقشات. لكنه صاخب. يمنحك بناء وكيل بحث على YouTube باستخدام كود Claude ميزة: يمكنك تجميع الرؤى عبر عشرات مقاطع الفيديو في دقائق، وليس ساعات.
نظرة سريعة على البنية
سنحافظ على الإصدار الأول بسيطًا وقويًا.
- المدخلات: استعلام بحث (مثل "LLM agent architectures 2025")، وقيود اختيارية (النطاق الزمني، القناة، المدة)
- بحث YouTube: YouTube Data API v3 (أو SerpAPI كبديل)
- النصوص: YouTube Transcript API؛ الرجوع إلى ASR (مثل Whisper) عند عدم التوفر
- التقسيم: تجزئة واعية للجملة (حوالي 800-1200 رمزًا)
- التضمينات: استخدم نموذج تضمين محلي أو مستضاف (مثل
text-embedding-3-large، nomic-embed-text، أو bge-large)
- مخزن المتجهات:
FAISS محلي للسرعة؛ يمكن التبديل إلى Pinecone، Weaviate، أو Qdrant
- الاستنتاج: كود Claude للتنسيق، واستخدام الأدوات، والتجميع، وتنفيذ التعليمات البرمجية داخل حلقة يتم التحكم فيها
- المخرجات: تقرير Markdown + فهرس JSON مع مراجع وطوابع زمنية وعلامات
تدفق البيانات: الاستعلام → البحث → جلب البيانات الوصفية → النص → التقسيم → التضمين → استرجاع أفضل K → تجميع كود Claude → التقرير.
المتطلبات الأساسية والإعداد
- مفاتيح API:
YOUTUBE_API_KEY، ANTHROPIC_API_KEY (لكود Claude)
- اختياري:
OPENAI_API_KEY أو التضمينات المحلية
google-api-python-client، youtube-transcript-api
faiss-cpu، numpy، pandas، tiktoken (أو sentencepiece)
requests، pydantic، tenacity
pip install google-api-python-client youtube-transcript-api faiss-cpu numpy pandas requests pydantic tenacity anthropic tiktoken
متغيرات البيئة:
export YOUTUBE_API_KEY=YOUR_YT_KEY
export ANTHROPIC_API_KEY=YOUR_ANTHROPIC_KEY
الخطوة 1: البحث في YouTube باستخدام عوامل التصفية
سنقوم بالبحث في YouTube وإرجاع البيانات الوصفية المنظمة: العنوان، القناة، تاريخ النشر، المدة، المشاهدات (إن وجدت)، ومعرف الفيديو.
# file: yt_search.py
from googleapiclient.discovery import build
import os
YOUTUBE_API_KEY = os.environ — channel, date\n\n"
"---\n"
"JSON schema: {\"claims\":[{\"claim\":str,\"support\":[{\"video_id\":str,\"start\":float,\"end\":float}]}]}\n"
)
def call_claude(goal: str, passages: list[dict]):
passages_str = "\n\n".join(
f"[rank {p['rank']} | score {p['score']:.3f}] (vID={p.get('video_id','?')}, {p.get('start',0):.1f}-{p.get('end',0):.1f})\n{p['text']}"
for p in passages
)
msg = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=1800,
temperature=0.2,
system=SYSTEM_PROMPT,
messages=[
{"role": "user", "content": USER_TEMPLATE.format(goal=goal, passages=passages_str)}
])
return msg.content[0].text
نصائح المطالبات عند بناء وكيل بحث على YouTube باستخدام كود Claude:
- اطلب مخرجات منظمة بتنسيقات قابلة للقراءة البشرية والآلية
- تشجيع الإفصاح عن عدم اليقين والتناقضات
الخطوة 6: تجميع كل شيء معًا
دعنا نربط الاستعلام → البحث → النصوص → الأجزاء → التضمينات → الاسترجاع → التجميع.
# file: run_agent.py
from yt_search import search_youtube
from transcripts import fetch_transcript
from chunking import transcript_to_docs
from embeddings import VectorStore
from orchestrator import call_claude
from datetime import datetime
def build_corpus(query: str, max_videos=8):
results = search_youtube(query, max_results=max_videos)
corpus_docs = []
for r in results:
tx = fetch_transcript(r["video_id"]) or []
if not tx:
continue
docs = transcript_to_docs(tx)
for d in docs:
d.update({
"video_id": r["video_id"],
"title": r["title"],
"channel": r["channel"],
"url": r["url"],
})
corpus_docs.extend(docs)
return corpus_docs
def research(query: str, k=12):
corpus = build_corpus(query)
if not corpus:
return "No transcripts available."
vs = VectorStore
vs.add(corpus)
passages = vs.search(query, k=k)
md = call_claude(query, passages)
timestamp = datetime.utcnow.isoformat
return f"<!-- generated {timestamp} UTC -->\n\n" + md
if __name__ == "__main__":
print(research("LLM agents for YouTube research"))
سيقوم هذا الإصدار الأساسي من وكيل البحث على YouTube باستخدام كود Claude بالبحث والاسترجاع وتجميع الرؤى من مقاطع فيديو متعددة مع مراجع. قم بترقية التضمينات وإضافة التخزين المؤقت لجعله جاهزًا للإنتاج.
سبع ترقيات لجعله رائعًا
- قم بتبديل التضمينات عالية الجودة وإضافة بحث عن الكلمات الرئيسية BM25. يمنح Hybrid المزيد من الاسترجاع للكلمات المتخصصة ودقة أفضل للمواضيع المجردة.
- توسيع الأدوات لبيانات وصفية أكثر ثراءً
- اسحب التعليقات ونسبة الإعجابات/عدم الإعجابات وسلطة القناة. أضف مُعيد ترتيب (مشفر متقاطع) لأفضل 100 مرشح.
- استخدم كود Claude لاقتراح خطة بحث: أسئلة فرعية، وفرضيات، وفحوصات التغطية. نفذ بشكل متكرر حتى يتم استيفاء عتبات التغطية.
- تتبع الأدلة والأدلة المضادة
- لكل ادعاء، قم بتسجيل المقتطفات الداعمة والمتناقضة. قدم كلاهما في التقارير؛ أضف علامات الثقة.
- استراتيجيات الفيديو الطويل
- استخدم اكتشاف المشهد عبر الترجمة أو توقيتات كلمات Whisper. قم بتلخيص كل قسم قبل التجميع العالمي لتجنب تخفيف السياق.
- قم بتخزين النصوص والتضمينات والتقارير لكل استعلام. أعد استخدامها عندما يقوم المستخدمون بتعديل عوامل التصفية. أضف إزالة الازدواجية بواسطة معرف الفيديو.
- تصدير Markdown وPDF وJSON. التسليم عبر البريد الإلكتروني أو Slack. قم بتقديم الطوابع الزمنية كارتباطات قابلة للنقر
?t=mmss.
المطالبات التي يمكنك إعادة استخدامها
استخدم هذه القوالب أثناء بناء وكيل بحث على YouTube باستخدام كود Claude.
النظام: أنت وكيل بحث دقيق. قم بالتجميع عبر نصوص YouTube المتعددة. استشهد مضمنًا بـ [vID @ mm:ss]، وقم بتضمين قسم المصادر مع عناوين URL. قم بإرجاع موجز Markdown وحمولة JSON للادعاءات مع دعم زمني.
المستخدم: هدف البحث: {topic}
القيود: التركيز على {audience or scope}؛ تفضيل المصادر ضمن {date range}؛ تضمين الخلافات.
مقاطع مرشحة (مرتبة):
{retrieved_passages}
الإخراج: الملخص ← الرؤى الرئيسية (تعداد نقطي) ← الاقتباسات البارزة (مع الطوابع الزمنية) ← التناقضات والفجوات ← المصادر. ثم JSON {"claims": ...}
الضمانات والأخلاقيات
- احترام حقوق المبدعين: قم بالارتباط بمقاطع الفيديو الأصلية وتجنب نشر نصوص مطابقة كبيرة.
- كن شفافًا: أظهر من أين تأتي الادعاءات باستخدام الطوابع الزمنية ومعرفات الفيديو.
- تجنب الإفراط في التلخيص: حافظ على الفروق الدقيقة؛ قم بتمييز متى يتم إنشاء التسميات التوضيحية تلقائيًا ومن المحتمل أن تكون صاخبة.
- تعامل مع الموضوعات الحساسة بعناية: سلط الضوء على عدم اليقين وابحث عن مصادر متنوعة.
استكشاف الأخطاء وإصلاحها: المشكلات الشائعة والإصلاحات
- الرجوع إلى Whisper؛ جرب لغات مختلفة؛ تحقق مما إذا كان الفيديو محظورًا حسب المنطقة.
- قم بترقية التضمينات؛ إضافة BM25؛ زيادة تداخل الأجزاء؛ ضبط المعلمات لأعلى K.
- فرض مخطط اقتباس صارم؛ معاقبة الادعاءات غير المدعومة؛ طلب وجود طوابع زمنية دقيقة في الأجزاء المسترجعة.
- التخزين المؤقت بقوة؛ تقليل
max_results؛ طلبات الدفعات؛ إضافة تراجع مع tenacity.
- تلخيص كل قسم؛ تقييد الحد الأقصى للرموز المميزة؛ استخدم مطالبات التخطيط مع مخطط تفصيلي صريح.
قياس الجودة
- الدقة @ K للأجزاء المسترجعة مقابل مجموعة مصنفة
- معدل الإخلاص: نسبة الادعاءات مع دعم زمني يمكن التحقق منه
- التغطية: عدد مقاطع الفيديو ذات الصلة الفريدة المذكورة
- الكمون: الوقت من الاستعلام إلى التقرير
مثال: البحث عن "Vector Databases Explained"
- الاستعلام: "vector databases explained for developers 2025"
- عوامل التصفية: مقاطع الفيديو بعد عام 2023، المدة 6-30 دقيقة
- النتيجة: يستشهد الوكيل بـ 6 مقاطع فيديو، ويسلط الضوء على المفاضلات بين HNSW مقابل IVF-PQ، ويناقش التكلفة/الاسترجاع، ويربط بالمعايير. يقارن قسم التناقضات ادعاءات البائع مقابل نتائج مفتوحة المصدر.
بالمناسبة: أتمتة هذا داخل سير العمل الخاص بك
إذا كنت تعمل عبر المستندات والتعليمات البرمجية، فمن الجدير بأتمتة الميل الأخير. يمكن لواجهة سطر أوامر صغيرة تشغيل الاستعلامات الليلية وإسقاط ملخصات Markdown في قاعدة المعرفة الخاصة بك. يمكنك أيضًا ربطها بقوالب المشكلات للبحث السريع.
تجدر الإشارة إلى: إذا كان سير العمل الخاص بك موجودًا بالفعل في الشريط الجانبي للمتصفح أو مساعد الذكاء الاصطناعي، فيمكن لأدوات مثل Sider.AI تبسيط حلقة البحث—حدد موضوعًا، وقم بتشغيل بحث، والتقط النصوص، وقم بصياغة ملخص مدعوم من Claude مباشرةً في مكان عملك. يمكن أن يوفر هذا تبديل السياق ويجعل بناء وكيل بحث على YouTube باستخدام كود Claude أكثر عملية للفرق. النقاط الرئيسية
- يعد بناء وكيل بحث على YouTube باستخدام كود Claude طريقة عالية الاستفادة لتحويل مقاطع الفيديو إلى ملخصات قابلة للتنفيذ.
- المكدس الأدنى: YouTube API + النصوص + التقسيم + التضمينات + FAISS + تجميع Claude.
- مسارات الترقية: البحث الهجين، وإعادة الترتيب، وحلقات التخطيط، وتتبع الاقتباسات الصارم.
- ابدأ بسيطًا، وقم بقياس الإخلاص، وكرر نحو الموثوقية.
الخطوات التالية
- تنفيذ نموذج تضمين حقيقي واسترجاع هجين
- أضف خطوة إعادة ترتيب ومقاييس الجودة
- إنشاء وظيفة مجدولة لتحديث الموضوعات أسبوعيًا
- التعبئة كواجهة سطر أوامر وواجهة مستخدم ويب خفيفة الوزن
الأسئلة الشائعة
س1: كيف أبدأ في بناء وكيل بحث على YouTube باستخدام كود Claude؟ ابدأ ببحث YouTube، وجلب النصوص، وتقسيم المحتوى، والتضمين في مخزن متجه، واستخدم كود Claude لتجميع النتائج. يوفر الدليل أعلاه رمزًا تفصيليًا خطوة بخطوة لتجميع خط أنابيب عمل.
س2: ما هي أفضل المكتبات لوكيل بحث على YouTube؟ استخدم YouTube Data API للبحث، و youtube-transcript-api للترجمة، و FAISS للبحث المتجه، و Anthropic SDK لاستدعاء كود Claude. يمكنك تبديل التضمينات مع OpenAI أو Nomic أو BGE.
س3: كيف أضمن الاقتباسات والطوابع الزمنية الدقيقة؟ احتفظ بالطوابع الزمنية للبداية/النهاية أثناء التقسيم واطلب من كود Claude الاستشهاد بـ [video_id @ mm:ss]. تحقق من وجود الطوابع الزمنية المذكورة في الأجزاء المسترجعة قبل النشر.
س4: هل يمكنني استخدام هذا الوكيل لمقاطع الفيديو الخاصة أو غير المدرجة؟ نعم، إذا كان لديك حق الوصول ويمكنك جلب النصوص أو تشغيل ASR محلي (مثل Whisper). احترم دائمًا الأذونات وتجنب توزيع المحتوى المحمي بحقوق الطبع والنشر.
س5: كيف يمكنني توسيع نطاق وكيل بحث YouTube هذا للفرق؟ أضف التخزين المؤقت، ومخزن متجه مشترك، وقوائم انتظار الوظائف، وعمليات تشغيل مجدولة. قم بالتكامل مع Slack أو wiki، وفكر في مساعد قائم على المتصفح مثل Sider.AI لتبسيط سير عمل الباحثين.