- บทความเกี่ยวกับวิธีข้ามข้อจำกัดความเร็วในการดาวน์โหลดวิดีโอของ YouTube
- เป็นมาตรการจำกัดเพื่อสร้างรายได้จากยอดดูโฆษณาของ YouTube และป้องกันการรับชมหรือดาวน์โหลดวิดีโอผ่านไคลเอนต์ที่ไม่เป็นทางการ
- ขั้นตอนแรกของการข้ามการจำกัดความเร็วคือสื่อสารกับ YouTube API เพื่อค้นหา URL จริงที่มีไฟล์วิดีโออยู่
- YouTube ใช้พารามิเตอร์เฉพาะชื่อ
n ใน URL ของไฟล์ส่วนใหญ่ ซึ่งต้องถูกแปลงด้วยอัลกอริทึม JavaScript ที่อยู่ในไฟล์ base.js พารามิเตอร์นี้ทำหน้าที่เป็นความท้าทายเพื่อตรวจสอบว่าการดาวน์โหลดเริ่มต้นจากไคลเอนต์ "ทางการ" หรือไม่
- อัลกอริทึม JavaScript ถูกทำให้อ่านยากและเปลี่ยนแปลงบ่อย จึงไม่สมเหตุสมผลที่จะพยายามทำวิศวกรรมย้อนกลับเพื่อทำความเข้าใจ วิธีแก้คือดาวน์โหลดไฟล์ JavaScript แล้วดึงโค้ดของอัลกอริทึมออกมา จากนั้นส่งพารามิเตอร์
n เข้าไปเพื่อรัน
- YouTube ยังคงใช้กฎจำกัดความเร็วดาวน์โหลดแบบแปรผันตามขนาดและความยาวของวิดีโอ เพื่อข้ามข้อจำกัดนี้ การดาวน์โหลดสามารถแบ่งเป็นหลายส่วนย่อยได้โดยใช้ HTTP Range header
- YouTube แจกจ่ายช่องวิดีโอและช่องเสียงเป็นไฟล์แยกกันสองไฟล์ ขั้นตอนสุดท้ายคือรวมทั้งสองช่องให้เป็นไฟล์เดียว ซึ่งสามารถทำได้ด้วย ffmpeg
- ปัจจุบันมีหลายโปรเจ็กต์ที่ใช้เทคนิคเหล่านี้เพื่อข้ามข้อจำกัดที่ตั้งขึ้นเพื่อป้องกันการดาวน์โหลดวิดีโอของ YouTube โปรเจ็กต์ที่ได้รับความนิยมมากที่สุดคือ yt-dlp ที่พัฒนาด้วย Python (เป็นฟอร์กของ youtube-dl) แต่มี JavaScript interpreter แบบคัสตอมของตัวเองสำหรับแปลงพารามิเตอร์
n
- บทความอธิบายกระบวนการและให้โค้ดสไนเป็ต ทำให้นักวิศวกรรมซอฟต์แวร์ระดับเริ่มต้นเข้าถึงได้
1 ความคิดเห็น
ความคิดเห็นบน Hacker News