Il problema che risolve
Coach e formatori rispondono ogni giorno alle stesse domande nei commenti e nei DM, anche se le hanno già trattate nei video. Il pubblico non trova il video giusto e il creator non riesce a dare risposte personali su larga scala. Un chatbot del canale risponde con la voce del creator e riporta gli spettatori ai contenuti originali.
Cosa includere nella prima versione
- Risposte tratte solo dai video del creator
- Citazioni che rimandano al video e al timestamp esatti
- Aggiornamenti automatici quando vengono pubblicati nuovi video
- Un piano gratuito con un limite di domande e un piano a pagamento per i membri
- Widget incorporabile nel sito web o nella community del creator
Come realizzarla, passo dopo passo
- 01
Importa il canale
Risolvi il canale o una playlist selezionata e invia tutti gli ID video a /batch con format.paragraphs e format.timestamp.
- 02
Dividi e crea gli embedding
Salva ogni paragrafo con titolo del video, URL e orario di inizio, e crea gli embedding in un database vettoriale.
- 03
Recupera e rispondi
Per ogni domanda, recupera i paragrafi più pertinenti e chiedi a un LLM di rispondere usando solo quelli, citando video e timestamp.
- 04
Resta aggiornato
Controlla periodicamente il canale per i nuovi caricamenti e aggiungi all'indice solo le nuove trascrizioni.
Codice di partenza
Questa idea si basa sullo schema "Ricetta 3: carica in blocco una playlist in una knowledge base". Sostituisci canali, prompt e storage con i tuoi.
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
playlist = requests.post(f"{API}/playlists/resolve", headers=HEADERS,
json={"playlist_url": "https://www.youtube.com/playlist?list=PLAYLIST_ID",
"limit": 100}).json()
ids = [v["video_id"] for v in playlist["items"]]
batch = requests.post(f"{API}/batch", headers=HEADERS, json={
"video_ids": ids,
"format": {"timestamp": True, "paragraphs": True},
}).json()
# Large batches run async: poll GET /batch/{batch_id} until status is "completed"
for r in batch.get("results", []):
if r["status"] == "completed":
for p in r["data"]["transcript"].get("paragraphs") or []:
store(video_id=r["video_id"], start=p["start"], text=p["text"]) # your vector DBCome guadagna
Fai pagare al creator un canone mensile per il chatbot in hosting, oppure condividi i ricavi di un piano a pagamento che vende al suo pubblico. Community a pagamento e venditori di corsi possono includerlo come vantaggio premium.
Errori da evitare
- Lasciare che il modello risponda con conoscenze generali: limitalo ai passaggi di trascrizione recuperati, così suona come il creator.
- Usare blocchi di dimensione fissa che tagliano le frasi a metà: i raggruppamenti per paragrafo mantengono intatto il contesto.
- Lanciare senza l'approvazione del creator: costruiscilo insieme a lui, perché si tratta della sua voce e dei suoi contenuti.
Domande su questa idea
Posso addestrare un chatbot su un canale YouTube?
Sì. Invece di addestrare un modello, recuperi i passaggi pertinenti delle trascrizioni e fai rispondere un LLM a partire da quelli. Si chiama retrieval-augmented generation (RAG).
Come faccio a far citare le fonti al chatbot?
Salva l'URL del video e l'orario di inizio con ogni blocco di trascrizione e istruisci il modello a includerli in ogni risposta.
Quanto costa indicizzare un intero canale?
I video con sottotitoli nativi costano 1 credito ciascuno. Un canale da 300 video costa circa 300 crediti per l'indicizzazione iniziale, e in seguito si pagano solo i nuovi caricamenti.