metadata-generation

โดย google-gemini

สร้างข้อมูลเมตาของรายการ (JSON) ที่ประกอบด้วยคำบรรยายตามเวลา ชื่อเรื่อง ระยะเวลา บทสรุป และวันที่ โดยส่งเสียงและคำบรรยายไปยัง Gemini

npx skills add https://github.com/google-gemini/gemini-managed-agents-templates --skill metadata-generation

Metadata Generation

Generate a structured JSON file containing metadata for the radio show. This is done by sending the final mixed audio file and the original transcript back to Gemini.

Prerequisites

pip install google-genai

Workflow

  1. Read Inputs: Load the transcript from ./workspace/data/script.md and the final audio from ./workspace/audio/final/ai_radio.mp3.
  2. Upload Audio: Upload the audio file to the Gemini Files API.
  3. Generate Metadata: Call Gemini (e.g., gemini-3-flash-preview) using the Interactions API, passing the uploaded audio file and the transcript.
  4. Save Output: Save the resulting JSON to ./workspace/data/show_notes.json.

Python Code

The skill is implemented in scripts/generate_metadata.py.

# Example usage
python3 skills/metadata-generation/scripts/generate_metadata.py --workspace ./workspace

Output

The skill produces a JSON file at ./workspace/data/show_notes.json with the following structure:

{
  "show_title": "...",
  "show_duration": "...",
  "two_sentence_summary": "...",
  "date_of_generation": "YYYY-MM-DD",
  "timecoded_transcript": [
    {
      "timecode": "MM:SS",
      "speaker": "...",
      "text": "..."
    },
    ...
  ]
}

Error Handling

  • If the audio file is missing, the script will fail.
  • If the transcript is missing, it will fail.
  • If the Gemini API call fails, it will report the error and exit.

Skills เพิ่มเติมจาก google-gemini

agent-tui
google-gemini
Main Agents: Do NOT use this skill directly. If you need to test the TUI, invoke the `tui_tester` subagent. Drive terminal UI (TUI) applications…
gemini-api-cli
google-gemini
คู่มือการใช้เครื่องมือ CLI ของ Gemini API ใช้เมื่อคุณต้องการโต้ตอบกับ Gemini API ผ่านทางบรรทัดคำสั่ง จัดการเอเจนต์ หรือสร้างสื่อ (รูปภาพ, …)
behavioral-evals
google-gemini
คำแนะนำสำหรับการสร้าง การรัน การแก้ไข และการส่งเสริมการประเมินพฤติกรรม ใช้เมื่อตรวจสอบตรรกะการตัดสินใจของตัวแทน การแก้ไขข้อบกพร่อง การดีบักพรอมต์…
gemini-live-api-dev
google-gemini
การสตรีมแบบสองทิศทางแบบเรียลไทม์กับ Gemini ผ่าน WebSockets สำหรับการสนทนาด้วยเสียง วีดีโอ และข้อความ รองรับการป้อน/ส่งออกเสียง (16 kHz PCM), เฟรมวีดีโอ, ข้อความ และการถอดความอัตโนมัติพร้อมการตรวจจับกิจกรรมเสียงเพื่อจัดการการขัดจังหวะ รวมถึงคุณสมบัติเสียงแบบเนทีฟ: การสนทนาที่มีอารมณ์, เสียงเชิงรุก และโหมดการคิด; การเรียกใช้ฟังก์ชันสำหรับการใช้เครื่องมือแบบซิงโครนัสและอะซิงโครนัส; และการอ้างอิง Google Search มีการจัดการเซสชันด้วยการบีบอัดบริบท, การกลับมาดำเนินการต่อ และ...
gemini-omni-flash-api
google-gemini
ใช้ทักษะนี้สำหรับการตัดต่อวิดีโอเชิงสร้างสรรค์ การสร้างวิดีโอจากข้อความ การสร้างวิดีโอโดยอ้างอิงจากภาพ และแอนิเมชันเปลี่ยนผ่านจากเฟรมแรกสู่วิดีโอ โดยใช้…
gemini-api-dev
google-gemini
สร้างแอปพลิเคชันด้วยโมเดล Gemini ของ Google รองรับเนื้อหาหลายรูปแบบ การเรียกใช้ฟังก์ชัน และผลลัพธ์ที่มีโครงสร้างใน Python, JavaScript, Go และ Java เข้าถึงโมเดล Gemini 3 ปัจจุบัน (Pro, Flash, Pro Image) พร้อมบริบท 1M โทเค็น; โมเดล Gemini 2.x และ 1.5 รุ่นเก่าถูกเลิกใช้งานแล้ว รองรับการสร้างข้อความ การทำความเข้าใจรูปภาพ/เสียง/วิดีโอ การเรียกใช้ฟังก์ชัน ผลลัพธ์ JSON ที่มีโครงสร้าง การเรียกใช้โค้ด การแคชบริบท และการฝังเวกเตอร์ SDK อย่างเป็นทางการ: google-genai (Python),...
gemini-interactions-api
google-gemini
อินเทอร์เฟซแบบรวมสำหรับโมเดล Gemini และเอเจนต์ พร้อมสถานะฝั่งเซิร์ฟเวอร์ การสตรีม และการจัดระเบียบเครื่องมือ รองรับโมเดลปัจจุบันหลายรุ่น (gemini-3-flash-preview, gemini-3-pro-preview, gemini-2.5-flash/pro) และเอเจนต์ Deep Research; แทนที่รหัสโมเดลที่เลิกใช้งานโดยอัตโนมัติด้วยทางเลือกปัจจุบัน ถ่ายโอนประวัติการสนทนาไปยังเซิร์ฟเวอร์ผ่าน previous_interaction_id สำหรับการโต้ตอบแบบหลายเทิร์นที่มีสถานะโดยไม่ต้องจัดการประวัติด้วยตนเอง มีการจัดระเบียบเครื่องมือในตัวรวมถึง...
deliver
google-gemini
โพสต์เวอร์ชันย่อของสรุปข้อมูลไปยัง Google Chat หรือ Slack incoming webhook เพื่อให้การส่งรายงานประจำวันเกิดขึ้นได้เอง — จะข้ามอย่างเงียบ ๆ เมื่อไม่มี webhook…