Pas cu Pas: Construirea unui Agent de Cercetare YouTube cu Claude Code
Dacă ai petrecut vreodată o după-amiază navigând fără țintă pe YouTube, doar pentru a uita ce videoclipuri meritau salvate, nu ești singurul. Acum imaginează-ți un asistent neobosit care poate găsi cele mai bune videoclipuri, extrage rezumate, prelua citate cheie, marca cronologic informații și returna surse la cerere – rapid. Exact asta poate face un agent de cercetare YouTube. În acest ghid pas cu pas, vom construi un agent practic de cercetare YouTube cu Claude Code, conceput pentru creatori, analiști, studenți și cursanți obsedați care doresc informații valoroase, nu zgomot.
Vom adopta o abordare practică și directă: arhitectură, cod, prompt-uri și măsuri de siguranță. Pe parcurs, vom face alegeri argumentate pe care le poți schimba ulterior. Până la final, vei avea un agent funcțional care poate căuta pe YouTube, colecta transcrieri, analiza mai multe videoclipuri și produce note de cercetare clare.
Ce Construim (și de Ce Contează)
- Obiectiv: Un agent de cercetare YouTube care poate:
- Căuta pe YouTube după interogare
- Clasa rezultatele după relevanță/implicare
- Obține transcrieri (subtitrări automate sau terțe părți)
- Împărți și încorpora conținut pentru recuperare
- Utiliza Claude Code pentru a sintetiza informații din mai multe videoclipuri
- Produce note structurate: rezumat, afirmații, marcaje temporale, citate și citări
- Cuvânt cheie principal: "Building a YouTube research agent with Claude Code"
- Format: Tutorial pas cu pas cu cod și prompt-uri executabile
- Rezultate: Notă de cercetare Markdown + JSON pentru utilizare programatică
De ce contează: YouTube este cea mai mare bază publică de cunoștințe de discuții, lecții, demonstrații și dezbateri. Dar este zgomotoasă. Construirea unui agent de cercetare YouTube cu Claude Code îți oferă un avantaj: poți agrega informații din zeci de videoclipuri în câteva minute, nu ore.
Arhitectura dintr-o Privire
Vom menține prima versiune simplă și robustă.
- Intrări: o interogare de cercetare (de exemplu, "arhitecturi de agenți LLM 2025"), constrângeri opționale (interval de date, canal, durată)
- Căutare YouTube: YouTube Data API v3 (sau SerpAPI ca rezervă)
- Transcrieri: YouTube Transcript API; rezervă pentru ASR (de exemplu, Whisper) când nu este disponibil
- Împărțire: Segmentare conștientă de propoziții (aproximativ 800–1.200 de tokeni)
- Încorporări: Utilizează un model de încorporare local sau găzduit (de exemplu,
text-embedding-3-large, nomic-embed-text sau bge-large)
- Vector Store:
FAISS local pentru viteză; poate fi schimbat cu Pinecone, Weaviate sau Qdrant
- Raționament: Claude Code pentru orchestrare, utilizare de instrumente, sinteză și execuție de cod într-o buclă controlată
- Rezultate: Raport Markdown + index JSON cu citări, marcaje temporale și scoruri
Flux de date: Interogare → Căutare → Obținere metadate → Transcriere → Împărțire → Încorporare → Recuperare top‑K → Sinteză Claude Code → Raport.
Cerințe Preliminare și Configurare
- Chei API:
YOUTUBE_API_KEY, ANTHROPIC_API_KEY (pentru Claude Code)
- Opțional:
OPENAI_API_KEY sau încorporări locale
google-api-python-client, youtube-transcript-api
faiss-cpu, numpy, pandas, tiktoken (sau sentencepiece)
requests, pydantic, tenacity
pip install google-api-python-client youtube-transcript-api faiss-cpu numpy pandas requests pydantic tenacity anthropic tiktoken
Variabile de mediu:
export YOUTUBE_API_KEY=YOUR_YT_KEY
export ANTHROPIC_API_KEY=YOUR_ANTHROPIC_KEY
Pasul 1: Căutare YouTube cu Filtre
Vom căuta pe YouTube și vom returna metadate structurate: titlu, canal, data publicării, durata, vizualizări (dacă sunt disponibile) și videoId.
# 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
Sfaturi pentru prompt-uri atunci când construiești un agent de cercetare YouTube cu Claude Code:
- Solicită rezultate structurate atât în formate ușor de citit de oameni, cât și în formate ușor de citit de mașini
- Aplică citări cu marcaje temporale
- Încurajează divulgarea incertitudinilor și a contradicțiilor
Pasul 6: Asamblarea Tuturor Elementelor
Să conectăm interogarea → căutarea → transcrierile → fragmentele → încorporările → recuperarea → sinteza.
# 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"))
Această versiune de bază a unui agent de cercetare YouTube cu Claude Code va căuta, prelua și sintetiza informații din mai multe videoclipuri cu citări. Actualizează încorporările și adaugă caching pentru a-l face pregătit pentru producție.
Șapte Actualizări Pentru a-l Face Excelent
- Încorporări mai bune și căutare hibridă
- Înlocuiește cu încorporări de înaltă calitate și adaugă căutare de cuvinte cheie BM25. Hibridul oferă mai multă reamintire a termenilor de nișă și o precizie mai bună asupra subiectelor abstracte.
- Extinde instrumentele pentru metadate mai bogate
- Extrage comentarii, raportul like-uri/dislike-uri și autoritatea canalului. Adaugă un re-clasificator (cross-encoder) pentru primii 100 de candidați.
- Planificare de cercetare în mai multe etape
- Utilizează Claude Code pentru a propune un plan de cercetare: subîntrebări, ipoteze și verificări de acoperire. Execută iterativ până când sunt atinse pragurile de acoperire.
- Urmărirea dovezilor și contra-dovezi
- Pentru fiecare afirmație, înregistrează fragmentele care o susțin și cele care o contrazic. Prezintă ambele în rapoarte; adaugă scoruri de încredere.
- Strategii pentru videoclipuri lungi
- Utilizează detectarea scenei prin subtitrări sau sincronizări ale cuvintelor Whisper. Rezumă pe secțiune înainte de sinteza globală pentru a evita diluarea contextului.
- Stochează transcrierile, încorporările și rapoartele pentru fiecare interogare. Reutilizează atunci când utilizatorii modifică filtrele. Adaugă deduplicare după ID-ul videoclipului.
- Formate de export și livrare
- Exportă Markdown, PDF și JSON. Livrare prin e-mail sau Slack. Redă marcajele temporale ca link-uri
?t=mmss pe care se poate da clic.
Prompt-uri pe Care le Poți Refolosi
Utilizează aceste șabloane în timp ce construiești un agent de cercetare YouTube cu Claude Code.
Sistem: Ești un agent de cercetare meticulos. Sintetizează din mai multe transcrieri YouTube. Citează în linie cu [vID @ mm:ss] și include o secțiune Surse cu URL-uri. Returnează atât o notă Markdown, cât și o încărcătură JSON de afirmații cu suport cu marcaje temporale.
Utilizator: Obiectiv de cercetare: {topic}
Constrângeri: concentrează-te pe {audience or scope}; preferă surse în intervalul {date range}; include dezacorduri.
Pasaje candidate (clasate):
{retrieved_passages}
Ieșire: Rezumat → Informații cheie (puncte) → Citate notabile (cu marcaje temporale) → Contradicții și lacune → Surse. Apoi JSON {\"claims\": ...}
Măsuri de Siguranță și Etică
- Respectă drepturile creatorului: Leagă-te de videoclipurile originale și evită publicarea de transcrieri mari, ad litteram.
- Fii transparent: Arată de unde provin afirmațiile folosind marcaje temporale și ID-uri de videoclipuri.
- Evită supra-rezumarea: Păstrează nuanțele; semnalează când subtitrările sunt generate automat și probabil zgomotoase.
- Gestionează cu atenție subiectele sensibile: Evidențiază incertitudinea și caută surse diverse.
Depanare: Probleme Comune și Remedieri
- "Nu s-a găsit nicio transcriere"
- Rezolvă cu Whisper; încearcă limbi diferite; verifică dacă videoclipul este blocat în regiune.
- Calitate slabă a recuperării
- Actualizează încorporările; adaugă BM25; mărește suprapunerea fragmentelor; ajustează parametrii top-K.
- Forțează o schemă strictă de citare; penalizează afirmațiile neacceptate; cere marcaje temporale exacte prezente în fragmentele recuperate.
- Pune agresiv în cache; reduce
max_results; solicitări de grup; adaugă back-off cu tenacity.
- Rezumă pe secțiune; constrânge numărul maxim de tokeni; utilizează prompt-uri de planificare cu schiță explicită.
Măsurarea Calității
- Precizia@K a fragmentelor recuperate vs. un set etichetat
- Rata de fidelitate: proporția de afirmații cu suport verificabil cu marcaj temporal
- Acoperire: numărul de videoclipuri relevante unice citate
- Latență: timpul de la interogare la raport
Exemplu: Cercetarea "Baze de Date Vectoriale Explicate"
- Interogare: "baze de date vectoriale explicate pentru dezvoltatori 2025"
- Filtre: videoclipuri după 2023, durata 6–30 de minute
- Rezultat: Agentul citează 6 videoclipuri, evidențiază compromisurile dintre HNSW vs. IVF-PQ, discută costul/reamintirea și se leagă de repere. Secțiunea Contradicții compară afirmațiile furnizorului cu rezultatele open-source.
Apropo: Automatizarea Acesta În Interiorul Fluxului Tău de Lucru
Dacă lucrezi cu documente și cod, merită să automatizezi ultima etapă. O mică interfață CLI poate rula interogări nocturne și poate plasa note Markdown în baza ta de cunoștințe. De asemenea, o poți conecta la șabloane de probleme pentru cercetarea sprinturilor.
Demn de remarcat: dacă fluxul tău de lucru există deja într-o bară laterală a browserului sau un asistent AI, instrumente precum Sider.AI pot simplifica bucla de cercetare – selectează un subiect, rulează o căutare, capturează transcrieri și schițează un rezumat alimentat de Claude chiar acolo unde lucrezi. Acest lucru poate economisi comutarea contextului și poate face construirea unui agent de cercetare YouTube cu Claude Code și mai practică pentru echipe. Puncte Cheie
- Construirea unui agent de cercetare YouTube cu Claude Code este o modalitate cu efect de pârghie mare de a transforma videoclipurile în note practice.
- Stiva minimă: YouTube API + transcrieri + fragmentare + încorporări + FAISS + sinteză Claude.
- Căi de actualizare: căutare hibridă, re-clasificare, bucle de planificare și urmărire strictă a citărilor.
- Începe simplu, măsoară fidelitatea și iterează spre fiabilitate.
Pașii Următori
- Implementează un model real de încorporare și recuperare hibridă
- Adaugă un pas de re-clasificare și valori de calitate
- Creează o lucrare programată pentru a reîmprospăta subiectele săptămânal
- Împachetează ca o interfață CLI și o interfață web ușoară
Întrebări Frecvente
Q1: Cum încep să construiesc un agent de cercetare YouTube cu Claude Code?
Începe cu căutarea YouTube, obține transcrieri, fragmentează conținutul, încorporează într-un depozit vectorial și utilizează Claude Code pentru a sintetiza rezultatele. Ghidul de mai sus oferă cod pas cu pas pentru a asambla o conductă de lucru.
Q2: Ce biblioteci sunt cele mai bune pentru un agent de cercetare YouTube?
Utilizează YouTube Data API pentru căutare, youtube-transcript-api pentru subtitrări, FAISS pentru căutare vectorială și Anthropic SDK pentru a apela Claude Code. Poți schimba încorporările cu OpenAI, Nomic sau BGE.
Q3: Cum mă asigur de citări și marcaje temporale precise?
Păstrează marcajele temporale de început/sfârșit în timpul fragmentării și cere lui Claude Code să citeze [video_id @ mm:ss]. Validează că marcajele temporale citate există în fragmentele preluate înainte de publicare.
Q4: Pot utiliza acest agent pentru videoclipuri private sau nelistate?
Da, dacă ai acces și poți obține transcrieri sau rula ASR local (de exemplu, Whisper). Respectă întotdeauna permisiunile și evită distribuirea conținutului protejat de drepturi de autor.
Q5: Cum pot scala acest agent de cercetare YouTube pentru echipe?
Adaugă caching, un depozit vectorial partajat, cozi de lucrări și rulări programate. Integrează-te cu Slack sau un wiki și ia în considerare un asistent bazat pe browser, cum ar fi Sider.AI, pentru a simplifica fluxurile de lucru ale cercetătorilor.