Problemet det löser
Lokaljournalister och invånare vill veta vad politikerna sa om en detaljplaneändring, en budgetpost eller ett skolbeslut. Att hitta det innebär att spola igenom timmar av video från många möten. Dagordningar och protokoll fångar sällan hela diskussionen, och många lokalredaktioner har inte längre reportrar på plats vid varje möte.
Vad den första versionen bör innehålla
- Automatisk inläsning av varje möte från organets kanal
- Talaretiketter så att du kan söka per förtroendevald
- Sökning på ämnen och nyckelord över flera års möten
- Larm när ett ämne eller en adress diskuteras
- Delbara länkar till exakt rätt ögonblick i inspelningen
Så bygger du det, steg för steg
- 01
Samla in mötesvideor
Slå upp fullmäktiges kanal eller mötesspellista och fortsätt kolla efter nya uppladdningar.
- 02
Transkribera med talare
Använd ASR med speakerLabels aktiverat, och speakerId med kända namn, så att varje avsnitt tillskrivs en talare. Möten är långa, så använd estimate-endpointen för att förhandsgranska kostnaden.
- 03
Indexera efter möte och talare
Spara stycken med mötesdatum, talare och tidsstämpel, och lägg till fulltext- och semantisk sökning.
- 04
Lägg till larm
Låt användare spara sökningar, till exempel ett gatunamn eller ett policyområde, och mejla dem när det tas upp på ett nytt möte.
Startkod
Den här idén bygger på mönstret "Recept 3: Läs in en hel spellista i en kunskapsbas". Byt till dina egna kanaler, promptar och lagring.
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 DBDärför är det värt att bygga
Lokala nyhetsmedier, intresseorganisationer och fastighets- eller policyföretag betalar för larm och researchverktyg. Samhällsprojekt drivs ofta med bidrag eller erbjuder ett gratis offentligt arkiv med betalda larm.
Misstag att undvika
- Att förlita sig på automatiska undertexter för långa möten med många talare: talaretiketter gör arkivet mycket mer användbart.
- Att underskatta längden: möten pågår i timmar, så uppskatta ASR-krediterna innan du transkriberar en eftersläpning.
- Att publicera utan sammanhang: länka varje citat till inspelningen så att läsarna kan höra det själva.
Frågor om den här idén
Kan jag transkribera kommunfullmäktigemöten från YouTube?
Ja. Använd undertexter när de finns, eller AI-taligenkänning med talaretiketter för mer läsbara transkript av långa möten.
Hur identifierar jag vem som pratar?
Aktivera talaretiketter för att skilja talarna åt, och talaridentifiering med en lista över kända namn eller roller för att tillskriva dem.
Vad kostar det att transkribera ett tre timmar långt möte?
AI-taligenkänning kostar ungefär 40 krediter per timme före tillval. Använd estimate-endpointen för att se den exakta kostnaden innan du börjar.