สร้าง AI Agent สรุปวิดีโอและพอดแคสต์ออฟไลน์: สกัดประเด็นสำคัญและ Action Items จากไฟล์เสียงด้วย Python + Ollama

เปลี่ยนการนั่งฟังพอดแคสต์และวิดีโอบรรยายยาวหลายชั่วโมงให้กลายเป็นสรุปประเด็นหลักและ Action Items อัตโนมัติ ส่งตรงเข้า Obsidian แบบออฟไลน์ 100% ด้วย Whisper และ Ollama

Share
สร้าง AI Agent สรุปวิดีโอและพอดแคสต์ออฟไลน์: สกัดประเด็นสำคัญและ Action Items จากไฟล์เสียงด้วย Python + Ollama

ในแต่ละสัปดาห์เรามักจะบันทึกวิดีโอบรรยาย สัมมนาออนไลน์ หรือพอดแคสต์ความรู้เก็บไว้มากมาย แต่ปัญหาคลาสสิกที่ทุกคนเจอคือ "ไม่มีเวลาเปิดฟังจนจบ" หรือแม้จะฟังจบแล้ว ข้อมูลความรู้เหล่านั้นก็มักจะเลือนหายไปโดยไม่ได้ถูกย่อยและเชื่อมโยงเข้ากับระบบ Second Brain ของเรา

แทนที่จะต้องนั่งฟังคลิปความยาว 1-2 ชั่วโมงแล้วคอยกดหยุดเพื่อจดโน้ตทีละประโยค เราสามารถสร้าง AI Agent สรุปสื่อเสียงและวิดีโออัตโนมัติ (Media Summarizer Agent) ที่ทำงานบนเครื่องตัวเอง ประมวลผลแบบ Offline 100% ทั้งปลอดภัยและไม่ต้องเสียค่าบริการคลาวด์รายเดือน


สถาปัตยกรรมของ Media Summarizer Agent

การทำงานของระบบ Cognitive Automation ตัวนี้แบ่งออกเป็น 3 ขั้นตอนหลัก:

  1. Audio Extraction & Transcription (สกัดเสียงและถอดความ): ใช้ yt-dlp เพื่อดึงเสียงจากไฟล์วิดีโอ/ลิงก์ และใช้ faster-whisper ในเครื่องแปลงเสียงพูดให้กลายเป็นข้อความดิบ (Transcript)
  2. Cognitive Synthesis (ย่อยและสังเคราะห์สาระสำคัญ): ส่งข้อความถอดเสียงเข้าโมเดล LLM ในเครื่องผ่าน Ollama เพื่อจัดหมวดหมู่ แยกประเด็นสำคัญ, ข้อคิดเด่น, และ Action Items
  3. Obsidian Integration (จัดเก็บบันทึกอัตโนมัติ): สร้างไฟล์ Markdown พร้อม Frontmatter ที่สมบูรณ์แบบลงในคลังโน้ต Obsidian ทันที

สิ่งที่ต้องเตรียมก่อนเริ่มสร้าง

ตรวจสอบให้แน่ใจว่าเครื่องของคุณติดตั้งเครื่องมือพื้นฐานเหล่านี้เรียบร้อยแล้ว:

  • Ollama: พร้อมดาวน์โหลดโมเดลภาษา เช่น llama3.1:8b หรือ qwen2.5:7b
  • Python 3.10+
  • FFmpeg: สำหรับจัดการไฟล์มีเดีย
  • ไลบรารี Python: pip install faster-whisper ollama yt-dlp

โค้ด Python สำหรับสร้าง Agent

สร้างไฟล์ชื่อ media_summarizer.py แล้วใส่โค้ดการทำงานต่อไปนี้:

import os
import sys
from pathlib import Path
from datetime import datetime
import ollama
from faster_whisper import WhisperModel

# กำหนดเส้นทางโฟลเดอร์ของ Obsidian Vault
OBSIDIAN_VAULT = Path("/home/linn/Documents/Obsidian/SecondBrain/Media-Notes")
MODEL_NAME = "llama3.1:8b"

def transcribe_audio(audio_path: str) -> str:
    print(f"[*] กำลังถอดความเสียงจาก: {audio_path}")
    # ใช้โมเดล whisper base หรือ small เพื่อความเร็วในการรันบนเครื่อง
    model = WhisperModel("small", device="auto", compute_type="int8")
    segments, _ = model.transcribe(audio_path, language="th")

    full_text = []
    for segment in segments:
        full_text.append(segment.text)

    return " ".join(full_text)

def summarize_with_ollama(transcript: str, media_title: str) -> str:
    print(f"[*] กำลังสังเคราะห์ประเด็นด้วย Ollama ({MODEL_NAME})...")

    system_prompt = (
        "คุณคือผู้เชี่ยวชาญด้าน Knowledge Management และการจัดทำ Literature Note "
        "หน้าที่ของคุณคือวิเคราะห์ Transcript จากวิดีโอหรือพอดแคสต์ แล้วสรุปเป็นภาษาไทย "
        "โครงสร้างสรุปต้องกระชับ ตรงประเด็น และเน้นนำไปปฏิบัติตามได้จริง"
    )

    user_prompt = f"""
    ช่วยสรุปเนื้อหาจาก Transcript ต่อไปนี้:

    หัวข้อสื่อ: {media_title}

    เนื้อหา:
    {transcript[:12000]}  # ตัดช่วงความยาวให้พอดีกับบริบท

    กรุณาจัดรูปแบบผลลัพธ์เป็น Markdown ตามโครงสร้างนี้:
    ### 🎯 สรุปภาพรวมใน 3 ประโยค
    ### 💡 ประเด็นสำคัญ (Key Insights)
    - บุลเล็ตสรุปแนวคิดหลัก
    ### 🛠️ สิ่งที่นำไปปรับใช้ได้ทันที (Action Items)
    - [ ] การกระทำที่ชัดเจน
    ### 💬 วาทะ/ข้อความเด่นที่น่าสนใจ (Memorable Quotes)
    """

    response = ollama.chat(
        model=MODEL_NAME,
        messages=[
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": user_prompt}
        ],
        options={"temperature": 0.3}
    )

    return response["message"]["content"]

def save_to_obsidian(title: str, summary_content: str, source_path: str):
    OBSIDIAN_VAULT.mkdir(parents=True, exist_ok=True)
    slug = title.lower().replace(" ", "-")[:40]
    filename = OBSIDIAN_VAULT / f"media-{slug}.md"

    today = datetime.now().strftime("%Y-%m-%d")

    note_content = f"""---
title: "{title}"
date: "{today}"
type: "literature-note"
category: "Media Summary"
tags: ["podcast", "video", "cognitive-automation", "second-brain"]
source: "{source_path}"
---

# {title}

{summary_content}

---
*บันทึกนี้สร้างขึ้นอัตโนมัติด้วย Local Media Summarizer Agent เมื่อ {today}*
"""

    filename.write_text(note_content, encoding="utf-8")
    print(f"[+] บันทึกไฟล์เรียบร้อยแล้วที่: {filename}")

def main():
    if len(sys.argv) < 2:
        print("วิธีใช้: python media_summarizer.py <ไฟล์เสียงหรือวิดีโอ> [ชื่อหัวข้อ]")
        sys.exit(1)

    media_file = sys.argv[1]
    title = sys.argv[2] if len(sys.argv) > 2 else Path(media_file).stem

    # 1. ถอดเสียง
    transcript = transcribe_audio(media_file)

    # 2. ย่อยข้อมูลด้วย LLM
    summary = summarize_with_ollama(transcript, title)

    # 3. บันทึกลง Obsidian
    save_to_obsidian(title, summary, media_file)

if __name__ == "__main__":
    main()

วิธีนำไปประยุกต์ใช้งานในชีวิตประจำวัน

  1. สรุปไฟล์บันทึกการสอนหรือสัมมนา: เพียงดาวน์โหลดไฟล์เสียง mp3/mp4 แล้วสั่งรัน: bash python media_summarizer.py lecture_ai_future.mp3 "ทิศทาง AI ในปี 2026"
  2. ผสานเข้ากับ Watch Folder: คุณสามารถตั้งค่าสคริปต์ให้คอยเฝ้าโฟลเดอร์ ~/Podcasts/Inbox เมื่อใดก็ตามที่มีการวางไฟล์เสียงใหม่ลงไป Agent จะทำการถอดเสียงและส่งบันทึกสรุปเข้า Obsidian ให้ทันทีในเบื้องหลัง
  3. เชื่อมโยงเข้ากับ MOC: เมื่อโน้ตถูกส่งเข้า Obsidian แล้ว เราสามารถใช้ปลั๊กอิน Dataview หรือระบบ Bi-directional Link เชื่อมโยงไอเดียใหม่นี้เข้ากับ MOC ด้านความรู้ที่เกี่ยวข้องได้อย่างง่ายดาย

บทสรุป

การสร้าง Cognitive Automation ไม่ใช่การปล่อยให้ AI มาคิดแทนเราทั้งหมด แต่คือการ "ลดภาระงานส่วนเกิน (Cognitive Overhead)" ในการรับข้อมูลดิบ เพื่อให้สมองของเรามีพื้นที่และพลังงานเหลือสำหรับ การคิดวิเคราะห์เชิงลึก การตั้งคำถาม และการสร้างสรรค์ผลงานใหม่

ด้วยพลังของ Whisper + Ollama + Python คุณสามารถมีผู้ช่วยสรุปสื่อส่วนตัวที่ทำงานรวดเร็ว ไร้ขีดจำกัด และรักษาความลับของทุกสิ่งที่คุณรับฟังไว้อย่างปลอดภัย 100% บนเครื่องของคุณเอง

Read more

สร้าง AI Agent สำหรับการทำ Decision Log อัตโนมัติ: เปลี่ยนทุกการตัดสินใจสำคัญให้เป็นบทเรียนเพื่อการเติบโต

สร้าง AI Agent สำหรับการทำ Decision Log อัตโนมัติ: เปลี่ยนทุกการตัดสินใจสำคัญให้เป็นบทเรียนเพื่อการเติบโต

เรียนรู้วิธีใช้ AI Agent ช่วยบันทึกและวิเคราะห์การตัดสินใจสำคัญในชีวิตประจำวัน เพื่อเปลี่ยนทุกทางเลือกให้กลายเป็นฐานข้อมูลบทเรียนที่มีค่าสำหรับอนาคต

By Linn
คู่มือใช้งาน Obsidian Graph View: เปลี่ยนใยแมงมุมความรู้ให้เป็นเครื่องมือนำทางความคิดใน Second Brain

คู่มือใช้งาน Obsidian Graph View: เปลี่ยนใยแมงมุมความรู้ให้เป็นเครื่องมือนำทางความคิดใน Second Brain

Graph View ใน Obsidian ไม่ใช่แค่ภาพกราฟสวยๆ ไว้ดูเล่น มาเรียนรู้วิธีปรับแต่ง Local Graph, Color Groups และฟิลเตอร์ เพื่อเปลี่ยนเครือข่ายความรู้ให้กลายเป็นเครื่องมือนำทางความคิดจริง

By Linn
สร้าง Smart Clipboard Agent: ดักจับและคัดแยกข้อความที่คัดลอกระหว่างวัน บันทึกเข้า Obsidian อัตโนมัติด้วย Python + Ollama

สร้าง Smart Clipboard Agent: ดักจับและคัดแยกข้อความที่คัดลอกระหว่างวัน บันทึกเข้า Obsidian อัตโนมัติด้วย Python + Ollama

เปลี่ยนข้อความ โค้ด ลิงก์ และไอเดียที่คุณคัดลอกระหว่างวันให้กลายเป็นบันทึกความรู้ที่มีบริบทใน Second Brain โดยอัตโนมัติ ด้วยสคริปต์ Python คอยมอนิเตอร์คลิปบอร์ดคู่กับ Local LLM บน Ollama แบบออฟไลน์ 100%

By Linn
บอกลาคำสั่ง Docker CLI ที่ซับซ้อน: คู่มือติดตั้ง Dockge จัดการ Docker Compose บน Home Server อย่างมือโปร

บอกลาคำสั่ง Docker CLI ที่ซับซ้อน: คู่มือติดตั้ง Dockge จัดการ Docker Compose บน Home Server อย่างมือโปร

ยกระดับการจัดการคอนเทนเนอร์บน Home Server ให้ง่ายและเป็นระเบียบ ด้วย Dockge ตัวจัดการ Docker Compose สไตล์มินิมอลที่เน้นความโปร่งใส ควบคุมไฟล์ .yml ได้โดยตรง 100%

By Linn