Стъпка по стъпка: Създаване на YouTube Research Agent с Claude Code
Ако някога сте прекарвали следобед, губейки се в YouTube, само за да забравите кои видеоклипове си струва да запазите, не сте сами. Сега си представете неуморен асистент, който може да намери най-добрите видеоклипове, да извлече резюмета, да извади ключови цитати, да отбележи във времето важни моменти и да върне източници при поискване – бързо. Точно това може да направи YouTube research agent. В това ръководство стъпка по стъпка ще създадем практичен YouTube research agent с Claude Code, предназначен за създатели, анализатори, студенти и обсебени учащи, които искат да получат полезен сигнал, вместо много шум.
Ще поемем по практичен и директен път: архитектура, код, подкани и предпазни мерки. По пътя ще направим конкретни избори, които можете да промените по-късно. До края ще имате работещ агент, който може да търси в YouTube, да събира транскрипции, да разсъждава върху множество видеоклипове и да изготвя ясни изследователски справки.
Какво създаваме (и защо е важно)
- Цел: YouTube research agent, който може:
- Да търси в YouTube по заявка
- Да класира резултатите по релевантност/ангажираност
- Да извлича транскрипции (автоматични надписи или такива от трети страни)
- Да разделя и вгражда съдържание за извличане
- Да използва Claude Code, за да синтезира анализи от множество видеоклипове
- Да извежда структурирани бележки: резюме, твърдения, времеви маркировки, цитати и препратки
- Основна ключова дума: "Създаване на YouTube research agent с Claude Code"
- Формат: Ръководство стъпка по стъпка с работещ код и подкани
- Резултати: Markdown изследователска справка + JSON за програмна употреба
Защо е важно: YouTube е най-голямата публична база знания от беседи, уроци, демонстрации и дебати. Но е шумно. Създаването на YouTube research agent с Claude Code ви дава предимство: можете да съберете анализи от десетки видеоклипове за минути, а не за часове.
Архитектура с един поглед
Ще запазим първата версия проста и стабилна.
- Входни данни: заявка за изследване (например, "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 Code за оркестрация, използване на инструменти, синтез и изпълнение на код в контролиран цикъл
- Резултати: Markdown отчет + JSON индекс с цитати, времеви маркировки и резултати
Поток на данни: Заявка → Търсене → Извличане на метаданни → Транскрипция → Разделяне → Вграждане → Извличане на топ‑K → Claude Code синтез → Отчет.
Предварителни изисквания и настройка
- API ключове:
YOUTUBE_API_KEY, ANTHROPIC_API_KEY (за Claude Code)
- Незадължително:
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 и ще връщаме структурирани метаданни: заглавие, канал, дата на публикуване, продължителност, гледания (ако има налични) и 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
Съвети за подкани при създаване на YouTube research agent с Claude Code:
- Искайте структурирани резултати както в четим от човек, така и в машинно-четим формат
- Налагайте цитати с времеви маркировки
- Насърчавайте разкриването на несигурност и противоречия
Стъпка 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 research agent с Claude Code ще търси, извлича и синтезира анализи от множество видеоклипове с цитати. Надстройте вгражданията и добавете кеширане, за да го направите готов за производство.
Седем подобрения, за да го направите страхотен
- По-добри вграждания и хибридно търсене
- Заменете с висококачествени вграждания и добавете BM25 търсене по ключови думи. Хибридът дава повече извличане на нишови термини и по-добра прецизност по абстрактни теми.
- Разширете инструментите за по-богати метаданни
- Издърпайте коментари, съотношение харесвания/нехаресвания и авторитет на канала. Добавете прекласификатор (cross‑encoder) за топ 100 кандидати.
- Многоходово изследователско планиране
- Използвайте Claude Code, за да предложите изследователски план: подвъпроси, хипотези и проверки на покритието. Изпълнявайте итеративно, докато не бъдат достигнати праговете на покритие.
- Проследяване на доказателства и контрадоказателства
- За всяко твърдение регистрирайте подкрепящи и противоречащи откъси. Представете и двете в отчетите; добавете резултати за увереност.
- Стратегии за дълги видеоклипове
- Използвайте откриване на сцени чрез субтитри или Whisper word timings. Обобщете за секция, преди глобалния синтез, за да избегнете разреждане на контекста.
- Съхранявайте транскрипции, вграждания и отчети за всяка заявка. Използвайте повторно, когато потребителите променят филтрите. Добавете премахване на дублиране по video ID.
- Формати за експортиране и доставка
- Експортирайте Markdown, PDF и JSON. Доставка по имейл или Slack. Предавайте времевите маркировки като връзки, на които може да се кликне
?t=mmss.
Подкани, които можете да използвате повторно
Използвайте тези шаблони, докато създавате YouTube research agent с Claude Code.
Система: Вие сте щателен изследователски агент. Синтезирайте множество YouTube транскрипции. Цитирайте в текста с [vID @ mm:ss] и включете раздел с източници с URL адреси. Върнете както Markdown справка, така и JSON полезен товар от твърдения с поддръжка с времеви маркировки.
Потребител: Изследователска цел: {topic}
Ограничения: фокусирайте се върху {audience or scope}; предпочитайте източници в рамките на {date range}; включете несъгласия.
Кандидат откъси (класирани):
{retrieved_passages}
Резултат: Резюме → Ключови моменти (точки) → Забележителни цитати (с времеви маркировки) → Противоречия и пропуски → Източници. След това JSON {"claims": ...}
Предпазни мерки и етика
- Уважавайте правата на създателите: Свържете се с оригиналните видеоклипове и избягвайте публикуването на големи дословни транскрипции.
- Бъдете прозрачни: Показвайте откъде идват твърденията, като използвате времеви маркировки и video IDs.
- Избягвайте прекаленото обобщаване: Запазете нюансите; отбелязвайте, когато надписите са автоматично генерирани и вероятно шумни.
- Работете внимателно с чувствителни теми: Подчертайте несигурността и търсете различни източници.
Отстраняване на проблеми: Чести проблеми и решения
- "Не е намерена транскрипция"
- Върнете се към Whisper; опитайте различни езици; проверете дали видеоклипът е блокиран за региона.
- Лошо качество на извличане
- Надстройте вгражданията; добавете BM25; увеличете припокриването на части; параметрирайте топ‑K.
- Наложете строга схема на цитиране; санкционирайте неподдържани твърдения; изисквайте точни времеви маркировки, присъстващи в извлечените части.
- Ограничения на API квотата
- Кеширайте агресивно; намалете
max_results; партидни заявки; добавете отстъпление с tenacity.
- Обобщете за секция; ограничете максималните токени; използвайте подкани за планиране с ясен план.
Измерване на качеството
- Прецизност@K на извлечените части спрямо етикетиран набор
- Степен на достоверност: дял на твърденията с проверима поддръжка с времеви маркировки
- Покритие: брой уникални релевантни видеоклипове, цитирани
- Латентност: време от заявка до отчет
Пример: Изследване на "Vector Databases Explained"
- Заявка: "vector databases explained for developers 2025"
- Филтри: видеоклипове след 2023 г., продължителност 6–30 минути
- Резултат: Агентът цитира 6 видеоклипа, подчертава компромисите на HNSW срещу IVF‑PQ, обсъжда разходи/извличане и връзки към бенчмаркове. Разделът за противоречия сравнява твърденията на доставчиците спрямо резултатите с отворен код.
Между другото: Автоматизиране на това във вашия работен поток
Ако работите в различни документи и код, струва си да автоматизирате последната миля. Малък CLI може да изпълнява нощни заявки и да пуска Markdown справки във вашата база знания. Можете също така да го свържете към шаблони за проблеми за изследване на спринт.
Струва си да се отбележи: ако вашият работен поток вече живее в странична лента на браузъра или AI асистент, инструменти като Sider.AI могат да рационализират изследователския цикъл – изберете тема, изпълнете търсене, заснемете транскрипции и изгответе резюме, задвижвано от Claude, точно там, където работите. Това може да спести превключване на контекста и да направи създаването на YouTube research agent с Claude Code още по-практично за екипи. Основни изводи
- Създаването на YouTube research agent с Claude Code е начин с голям лост за превръщане на видеоклиповете в справки, които могат да се предприемат.
- Минималният стек: YouTube API + транскрипции + разделяне + вграждания + FAISS + Claude синтез.
- Пътища за надграждане: хибридно търсене, прекласиране, цикли на планиране и строго проследяване на цитати.
- Започнете просто, измерете достоверността и итерирайте към надеждност.
Следващи стъпки
- Внедрете реален модел за вграждане и хибридно извличане
- Добавете стъпка за прекласиране и показатели за качество
- Създайте планирана задача за опресняване на теми всяка седмица
- Пакетирайте като CLI и лек уеб потребителски интерфейс
ЧЗВ
Q1:Как да започна да създавам YouTube research agent с Claude Code?
Започнете с търсене в YouTube, извличане на транскрипции, разделяне на съдържание, вграждане във векторно хранилище и използвайте Claude Code, за да синтезирате резултатите. Ръководството по-горе предоставя стъпка по стъпка код за сглобяване на работещ конвейер.
Q2:Кои библиотеки са най-добри за YouTube research agent?
Използвайте YouTube Data API за търсене, youtube-transcript-api за надписи, FAISS за векторно търсене и Anthropic SDK за извикване на Claude Code. Можете да замените вгражданията с OpenAI, Nomic или BGE.
Q3:Как да гарантирам точни цитати и времеви маркировки?
Запазете началните/крайните времеви маркировки по време на разделянето и изисквайте Claude Code да цитира [video_id @ mm:ss]. Потвърдете, че цитираните времеви маркировки съществуват в извлечените части, преди да публикувате.
Q4:Мога ли да използвам този агент за лични или непубликувани видеоклипове?
Да, ако имате достъп и можете да извличате транскрипции или да изпълнявате локален ASR (например, Whisper). Винаги уважавайте разрешенията и избягвайте разпространението на защитено с авторски права съдържание.
Q5:Как мога да мащабирам този YouTube research agent за екипи?
Добавете кеширане, споделено векторно хранилище, опашки за работа и планирани изпълнения. Интегрирайте се със Slack или wiki и обмислете асистент, базиран на браузър, като Sider.AI, за да рационализирате работните потоци на изследователите.