ข้ามไปที่เนื้อหา
yt-dlp

YouTube เป็น MP3 ด้วย yt-dlp

ประกอบคำสั่ง yt-dlp ที่เปลี่ยนวิดีโอ YouTube ให้เป็นไฟล์ MP3 ที่มีแท็กและภาพปก

ทำอย่างไรให้ได้ MP3 ที่ใช้งานได้จริง

การดึงเสียงคือการแปลงไฟล์ จึงต้องมี ffmpeg เสมอ — นี่คือสาเหตุที่คำสั่งล้มเหลวบนเครื่องที่เพิ่งติดตั้งใหม่ ดีที่สุด (VBR) คือค่าเริ่มต้นที่ถูกต้อง เพราะอัตราส่วนขนาดต่อคุณภาพดีที่สุด และ bitrate คงที่ที่สูงกว่าก็เพิ่มคุณภาพที่ต้นทางไม่เคยมีไม่ได้

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

--audio-quality 0 คือค่าที่คนเข้าใจผิดมากที่สุด มันไม่ได้แปลว่า "คุณภาพศูนย์" แต่เป็นค่าที่ดีที่สุดของบิตเรตแบบแปรผัน เฉลี่ยราว 245 kbps และสเกลนี้เดินกลับทาง คือ 0 ดีที่สุดและ 9 แย่ที่สุด บิตเรตแบบแปรผันจะใช้บิตมากขึ้นในช่วงที่เสียงแน่นและใช้น้อยลงในช่วงเงียบ ไฟล์ VBR ขนาดเท่ากันจึงมักฟังดีกว่าไฟล์บิตเรตคงที่ ถ้ามีอุปกรณ์ที่ยืนกรานว่าต้องเป็นบิตเรตคงที่ ให้ระบุไปตรง ๆ — --audio-quality 320K — แทนที่จะเดาตัวเลขบนสเกล 0–9

คำถามที่สำคัญกว่าคือควรแปลงหรือเปล่า YouTube ส่งเสียงมาเป็น Opus หรือ AAC ซึ่งไม่ใช่ MP3 ทั้งคู่ การขอ MP3 จึงหมายถึงการเข้ารหัสใหม่เสมอ ไฟล์จะถูกถอดรหัสแล้วบีบอัดอีกครั้ง และคุณภาพหายไปเล็กน้อยทุกครั้ง ถ้าไม่มีอะไรของคุณที่ต้องการนามสกุล .mp3 โดยเฉพาะ ให้เลือก "ดีที่สุด (ไม่แปลง)" แทน เร็วกว่า ไม่ต้องใช้ ffmpeg เลย และผลลัพธ์ใกล้เคียงต้นฉบับมากกว่าไฟล์ MP3 ใด ๆ แปลงเมื่อเครื่องเสียงรถ โปรแกรมดีเจ หรือมือถือเครื่องเก่าไม่เปิดทางเลือกอื่นให้คุณ

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

ไม่บังคับ ถ้าเว้นว่างไว้ คำสั่งจะจบด้วยคำว่า URL ให้คุณเติมเอง

คำสั่งของคุณ

yt-dlp -x --audio-format mp3 --audio-quality 0 --no-playlist --embed-thumbnail --embed-metadata -o '%(artist,uploader)s - %(title)s.%(ext)s' 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
พื้นฐาน

เฉพาะเสียงจะดึงแทร็กเสียงออกมาและทิ้งภาพไป

เสียง

ชนิดไฟล์ที่เสียงจะถูกแปลงไป

VBR ให้อัตราส่วนขนาดต่อคุณภาพดีที่สุด ส่วน bitrate คงที่คาดเดาขนาดได้ง่ายกว่า

เพลย์ลิสต์และช่อง

จะทำอย่างไรเมื่อลิงก์เป็นทั้งวิดีโอและเพลย์ลิสต์ในเวลาเดียวกัน

ใช้ได้ทั้งช่วงและรายการ เช่น 1-10,15 หรือ -5::2 เพื่อเอาเว้นหนึ่งรายการนับจากท้าย

ตัวเลือกขั้นสูง (1)

จดว่าดาวน์โหลดอะไรไปแล้ว การรันซ้ำจึงข้ามรายการเหล่านั้น นี่คือวิธีทำให้ช่องหนึ่งอัปเดตตามต้นทางเสมอ

เมทาดาทาและภาพปก
ตัวเลือกขั้นสูง (3)
ไฟล์และโฟลเดอร์

ชื่อฟิลด์เขียนไว้ใน %(...)s เครื่องหมายทับจะสร้างโฟลเดอร์

ตัวเลือกขั้นสูง (4)

ที่ที่จะเขียนไฟล์ลงไป ใช้ร่วมกับรูปแบบชื่อไฟล์ข้างบนจะได้โฟลเดอร์ย่อย

ความยาวสูงสุดของชื่อไฟล์ นับเป็นตัวอักษร

วิธีเลี่ยงปัญหา
ตัวเลือกขั้นสูง (3)

เลิกใช้แล้ว ให้ใช้ --add-headers แทน ที่ยังเก็บไว้เพราะคู่มือเก่าจำนวนมากยังใช้อยู่

เลิกใช้แล้ว ให้ใช้ --add-headers แทน

ตัวเลือกเฉพาะของแต่ละเว็บ เช่น youtube:player_client=web

ล้างค่า

คำถามที่พบบ่อย

ควรเลือกคุณภาพ MP3 แบบไหน
ส่วนใหญ่เลือกดีที่สุด (VBR) เพราะอัตราส่วนขนาดต่อคุณภาพดีที่สุด ส่วน 320 kbps คุ้มก็ต่อเมื่อมีอะไรปลายทางบังคับให้ใช้ bitrate คงที่ ทั้งสองแบบไม่ได้เพิ่มคุณภาพที่ต้นทางไม่มีอยู่แล้ว
ทำไมการแยก MP3 ถึงล้มเหลว
การแปลงเสียงต้องใช้ ffmpeg ติดตั้งแล้วตรวจด้วย ffmpeg -version
VBR หรือ bitrate คงที่ดี
VBR ใช้บิตตรงที่จำเป็น ทำให้ไฟล์เล็กกว่าที่คุณภาพเสียงพอกัน ใช้ bitrate คงที่เฉพาะเมื่ออุปกรณ์หรือโปรแกรมบังคับ
แปลงทั้งเพลย์ลิสต์เป็น MP3 ได้ไหม
ได้ — ผลลัพธ์แบบเสียงคู่กับโหมดทั้งเพลย์ลิสต์ เพิ่มไฟล์บันทึกรายการด้วย เพื่อให้การรันซ้ำไม่ต้องแปลงใหม่ทั้งหมด