دليل البناء · الباحثون

كيف تبني أرشيفًا قابلًا للبحث للاجتماعات العامة من YouTube

تنشر آلاف المجالس البلدية ومجالس المدارس والهيئات التشريعية اجتماعاتها على YouTube. التسجيلات علنية لكنها غير قابلة للبحث عمليًا: جلسات من ثلاث ساعات بلا فهرس. وأرشيف النصوص يجعل الحكومة المحلية خاضعة للمساءلة وسهلة البحث.

لمن هذه الفكرة
الباحثون في الشأن المدني، والصحفيون المحليون، ومحللو السياسات
مدة البناء
1–2 أسبوع
نقاط نهاية API
/playlists/resolveasr_options.speakerLabels/batch

المشكلة التي تحلها

يريد الصحفيون المحليون والسكان معرفة ما قاله المسؤولون عن تعديل في تقسيم الأراضي أو بند في الميزانية أو سياسة مدرسية. والعثور على ذلك يعني تقليب ساعات من الفيديو عبر اجتماعات كثيرة. ونادرًا ما تنقل جداول الأعمال والمحاضر النقاش كاملًا، ولم يعد لدى كثير من غرف الأخبار المحلية مراسلون يحضرون كل اجتماع.

ما يجب تضمينه في نسختك الأولى

  • استيعاب تلقائي لكل اجتماع من قناة الجهة
  • تمييز المتحدثين لتتمكن من البحث حسب المسؤول
  • بحث بالموضوع والكلمات المفتاحية عبر سنوات من الاجتماعات
  • تنبيهات عند مناقشة موضوع أو عنوان معين
  • روابط قابلة للمشاركة إلى اللحظة الدقيقة في التسجيل

كيف تبنيها خطوة بخطوة

  1. 01

    اجمع فيديوهات الاجتماعات

    حلّل قناة المجلس أو قائمة تشغيل الاجتماعات واستمر في التحقق من الفيديوهات الجديدة.

  2. 02

    فرّغ مع تمييز المتحدثين

    استخدم ASR مع تفعيل speakerLabels، وspeakerId مع الأسماء المعروفة، لينسب كل مقطع إلى متحدث. الاجتماعات طويلة، لذا استخدم نقطة نهاية التقدير لمعاينة التكلفة.

  3. 03

    فهرس حسب الاجتماع والمتحدث

    خزّن الفقرات مع تاريخ الاجتماع والمتحدث والطابع الزمني، وأضف بحث النص الكامل والبحث الدلالي.

  4. 04

    أضف التنبيهات

    دع المستخدمين يحفظون عمليات بحث مثل اسم شارع أو موضوع سياسة، وأرسل إليهم بريدًا إلكترونيًا عند طرحه في اجتماع جديد.

كود جاهز للبدء

تعتمد هذه الفكرة على نمط «الوصفة 3: حمّل قائمة تشغيل كاملة في قاعدة معرفة». استبدل القنوات والتعليمات (prompts) ووسيلة التخزين بما يناسبك.

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؟

نعم. استخدم الترجمة المصاحبة حين تتوفر، أو التعرف على الكلام بالذكاء الاصطناعي مع تمييز المتحدثين للحصول على نصوص أوضح للاجتماعات الطويلة.

كيف أحدد من يتحدث؟

فعّل تمييز المتحدثين للفصل بينهم، والتعرف على هوية المتحدث مع قائمة بالأسماء أو الأدوار المعروفة لنسبة الكلام إليهم.

كم تكلّف تفريغ اجتماع مدته ثلاث ساعات؟

يكلّف التعرف على الكلام بالذكاء الاصطناعي نحو 40 رصيدًا للساعة قبل الإضافات. استخدم نقطة نهاية التقدير لمعرفة التكلفة الدقيقة قبل البدء.

ابدأ البناء اليوم

10 أرصدة مجانية كل شهر. لا حاجة إلى بطاقة ائتمان.

كيف تبني أرشيفًا قابلًا للبحث للاجتماعات العامة من YouTube | YouTubeTranscript.dev