הבעיה שזה פותר
עיתונאים מקומיים ותושבים רוצים לדעת מה אמרו נבחרי הציבור על שינוי ייעוד קרקע, על סעיף בתקציב או על מדיניות בית ספר. כדי למצוא את זה צריך לגלגל שעות של וידאו בישיבות רבות. סדרי יום ופרוטוקולים כמעט אף פעם לא משקפים את הדיון המלא, ובמערכות חדשות מקומיות רבות כבר אין כתבים שמגיעים לכל ישיבה.
מה לכלול בגרסה הראשונה
- קליטה אוטומטית של כל ישיבה מהערוץ של הגוף
- תיוג דוברים כדי שאפשר יהיה לחפש לפי נבחר ציבור
- חיפוש לפי נושא ומילות מפתח בשנים של ישיבות
- התראות כשנושא או כתובת עולים לדיון
- קישורים לשיתוף לרגע המדויק בהקלטה
איך לבנות את זה, שלב אחר שלב
- 01
אספו את סרטוני הישיבות
המירו את הערוץ של המועצה או את פלייליסט הישיבות והמשיכו לבדוק אם יש העלאות חדשות.
- 02
תמללו עם דוברים
השתמשו ב-ASR עם speakerLabels מופעל, וב-speakerId עם שמות ידועים, כך שכל קטע ישויך לדובר. הישיבות ארוכות, אז השתמשו בנקודת הקצה להערכת עלות כדי לראות את העלות מראש.
- 03
אנדקסו לפי ישיבה ודובר
שמרו פסקאות עם תאריך הישיבה, הדובר וחותמת הזמן, והוסיפו חיפוש טקסט מלא וחיפוש סמנטי.
- 04
הוסיפו התראות
אפשרו למשתמשים לשמור חיפושים, כמו שם רחוב או נושא מדיניות, ושלחו להם מייל כשהוא עולה בישיבה חדשה.
קוד התחלתי
הרעיון הזה מבוסס על התבנית "מתכון 3: טעינת פלייליסט שלם למאגר ידע". החליפו בערוצים, בפרומפטים ובאחסון שלכם.
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 DBלמה כדאי לבנות את זה
כלי תקשורת מקומיים, ארגוני חברה אזרחית וחברות נדל"ן או מדיניות ישלמו על התראות ועל כלי מחקר. פרויקטים אזרחיים פועלים לעיתים קרובות על מענקים, או מציעים ארכיון ציבורי חינמי עם התראות בתשלום.
טעויות שכדאי להימנע מהן
- הסתמכות על כתוביות אוטומטיות בישיבות ארוכות עם הרבה דוברים: תיוג דוברים הופך את הארכיון לשימושי הרבה יותר.
- הערכת חסר של האורך: ישיבות נמשכות שעות, אז העריכו את קרדיטי ה-ASR לפני שמתמללים ערימה של ישיבות ישנות.
- פרסום בלי הקשר: קשרו כל ציטוט להקלטה כדי שהקוראים יוכלו לשמוע אותו בעצמם.
שאלות על הרעיון הזה
אפשר לתמלל ישיבות מועצת עיר מ-YouTube?
כן. השתמשו בכתוביות כשהן קיימות, או בזיהוי דיבור מבוסס AI עם תיוג דוברים לקבלת תמלולים קריאים יותר של ישיבות ארוכות.
איך מזהים מי מדבר?
הפעילו תיוג דוברים כדי להפריד בין הדוברים, וזיהוי דוברים עם רשימה של שמות או תפקידים ידועים כדי לשייך אותם.
כמה עולה לתמלל ישיבה של שלוש שעות?
זיהוי דיבור מבוסס AI עולה בערך 40 קרדיטים לשעה לפני תוספות. השתמשו בנקודת הקצה להערכת עלות כדי לראות את העלות המדויקת לפני שמתחילים.