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

ตัวสร้างคำสั่ง yt-dlp สำหรับ Twitch

ประกอบคำสั่ง yt-dlp สำหรับ VOD คลิป และสตรีมสดของ Twitch พร้อมตัวเลือกที่ทำให้การบันทึกยาว ๆ รอดได้

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

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

yt-dlp --merge-output-format mp4 -o '%(uploader)s - %(title)s.%(ext)s' -N 4 --live-from-start https://www.twitch.tv/videos/1234567890
พื้นฐาน

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

วิดีโอและคุณภาพ

จำกัดความสูงไว้ yt-dlp ยังคงเลือกสตรีมที่ดีที่สุดในระดับนั้นหรือต่ำกว่า

ชนิดไฟล์ที่ใช้รวมสตรีมภาพกับเสียงที่แยกกันไว้ด้วยกัน

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

ใช้แทนช่องเลือกคุณภาพ สำหรับคนที่รู้ไวยากรณ์ของฟอร์แมตอยู่แล้ว

บรรจุสตรีมใหม่โดยไม่เข้ารหัสใหม่ เร็วและไม่สูญเสียคุณภาพ

เข้ารหัสวิดีโอใหม่ ช้าและคุณภาพลด — ใช้เมื่อ remux ไม่ไหวเท่านั้น

เสียง

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

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

คำบรรยาย

การฝังจะใส่คำบรรยายไว้ในตัววิดีโอ ส่วนการบันทึกจะเขียนไฟล์ .srt แยกไว้ข้าง ๆ

คั่นด้วยจุลภาค ใส่ all ถ้าต้องการทุกภาษาที่มี

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

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

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

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

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

ช่วงและบท
ตัวเลือกขั้นสูง (2)

ช่วงเวลาแบบ *00:01:30-00:03:00 หรือชื่อบท เครื่องหมายดอกจันข้างหน้าหมายถึงเป็นเวลา

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

ตัดช่วงที่ชุมชนทำเครื่องหมายไว้ออกจากไฟล์ โดยอาศัยข้อมูลของ SponsorBlock

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

คงช่วงเหล่านั้นไว้แต่ทำเครื่องหมายให้ เพื่อให้คุณข้ามเอง

ไฟล์และโฟลเดอร์

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

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

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

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

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

YYYYMMDD หรือวันที่แบบสัมพัทธ์อย่าง now-1month

YYYYMMDD หรือวันที่แบบสัมพัทธ์

ข้ามไฟล์ที่เล็กกว่านี้ รับค่าอย่าง 5M, 500K

ข้ามไฟล์ที่ใหญ่กว่านี้

จำนวนไฟล์ที่จะดาวน์โหลดก่อนหยุด

เครือข่าย

เช่น 2M หรือ 500K มีประโยชน์เมื่อคุณต้องการแบนด์วิดท์ที่เหลือไปทำอย่างอื่น

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

ช่วยเร่งสตรีมที่แบ่งเป็นชิ้น เริ่มที่ 4 กำลังพอดี

จะลองชิ้นที่ล้มเหลวซ้ำกี่ครั้ง ใส่ infinite ก็ได้

ที่อยู่ proxy แบบ HTTP, HTTPS หรือ SOCKS

ทำให้คำขอดูเหมือนมาจากเบราว์เซอร์จริง เป็นวิธีแก้ที่ใช้กันเมื่ออยู่ ๆ ก็เจอ 403

การเข้าสู่ระบบและ cookies

อ่านเซสชันที่คุณล็อกอินไว้โดยตรง จำเป็นสำหรับเนื้อหาส่วนตัว จำกัดอายุ หรือเฉพาะสมาชิก

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

ไฟล์ cookies.txt รูปแบบ Netscape ที่ส่งออกมาจากเบราว์เซอร์ของคุณ

สตรีมสด
ตัวเลือกขั้นสูง (2)

คอยตรวจจนกว่าสตรีมที่นัดไว้จะเริ่ม MIN-MAX คือช่วงวินาทีระหว่างการตรวจแต่ละครั้ง

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

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

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

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

ผลลัพธ์และการดีบัก
ตัวเลือกขั้นสูง (2)
ล้างค่า

VOD คลิป และสตรีมสด

VOD ของ Twitch ยาวมาก การดึง fragment พร้อมกันจึงต่างกันจริง ๆ และการระบุช่วงเวลามักสมเหตุสมผลกว่าการโหลดแปดชั่วโมงเพื่อเก็บไว้ห้านาที

สำหรับสตรีมสด การบันทึกตั้งแต่ต้นจะดึงช่วงแรกกลับมาได้ตราบใดที่ Twitch ยังเก็บไว้ เลือก MKV เถอะ ไฟล์ MKV ที่ถูกตัดกลางคันมักยังเล่นได้ ส่วน MP4 ที่ถูกตัดระหว่างเขียนมักเล่นไม่ได้

Twitch เสิร์ฟ VOD เป็น HLS segments และ CDN ของมันใจกว้าง — ข้อจำกัดจริงคือเน็ตของคุณเอง เพราะฉะนั้น fragment ขนานช่วยได้จริงที่นี่ ตรงข้ามกับที่ Instagram มันทำร้ายการดาวน์โหลด VOD เฉพาะผู้ติดตามต้องใช้ cookies จากบัญชีที่ติดตามแบบจ่ายเงินของช่องนั้น เซสชันที่ดูไม่ได้ก็ดาวน์โหลดไม่ได้ ไฮไลต์เป็นรายการแยก ไม่ใช่ซับเพลย์ลิสต์ของ VOD — ให้ดึงด้วย URL ของมันเองแต่ละรายการ

คลิปเป็นตัวดึงข้อมูลอีกตัวพร้อมเพดานของตัวเอง — คลิปสูงสุดแค่คุณภาพของต้นทางที่มันถูกตัดออกมา มักเป็น 1080p60 และ URL คลิปจะไม่ให้ VOD เต็มที่มันมาจาก อยากเก็บช่วงหนึ่งของ VOD ให้โหลด VOD แล้วตัดในเครื่อง หรือใช้ช่วงเวลา: --download-sections รับกรอบเวลาได้โดยไม่ต้องโหลดแปดชั่วโมงเพื่อเก็บห้านาที และมันเข้าคู่กับเมทาดาทาบทได้เองตามธรรมชาติ

โฆษณาเคยถูกอบไปกับ segment ของ VOD Twitch เลย — ตัวดึงข้อมูล Twitch ของ yt-dlp ตอนนี้ตัดมันออกให้ แต่เฉพาะรุ่นใหม่ ๆ ไบนารีเก่าจะได้รายงานที่มีช่วงโฆษณาแทรกอยู่ อัปเดตเมื่อไหร่ที่ VOD มีรอยตัดอธิบายไม่ได้ กำแพงผู้ไม่ติดตามแบบจ่ายเงินคือขอบเขตอีกด้าน ไม่มีตัวเลือกใดไปถึง VOD เฉพาะผู้ติดตามได้ถ้าไม่มีเซสชัน และไม่มีวิธีปลอมเซสชันแบบนั้น

เรื่องแชท: Twitch เก็บแชทไว้เป็น artifact แยกต่างหาก และ yt-dlp เซฟมันเป็น JSON ผ่าน --write-subs ที่ถูกจับคู่ไปยังมัน — ไฟล์นั้นไม่ใช่รูปแบบคำบรรยาย ส่วนเครื่องมือที่เรนเดอร์แชทลงในวิดีโอเป็นอีกขั้นตอนหนึ่ง ที่เหลือเดินตามรูปทรงที่คุณคาดหวัง: ไฟล์บันทึกรายการสำหรับซิงก์ช่องต่อเนื่อง MKV สำหรับไลฟ์ MP4 สำหรับ VOD และเลขลำดับเพลย์ลิสต์เฉพาะเมื่อรายการหลายส่วนทำให้มันมีความหมาย

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

โหลด VOD ของ Twitch อย่างไร
ใส่ลิงก์ VOD ไปเลย ตัวไฟล์ยาวมาก จึงควรเพิ่มจำนวน fragment ที่ดึงพร้อมกันเพื่อความเร็ว และใช้ช่วงเวลาถ้าต้องการแค่บางส่วน
บันทึกสตรีมสดของ Twitch ได้ไหม
ได้ ในกรณีที่สตรีมยอมให้ทำ การบันทึกตั้งแต่ต้นจะเริ่มจากจุดเริ่มแทนที่จะเป็นขณะปัจจุบัน MKV ทนต่อการบันทึกที่หลุดกลางคันได้ดีกว่า MP4
คลิปใช้ได้ไหม
ได้ ลิงก์คลิปใช้ได้ทันทีและไม่ต้องใช้ตัวเลือกพิเศษ
แล้ว VOD ที่เฉพาะผู้สมัครสมาชิกล่ะ
ต้องใช้เซสชันที่สมัครสมาชิกอยู่: --cookies-from-browser กับบัญชีที่ถือสมาชิกภาพนั้น