CASE STUDY / MUSE MUSIC

กดฟังเพลงได้แล้ว
แต่ผมยังอยากรู้จักมันมากกว่านั้น

MUSE Music เป็นโปรเจกต์ที่ผมลองพาเพลงออกจากแค่ช่องค้นหาและปุ่มเล่น ไปถึงเนื้อเพลง ความหมาย ความรู้สึก และเพลงที่เราเคยกลับไปฟังครับ

โจทย์ที่ผมตั้งให้ตัวเอง

เวลาฟังเพลงต่างภาษา ผมมักอยากอ่านเนื้อเพลงไปด้วยและรู้ว่าเพลงกำลังเล่าอะไร แต่ข้อมูลเหล่านี้กระจายอยู่หลายที่ MUSE เลยเริ่มจากคำถามว่า ถ้าอยู่ในที่เดียวกัน เราจะค้นเพลง เล่นเพลง อ่านเนื้อ และดูคำอธิบายได้ต่อเนื่องแค่ไหน

ผมไม่ได้ทำบริการสตรีมมิงใหม่ เพลงและวิดีโออาศัยแหล่งภายนอก ส่วน MUSE เป็นชั้นประสบการณ์ที่ช่วยค้น จัดเก็บ และตีความครับ

จากค้นเพลงถึงกลับมาฟังซ้ำ

ค้นและฟัง

ค้นเพลงผ่านการเชื่อมกับ YouTube แล้วเปิดหน้าเล่นโดยไม่ต้องย้ายไปมาระหว่างหน้าค้นหาและรายละเอียด

อ่านเนื้อเพลง

ดึงเนื้อเพลงจาก LRCLIB และมีทางใช้ transcript เมื่อข้อมูลเนื้อเพลงไม่พร้อม ข้อมูลจากแหล่งภายนอกจึงอาจไม่ครบทุกเพลง

ลองเข้าใจเพลง

เพิ่มการแปล วิเคราะห์อารมณ์ และสรุปด้วย AI เพื่อเป็นอีกมุมช่วยอ่าน ไม่ใช่คำแปลหรือความหมายที่ศิลปินรับรอง

จำสิ่งที่ชอบ

มีรายการโปรด ประวัติ และการตั้งค่าผู้ใช้ เพื่อกลับไปหาเพลงเดิมได้โดยไม่เริ่มใหม่ทุกครั้ง

งานเบื้องหลังที่ไม่ได้เห็นบนหน้าเล่น

ฝั่งหน้าบ้านใช้ Next.js และ TypeScript ส่วน API ใช้ Express.js กับ PostgreSQL จัดการข้อมูลผู้ใช้และเพลง ไฟล์ภาพอยู่ใน MinIO โปรเจกต์ยังมีการยืนยันตัวตนด้วย JWT, Google OAuth และตัวเลือกยืนยันสองขั้นตอน งานนี้ทำให้ผมต้องคิดเรื่องข้อมูลกับสิทธิผู้ใช้พร้อมกับหน้าตาเว็บ ไม่ใช่แค่ทำหน้าฟังเพลงให้เสร็จ

ในซอร์สมีโครงสร้างแยก frontend, backend, migration ฐานข้อมูล และชุดทดสอบไว้ชัดเจน ใครอยากดูว่าแต่ละส่วนต่อกันอย่างไร เปิดโค้ดได้เลยครับ ผมตั้งใจให้หน้านี้เล่าเหตุผลและข้อจำกัด ส่วนรายละเอียดระดับไฟล์อยู่ใน repository

สิ่งที่ยังต้องระวัง

การหาเนื้อเพลงหรือ transcript ขึ้นกับความพร้อมของแหล่งต้นทาง และผล AI อาจตีความเพลงผิดได้ ผมจึงมองส่วนวิเคราะห์เป็นเครื่องมือช่วยสำรวจ ไม่ใช่ข้อเท็จจริงตายตัว อีกอย่างคือเว็บที่มีผู้ใช้และไฟล์หลายประเภทต้องดูเรื่องสิทธิการเข้าถึงและการดูแลข้อมูลต่อเนื่องเสมอ

บทเรียนของงานนี้: การทำให้ฟีเจอร์จำนวนมากอยู่ในเว็บเดียวกันยากกว่าการทำฟีเจอร์แต่ละอันแยกกัน จุดที่ต้องระวังคือการไหลของข้อมูลและการบอกผู้ใช้ว่าอะไรเป็นข้อมูลต้นทาง อะไรเป็นผลจาก AI

ดูตัวโปรเจกต์

ดูซอร์สและเอกสารประกอบก่อน หรือทดลองหน้าเว็บหากบริการยังเปิดอยู่ครับ

เปิดซอร์สโค้ด

ลองเปิดเว็บไซต์ ↗