Problemet det löser
Faktagranskare kan söka på textplattformar, men video är i stort sett ogenomskinlig. Påståenden upprepas med något olika formuleringar i dussintals kanaler, och att dokumentera spridningen innebär att titta på timmar av material. Forskare behöver sökbara transkript, semantisk matchning av omskrivningar och ett verifierbart register över varje förekomst.
Vad den första versionen bör innehålla
- Bevakning av en definierad uppsättning kanaler
- Semantisk sökning efter omskrivningar av ett påstående, inte bara exakt formulering
- En tidslinje som visar första förekomst och spridning
- Citat med tidsstämplade länkar för verifiering
- Exporterbara belägg för rapporter och publikationer
Så bygger du det, steg för steg
- 01
Samla in transkript
Slå upp kanalerna som ingår och hämta deras videor för din tidsperiod i batch. Fortsätt bevaka nya uppladdningar om studien pågår.
- 02
Skapa embeddings för segmenten
Skapa embeddings för varje transkriptstycke så att du kan hitta uttalanden med liknande betydelse.
- 03
Sök efter påståendet
Skapa embeddings för flera formuleringar av påståendet, hämta liknande avsnitt och låt en granskare eller en LLM bekräfta vilka som faktiskt framför påståendet.
- 04
Bygg tidslinjen
Sortera bekräftade träffar efter publiceringsdatum och exportera dem med kanal, citat och tidsstämplad länk.
Startkod
Den här idén bygger på mönstret "Recept 2: Bevaka kanaler och larma vid nya uppladdningar". 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"}
WATCHLIST = ["@somechannel", "@anotherchannel"]
KEYWORDS = ["your brand", "competitor"]
seen = set() # persist this in a database in production
for handle in WATCHLIST:
latest = requests.post(f"{API}/channels/resolve", headers=HEADERS,
json={"handle": handle, "limit": 10}).json()
for video in latest["items"]:
if video["video_id"] in seen:
continue
seen.add(video["video_id"])
t = requests.post(f"{API}/transcribe", headers=HEADERS,
json={"video": video["video_id"]}).json()
text = t.get("data", {}).get("transcript", {}).get("text", "").lower()
hits = [k for k in KEYWORDS if k in text]
if hits:
print(f"ALERT {video['title']}: {hits}")Därför är det värt att bygga
Faktagranskningsorganisationer och forskargrupper vinner snabbhet och verifierbara belägg. Trust and safety-team och medieövervakningsföretag betalar för verktyg som täcker video.
Misstag att undvika
- Att behandla automatiska träffar som slutsatser: låt alltid en människa bekräfta innan publicering.
- Att bara söka efter exakta fraser: påståenden förändras, så använd semantisk sökning med flera formuleringar.
- Att tappa bort ursprunget: spara video-ID, tidsstämpel och hämtningsdatum för varje citat.
Frågor om den här idén
Hur söker faktagranskare i YouTube-videor?
Genom att transkribera videor och söka i texten. Semantisk sökning hittar omskrivningar som en nyckelordssökning skulle missa.
Kan jag bevisa när ett påstående först gjordes på YouTube?
Du kan dokumentera den tidigaste förekomsten bland de kanaler du bevakar, med publiceringsdatum och tidsstämpel. Täckningen avgör hur komplett bilden är.
Hur blir det med videor utan undertexter?
Aktivera AI-taligenkänning så transkriberas även videor utan undertexter och blir sökbara.