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

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

ประกอบคำสั่ง yt-dlp สำหรับวิดีโอบน Reddit — รวมถึงขั้นตอนรวมไฟล์ที่ทำให้มีเสียงกลับมา

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

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

yt-dlp --merge-output-format mp4 --no-playlist --embed-metadata https://www.reddit.com/r/videos/comments/xxxxxx/
พื้นฐาน

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

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

จำกัดความสูงไว้ 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)
ล้างค่า

ทำไมวิดีโอจาก Reddit ถึงไม่มีเสียง

Reddit เก็บภาพกับเสียงเป็นคนละไฟล์ ถ้าไม่มี ffmpeg yt-dlp จะโหลดเฉพาะแทร็กภาพและไม่มีอะไรมารวมเสียงเข้าไป ไฟล์เล่นได้แต่เงียบ และไม่มีข้อความผิดพลาดใดอธิบายว่าเพราะอะไร

ติดตั้ง ffmpeg แล้วชุดสำเร็จรูปที่นี่จัดการที่เหลือให้ โพสต์แกลเลอรีถูกนับเป็นเพลย์ลิสต์ โหมดทั้งเพลย์ลิสต์จึงดึงได้ครบทุกรายการ

โฮสต์ v.redd.it คือที่ที่ปัญหาส่วนใหญ่เริ่มต้น ลิงก์ v.redd.it ตรง ๆ โหลดได้สะอาด แต่วิดีโอเดียวกันเมื่อเจอผ่านฟีดของ subreddit หรือหน้า old.reddit.com จะมาในรูปที่ถูกห่อด้วย URL หน้า Reddit และ yt-dlp รุ่นเก่าบางทีก็แกะห่อไม่ออก ให้อัปเดตก่อน — yt-dlp -U — แล้วค่อยแตะการตั้งค่าอื่นใดก็ตาม ตัวดึงข้อมูลสำหรับ Reddit โดยเฉพาะถูกรื้อใหม่มาแล้วหลายครั้ง และไบนารีอายุสามเดือนก็เก่ากว่ารูปโฉมปัจจุบันของเว็บเสียอีก

แกลเลอรีคืออีกครึ่งหนึ่ง Reddit รวมแกลเลอรีภาพไว้พร้อมวิดีโออยู่ข้างใน และ yt-dlp นำเสนอมันเป็นเพลย์ลิสต์ของรายการแยกกัน — ภาพทีละรูป วิดีโอเป็นรายการของตัวเอง ถ้าเอาแค่วิดีโอ ปิดเพลย์ลิสต์แล้ว yt-dlp จะเอามาเฉพาะวิดีโอ ถ้าเอาทุกอย่าง คงโหมดทั้งเพลย์ลิสต์ไว้และเพิ่มไฟล์บันทึกรายการ เพื่อให้รอบถัดไปหยิบเฉพาะรายการที่พลาดไปในรอบแรก

subreddit ที่ถูกกักกันและ NSFW ต้องใช้ cookies — ตัวเลือก cookies จากเบราว์เซอร์แบบเดียวกับที่อื่นทุกแห่ง — เพราะ Reddit ไม่ยอมส่งมอบ URL ของมีเดียแก่คำขอที่ไม่ระบุตัวตน โพสต์ที่ถูกลบคือสิ่งเดียวที่ไม่มีตัวเลือกใดไปถึง โพสต์ถูกลบเมื่อไหร่ รายการบน CDN ของมีเดียก็หายตามไป และมิเรอร์ที่เคยมีก็เลือนหายมานานแล้ว สิ่งที่ยังใช้ได้คือ Wayback Machine สำหรับตัวหน้าเว็บนั้นเอง แม้มันจะอยู่นอกขอบเขตที่ yt-dlp ดึงได้ก็ตาม

Reddit เข้ารหัสใหม่ทุกอย่างที่โฮสต์เอง และเพดานก็ต่ำ คือ v.redd.it สูงสุดแค่ 720p การจำกัดความสูงที่ 1080p จึงหาอะไรเหนือ 720p ไม่เจอแล้วคืนไฟล์ 720p กลับมาให้ — นั่นคือขีดจำกัดของแพลตฟอร์ม ไม่ใช่การโหลดที่ล้มเหลว อีกเรื่องที่ควรรู้คือโหมดเอาเฉพาะเสียง -x บนวิดีโอ Reddit ดึงแทร็กเสียงออกมาเหมือนที่อื่น และเป็นวิธีที่เร็วที่สุดในการเก็บเฉพาะเสียงจากโพสต์ที่คุณไม่ต้องการวิดีโอของมัน

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

ทำไมวิดีโอ Reddit ของผมไม่มีเสียง
Reddit เก็บภาพกับเสียงแยกกัน จึงต้องรวมเข้าด้วยกัน และขั้นตอนนั้นต้องใช้ ffmpeg ไฟล์ที่เงียบเกือบทุกครั้งหมายถึงไม่มี ffmpeg
โพสต์ NSFW ใช้ได้ไหม
ต้องใช้เซสชันที่ล็อกอินและเปิดการตั้งค่า 18+ ไว้ ส่งเข้าไปด้วย --cookies-from-browser
โหลดโพสต์แกลเลอรีทั้งชุดได้ไหม
ตั้งการจัดการเพลย์ลิสต์เป็นทั้งเพลย์ลิสต์ yt-dlp นับแกลเลอรีเป็นเพลย์ลิสต์