6 คะแนน โดย GN⁺ 2023-08-15 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทความเกี่ยวกับวิธีข้ามข้อจำกัดความเร็วในการดาวน์โหลดวิดีโอของ 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 ความคิดเห็น

 
GN⁺ 2023-08-15
ความคิดเห็นบน Hacker News
  • บทความเกี่ยวกับวิธีหลบเลี่ยงข้อจำกัดการดาวน์โหลดวิดีโอของ YouTube: ใช้ HTTP Range header เพื่อแบ่งการดาวน์โหลดออกเป็นส่วนเล็ก ๆ
  • HTTP Range header: สามารถระบุได้ในแต่ละคำขอว่าต้องการดาวน์โหลดส่วนใดของไฟล์
  • ผู้ใช้บางราย: สามารถหลบเลี่ยงข้อจำกัดและกู้คืนความเร็วในการรับส่งข้อมูลได้ด้วยการเพิ่มพารามิเตอร์การสืบค้นช่วง
  • มีรายงานว่าข้อจำกัดของ YouTube ถูกยกเลิกแล้ว: ผู้ใช้บางรายยังคงประสบปัญหาเรื่องการจำกัดอยู่
  • การเปลี่ยนแปลงเล็ก ๆ ของ YouTube: ทำให้เกิดปัญหากับเครื่องมือที่ต้องดาวน์โหลดไฟล์ MP4 จากแพลตฟอร์ม
  • ผู้ใช้บางรายพบความแตกต่างของคุณภาพวิดีโอ: ชี้ว่า YouTube อาจใช้ฟิลเตอร์แบบละเอียดเพื่อทำให้อาร์ติแฟกต์จากการบีบอัดดูนุ่มนวลขึ้น
  • การกระจายวิดีโอของ YouTube: ได้รับคำชมเรื่องความลื่นไหลแม้ในพื้นที่ที่การเชื่อมต่ออินเทอร์เน็ตไม่ดี
  • มีการถกเถียงถึงนัยทางจริยธรรมของการหลบเลี่ยงข้อจำกัดของ YouTube: บางคนมองว่าการเพิ่มประสิทธิภาพความเร็วของเบราว์เซอร์ทั่วไปเป็นสิ่งสมเหตุสมผล ขณะที่บางคนรู้สึกว่าการใช้ทรัพยากรของ YouTube มากขึ้นนั้นไม่ยุติธรรม
  • yt-dlp ที่กล่าวถึงในบทความ: ฟอร์กของ youtube-dl ที่พัฒนาด้วย Python และมีตัวแปล JavaScript แบบกำหนดเองสำหรับแปลงพารามิเตอร์