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

ตัวสร้างคำสั่ง yt-dlp สำหรับ X (Twitter)

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

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

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

yt-dlp --merge-output-format mp4 --no-playlist -o '%(uploader_id)s - %(id)s.%(ext)s' https://x.com/user/status/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)
ล้างค่า

ข้อควรรู้สำหรับ X

ใช้ได้ทั้งลิงก์ x.com และ twitter.com สิ่งที่คนเรียกว่า GIF บน X จริง ๆ แล้วคือวิดีโอ MP4 สั้น ๆ จึงดาวน์โหลดเหมือนวิดีโอทั่วไป ถ้าต้องการ GIF จริง ๆ ค่อยแปลงทีหลัง

โพสต์ที่มีเนื้อหาละเอียดอ่อนต้องใช้เซสชันที่ล็อกอินและเปิดการตั้งค่าที่เกี่ยวข้องไว้ รูปแบบชื่อไฟล์เริ่มต้นตั้งชื่อตามผู้เขียนกับ id ของโพสต์ ทำให้โฟลเดอร์ที่เต็มไปด้วยไฟล์แบบนี้ยังพอดูรู้เรื่อง

X เปลี่ยนหน้าตา API ของตัวเองมาแล้วหลายครั้ง ผลที่จับต้องได้คือบทแก้ตัวดึงข้อมูลมาถึงในอัปเดตของ yt-dlp ภายในไม่กี่วัน — เครื่องที่ติดตั้งเกินกว่าสองสามสัปดาห์คือที่อยู่จริงของรายงาน "X พัง" ส่วนใหญ่ อัปเดตก่อนแล้วค่อยดีบั๊ก: yt-dlp -U การเข้าถึงแบบแขกมาบ้างไปบ้าง พอถูกถอนไป เซสชันที่ล็อกอินพร้อม cookies คือเส้นทางที่ยังใช้ได้ และมันยังเป็นเส้นทางเดียวที่เข้าถึงสื่อละเอียดอ่อนได้ด้วย

เธรดกับโพสต์อ้างอิงคือที่ที่ URL เริ่มงง ทวีตที่มีวิดีโอจะฝังวิดีโอนั้นไว้ วิดีโอเดียวกันบนแท็บสื่อของโปรไฟล์เป็นรายการแยกต่างหาก สำหรับทั้งบัญชี URL แท็บสื่อดึงทุกอย่างที่โพสต์มาพร้อมสื่อแบบแบ่งหน้า และไฟล์บันทึกรายการบวกการทำต่อแม้เจอข้อผิดพลาดคอยจัดการโพสต์ที่ถูกลบซึ่งบัญชีที่ขยันโพสต์ย่อมสะสมไว้เป็นเรื่องปกติ การดาวน์โหลดจาก URL การค้นหาถูกกะเกณฑ์ไม่ให้รองรับที่นี่โดยเจตนา: ผลลัพธ์เลื่อนไหลต่างกันในแต่ละคำขอ และไฟล์บันทึกรายการกับการค้นหาที่ขยับตัวไม่มีความหมายอะไร

X เสิร์ฟวิดีโอเป็น fragment ของ HLS พร้อมทางเลือกสำรอง MP4 ในกรณีส่วนใหญ่ การรวมไฟล์จึงเกิดขึ้นบ่อย และ ffmpeg คือสิ่งแรกที่ต้องเช็กในบรรดาสิ่งที่ต้องติดตั้ง โพสต์ "GIF" เป็นข้อยกเว้นที่ควรรู้ มันมาเป็น MP4 เหมือนทุกอย่างอื่น ส่วนการแปลงเป็น GIF จริงภายหลังเป็นงานของ ffmpeg ไม่ใช่ของ yt-dlp — และ WebM วนซ้ำมักตรงใจผู้ส่งกว่าอยู่แล้ว

โพสต์จำกัดอายุและสื่อละเอียดอ่อนคือกำแพงที่แกร่งที่สุด: การตั้งค่าอยู่ในบัญชี ไม่ได้อยู่ในคำสั่ง ล็อกอินผ่านเบราว์เซอร์สักครั้ง เปิดการตั้งค่าสื่อละเอียดอ่อน ส่ง cookies ให้ไป ก็ใช้ได้ — ไม่มีวิธีกลาย ๆ ที่ปราศจาก cookies เพราะ X ตรวจเซสชันที่ฝั่งเซิร์ฟเวอร์ โพสต์ที่ถูกลบเป็นแบบเดียวกับที่อื่นทุกแห่ง หายคือหาย และมิเรอร์ที่เคยเก็บสำเนาไว้ก็ปิดตัวไปนานหลายปีแล้ว

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

ทำไมโพสต์จำกัดอายุบน X ถึงโหลดไม่ได้
เนื้อหาละเอียดอ่อนต้องใช้เซสชันที่ล็อกอิน ให้ใช้ --cookies-from-browser กับบัญชีที่เปิดการตั้งค่านั้นไว้
โหลด GIF จาก X อย่างไร
จริง ๆ มันคือวิดีโอ MP4 ไม่ใช่ GIF และโหลดเหมือนวิดีโออื่น ถ้าต้องการ GIF จริง ๆ ค่อยแปลงทีหลัง
เลือกคุณภาพวิดีโอบน X ได้ไหม
ได้ X ปล่อยหลายเวอร์ชัน จำกัดความสูงจากช่องเลือกคุณภาพ หรือใช้ -F ดูรายการก่อนก็ได้