คอนเซปต์ของระบบ
หลักการกลางที่ทีมใช้อ้างอิง — อัปเดตให้ตรงกับสิ่งที่ระบบทำอยู่จริง ณ 20 ส.ค. 2026 · ศัพท์ทุกคำในหน้านี้มีคำอธิบายเต็มที่หน้าอภิธานศัพท์
ปัญหาที่กำลังแก้
ว่าที่ลูกค้า (สำนักข่าว/สื่อที่มีช่อง YouTube ของตัวเอง) มีคลังวิดีโอมหาศาล แต่ตอบไม่ได้ว่า คลังที่มีอยู่พอเปิดช่อง FAST 24 ชั่วโมงจริงไหม ต้องซ้ำถี่แค่ไหน ช่วงไหนจะโหวง และถ้าเปิดไปแล้วต้องผลิตเพิ่มเท่าไหร่ต่อสัปดาห์
การตอบด้วยสไลด์ไม่มีน้ำหนัก เพราะทุกตัวเลขเป็นการเดา — สิ่งที่มีน้ำหนักคือ เอาคลังจริงของเขามาเดินผังจริงให้ดู
สิ่งที่เครื่องมือนี้เป็น
ระบบ FAST Channel Simulation เสมือนจริง — สร้างสตูดิโอ วางลิงก์ช่อง YouTube ระบบดูด metadata จริง (ชื่อคลิป · ความยาว · วันอัปโหลด · เพลย์ลิสต์) แล้วได้ผังที่ เดินไปข้างหน้าทุกวัน ตามคอนเทนต์ใหม่ที่ลูกค้าอัปจริง
ต่างจากช่องจริงแค่ ไม่มีไฟล์วิดีโอให้เล่น เท่านั้น — ทุกอย่างที่เหลือคือของจริง และนี่คือประเด็นหลักของข้อเสนอเรื่อง Warp: จัดผัง 24 ชม. × 28 วันได้ด้วย metadata ล้วน ไม่ต้องมีไฟล์วิดีโอสักไฟล์ ไฟล์จริงค่อยดูดมาเฉพาะคลิปที่จะออนแอร์
หนึ่งลูกค้า = หนึ่งคลัง = สร้างได้หลายช่อง
ระบบจำลอง ทีละลูกค้า แยกขาดจากกัน — สร้าง “สตูดิโอ” หนึ่งรายต่อหนึ่งลูกค้า ไม่มีการยืมคลิปข้ามลูกค้า เพราะสิทธิ์คอนเทนต์เป็นของแต่ละราย · หนึ่งสตูดิโอมีช่อง YouTube ต้นทางได้หลายช่อง (เครือมติชนหรือเนชั่นมีเป็นสิบช่อง) และจากคลังเดียวกันสร้าง ช่อง FAST ได้หลายช่อง เลือกส่วนผสมคนละแบบเพื่อเทียบกัน
คลิปจาก YouTube เข้ามาในระบบยังไง
ระบบไม่เก็บไฟล์วิดีโอ เก็บแต่ metadata ไฟล์จริงยังอยู่บน YouTube · ส่วนนี้คือกติกาว่าคลิปไหนได้เข้าคลัง ซึ่งเป็นจุดที่กินโควตา API และตัดสินคุณภาพของผังตั้งแต่ต้นทาง
- 1ดูก่อนดูดวางลิงก์ช่อง → ระบบถาม YouTube ว่าช่องนี้มีกี่คลิปและมีเพลย์ลิสต์อะไรบ้าง (ราว 2 หน่วยโควตา) พร้อมเตือนเพลย์ลิสต์ที่ชื่อคล้ายกันจนน่าจะเป็นรายการเดียวกัน
- 2ตั้งกฎการดูด แยกรายช่องเลือกว่าจะเอาแค่ไหน: ทุกคลิปในช่อง · เฉพาะเพลย์ลิสต์ที่ติ๊ก · หรือผสม (เพลย์ลิสต์ทั้งกอง + คลิปอื่นย้อนหลัง N วัน) เพลย์ลิสต์ใหญ่ตั้งกรอบเวลาและเพดานคลิปรายเพลย์ลิสต์ได้ · สวิตช์ที่เห็นบนจอเสมอ: ไม่เอา Shorts · ไม่เอา Live archive · ตัดคลิปช่องอื่นที่ปนมาทิ้ง
- 3ประมาณการก่อนกดบอกว่าจะได้ราวกี่คลิปและใช้โควตาเท่าไหร่จาก 10,000 หน่วยต่อวัน แล้วค่อยตัดสินใจ
- 4ดูดหลังบ้านกดแล้วเข้าหน้าสตูดิโอได้เลย ปิดหน้าเว็บได้ ระบบดูดต่อทีละช่อง คลิปทยอยโผล่ในคลัง
กฎเดินจากบนลงล่าง คลิปที่โผล่ซ้ำในกฎหลังถูกข้าม — กฎที่รับไว้ก่อนเป็นตัวตั้งชื่อ Series ให้คลิปนั้น แก้ปัญหาคลิปเดียวอยู่หลายเพลย์ลิสต์ โดยให้ลูกค้าเป็นคนเรียงว่าเพลย์ลิสต์ไหนสำคัญกว่า
ข้อจำกัดของ API ที่ต้องรู้: YouTube กรองวันที่ฝั่ง server ไม่ได้ · uploads playlist เรียงใหม่→เก่าแน่นอน จึงหยุดสแกนกลางคันได้ = ลดโควตาได้จริง · แต่เพลย์ลิสต์ธรรมดาเรียงตามที่เจ้าของจัด ต่อให้เอาแค่ 3 เดือนล่าสุดก็ยังต้องเปิดครบทุกหน้า สิ่งที่ลดโควตาบนเพลย์ลิสต์ได้จริงมีอย่างเดียวคือเพดานจำนวนคลิป
ป้ายกำกับคลิป — 3 แกนที่ไม่เกี่ยวกัน
ข่าวรายวันคือของที่หมดอายุเร็วแต่เป็นรายการหลัก · ไฮไลต์ที่ตัดมาคือของไม่มีวันหมดอายุแต่เป็นแค่ของอุดเวลา — ถ้ายัดรวมเป็นป้ายเดียวจะตีกันทันที เลยแยกเป็นแกนอิสระ
ผลกับผังโดยตรง: คลิปที่เลยอายุ ณ วันออกอากาศถูกตัดออกจากกองอัตโนมัติ ข่าววันนี้หลุดจากผังเองในวันที่ 8 ของ horizon โดยไม่ต้องมีใครไปลบ — และได้ประโยคที่ขายได้: “คลังนี้เลี้ยงช่องได้ 14 วันถ้าไม่อัปใหม่เลย แต่ Block ข่าวจะโหว่ตั้งแต่วันที่ 8”
ตัวเลขจากคลังจริง: เกินครึ่งของคลังดิบเป็น filler หรือ Shorts — ถ้าไม่แยกป้ายไว้ ผังจะเต็มไปด้วยคลิปสั้น
| ท้ายชื่อคลิปแล้วให้คนกดยืนยัน (ไม่ใช้ LLM) · เป็นแกนของขั้น “ไล่ตามตอน” และเป็นหน่วยที่ Autopilot ใช้ตัดสินหมวดโครงสร้างผัง 3 ชั้น
Schedule Template ผังแม่แบบ 24 ชม.
└── Block กล่องเวลามีชื่อ เช่น 13.00–16.00 "Today Update" ← ผู้ชมเห็นบน EPG
├── Play Slot คลิปจริง ยาวเท่าคลิป ไม่มี Cut ไม่มี Pad
└── Ad Slot ช่องโฆษณา ยาวตามความยาวคลิปที่เพิ่งเล่นเจ้าของช่องจัดแค่ชั้น Block ตามเวลา ส่วนเนื้อข้างในระบบเติมให้เองตาม สูตรเติม — เพราะคลิปที่จะออกพรุ่งนี้ส่วนใหญ่ยังไม่ถูกอัปวันนี้ ถ้าให้คนจัดเองทุกวันคือกลับไปเป็นงานประจำที่ไม่มีใครทำไหว · ใน Block เดียวมีทั้งคลิปที่คนปักเอง (Pinned Slot) และคลิปที่ระบบเติม ปนกันได้
กอง · สูตรเติม · Cooldown
เนื้อในของ Block มาจาก สูตรเติม ที่เป็น ลำดับขั้น — ขั้นแรกอาจเป็น “ข่าวล่าสุด 1 คลิป” แล้วขั้นถัดไป “หมุนคลังสารคดีจนเต็ม” · แต่ละขั้นหยิบของจาก กอง ที่ตั้งไว้กลางระดับสตูดิโอ สูตรเดียวเอาไปแปะได้หลาย Block แก้ทีเดียวมีผลทุกที่
กองหนึ่งระบุได้หลายหมวดและหลาย Series พร้อมกัน — ถ้าอยากให้รายการหนึ่งไปโผล่หลาย Block ให้ทำที่ฝั่งสูตร/Block ไม่ใช่ให้คลิปมีหลายหมวด (คลิปเดียวอยู่ 2 หมวดจะทำให้สัดส่วนหมวดต่อชั่วโมงนับซ้ำทันที)
cooldownDays: N = คลิปเดิมต้องห่างกันอย่างน้อย N วันก่อนกลับมาออกซ้ำ (ตั้งที่กอง เดินข้ามวันได้)
สั้น → คนดูเจอคลิปเดิมบ่อย · ยาว → ของสดกว่า แต่ถ้าคลังไม่พอ ระบบต้องไปหยิบของนอกกติกามาเติมแทน
นี่คือ trade-off หลักที่ simulator มีไว้ให้เห็นเป็นตัวเลขก่อนตัดสินใจ ไม่ต้องเดา
Resolve คือการรันสูตรเติมให้ได้ Play Slot จริง เกิดตอนใกล้ออกอากาศ ไม่ใช่ตอนวางผัง
เวลาถูกคุมที่ขอบ Block เท่านั้น
operator ไม่ปักเวลาจบของแต่ละ slot — slot ยาวเท่าคลิปจริงเสมอ ระบบเรียงต่อกันเอง ห้ามตัดคลิปกลางคันทุกกรณี (เป็นปัญหาแบรนด์ของเจ้าของคอนเทนต์ ไม่ใช่แค่ UX)
- 1. Filler Pool — คลิปสั้นกว่า 5 นาทีและ Shorts ที่แยกกองไว้ (โปรโมท ไฮไลต์ teaser)
- 2. ยืด Ad Slot — กินเศษที่เหลือ ไม่เกินเพดาน
maxStretchSec - 3. ยอมล้นเข้า Block ถัดไป — ดีกว่าตัดคลิปทิ้ง
Absorbing Block = Block ที่ยอมหดเมื่อโดนล้นใส่ — เริ่มช้าแต่จบตรงเวลาเดิม ทำให้ drift ตายในบล็อกนั้น ไม่สะสมข้ามวัน · ทุกผังควรมีอย่างน้อย 1 อันต่อช่วง
แบ่งคลิปเป็นท่อน แล้วโฆษณาไปคั่นระหว่างท่อน
ตั้งรายช่องที่หน้า "โฆษณา" ของช่องนั้น (ช่องข่าวคลิปสั้นกับช่องสารคดีคลิป 2 ชม. จังหวะโฆษณาคนละแบบ) — ตารางเทียร์บอกว่าคลิปยาวเท่านี้ควรแบ่งท่อนละประมาณกี่นาที เบรกคั่นกี่วินาที และท้ายคลิปกี่วินาที
จำนวนท่อน = ปัดใกล้สุดของ (ความยาวคลิป ÷ ท่อนละประมาณ) แล้วลดลงจนไม่มีท่อนสั้นกว่าขั้นต่ำ · ทุกท่อนยาวเท่ากัน เศษวินาทีตกที่ท่อนสุดท้าย
คลิป 50 นาที (ท่อนละ 20) → 3 ท่อน × 16:40 เบรก 2 ครั้ง · คลิป 22 นาที → 1 ท่อน ไม่มีเบรก
ไม่ขัดกติกา "ไม่มี Cut" เพราะเนื้อคลิปออกครบทุกวินาที แค่แบ่งการเล่นเป็นท่อน
ขนาดเบรกที่เลือกได้ = ขนาดที่มี Slate เตรียมไว้จริง (15 · 30 · 45 · 60 · 90 · 120 วินาที พร้อมลิงก์ M3U8) · Live In/Out Bumper ตั้งที่หน้าเดียวกัน แต่ใช้ตอนตัดเข้า-ออกไลฟ์ ไม่ใช่กับ ad break
ผังต้องไม่มีจอดำ — เติมแบบคลายเงื่อนไข
Block ที่กติกาหลักหาของไม่พอจะไม่ปล่อยจอดำ — ระบบคลายเงื่อนไขทีละชั้น: กองเดิมของ Block แบบไม่บังคับ evergreen → คลังทั้งช่อง → ยอมเลี่ยง Cooldown (แต่ห้ามซ้ำภายในวันเดียวกัน)
ทุกชั้นที่ไม่ใช่กติกาหลักถูกนับเป็น "เติมนอกกติกา" และรายงานเป็นชั่วโมงคู่กับ "เติมได้ 100%" เสมอ — เลข 100% จะได้ไม่หลอกตา ถ้าตัวเลขนอกกติกาสูงแปลว่าแหล่งคอนเทนต์ของ Block แคบไปหรือ Cooldown ยาวเกินกำลังคลัง