วิดีโอและคำบรรยาย · ตัวดาวน์โหลดสื่อโดยตรง
วิธีที่เบราว์เซอร์ดาวน์โหลดไฟล์จากลิงก์โดยตรงด้วยการดึงข้อมูลและ Blob
· มันทำงานอย่างไร
ดาวน์โหลด เบราว์เซอร์-apis cors
เดินผ่านไปป์ไลน์ที่เครื่องมือเบราว์เซอร์ใช้เพื่อเปลี่ยนลิงก์โดยตรงเป็นไฟล์ที่บันทึกไว้: ดึงข้อมูลไบต์ ถือเป็น Blob และมอบให้กับแอตทริบิวต์การดาวน์โหลด อธิบายว่าทำไมไม่จำเป็นต้องใช้เซิร์ฟเวอร์ในขั้นตอนใดๆ
ลิงก์นี้จะเปิดโปรแกรมเล่นแทนการบันทึกไฟล์ การคลิกลิงก์ MP4 โดยตรงหรือ MP3 มักจะเล่นแบบอินไลน์ ซึ่งเป็นปัญหาที่ผู้ดาวน์โหลดแก้ไข
การคลิกลิงก์ MP3 โดยตรงอาจเปิดเครื่องเล่นได้เนื่องจากเบราว์เซอร์รู้วิธีเล่นประเภท MIME นั้น การบันทึกไบต์เดียวกันเป็นการดำเนินการที่แยกจากกัน คำสำคัญนั้นตรงไปตรงมา: ลิงก์ไปยังการตอบกลับไฟล์จริง ไม่ใช่หน้าเว็บที่มีโปรแกรมเล่นหรือรายการสื่อส่วนต่างๆ ToolAcre สร้างความแตกต่างนี้ก่อนที่จะเสนอการดาวน์โหลด และไม่แสร้งว่าเพจ URL เป็นไฟล์ URL
ขั้นตอนที่หนึ่ง: fetch() ถามโฮสต์เกี่ยวกับไบต์ — คำขอ GET ไปยังโฮสต์ที่ประกาศจะเป็นอย่างไรและสิ่งใดที่กลับมา
หลังจากที่คุณเลือกตรวจสอบลิงก์ เบราว์เซอร์อาจส่งคำขอ HEAD ไปยัง URL ที่คุณให้ไว้เพื่อตรวจสอบสถานะ ประเภท และความยาว การดึงไฟล์จะใช้คำขอ GET ไปยังโฮสต์นั้น ไม่ใช่พร็อกซี ToolAcre คำขอจงใจละเว้นข้อมูลรับรอง ดังนั้นโฮสต์ที่ต้องการการเข้าสู่ระบบของคุณจึงอาจปฏิเสธได้ เซิร์ฟเวอร์ระยะไกลยังต้องอนุญาตให้อ่านสคริปต์ข้ามต้นทางด้วย หาก CORS บล็อกการเข้าถึง เครื่องมือจะอธิบายการปฏิเสธแทนที่จะกำหนดเส้นทางผ่านรีเลย์ที่ซ่อนอยู่ การเปลี่ยนเส้นทางสามารถเปลี่ยนปลายทางได้ ดังนั้นโปรดตรวจสอบโฮสต์ที่ประกาศไว้
ขั้นตอนที่สอง: เนื้อหาการตอบสนองกลายเป็น Blob - วิธีรวบรวมไบต์ในหน่วยความจำและเหตุใด Blob จึงมีประเภท MIME
เนื้อหาการตอบสนองจะถูกอ่านเป็นกระแสข้อมูลของไบต์ ความคืบหน้าสามารถใช้ Content-Length เมื่อโฮสต์เปิดเผยข้อมูลนั้น หากไม่ทราบความยาว เครื่องมือสามารถแสดงจำนวนไบต์ที่ได้รับแต่ไม่ใช่เปอร์เซ็นต์ที่เชื่อถือได้ โดยจะบังคับใช้เพดานหน่วยความจำในขณะที่รวบรวมชิ้นส่วน จากนั้นประกอบ Blob ด้วยประเภทเนื้อหาที่ส่งคืน วิธีนี้จะปลอดภัยกว่าการโทร response.blob() บนสตรีมแบบไม่จำกัด แต่ไม่ใช่การสตรีมหน่วยความจำไปยังดิสก์เป็นศูนย์: Blob ที่เสร็จสมบูรณ์ยังคงใช้พื้นที่ในเซสชันเบราว์เซอร์ของคุณ
ขั้นตอนที่สาม: URL.createObjectURL และแอตทริบิวต์การดาวน์โหลด — วิธีหยดชั่วคราว: URL บวกจุดยึดทริกเกอร์กล่องโต้ตอบบันทึก
Blob คือข้อมูลในหน่วยความจำ ไม่ใช่ที่อยู่อินเทอร์เน็ต เบราว์เซอร์สามารถสร้างหยดชั่วคราว: object URL และแนบไปกับจุดยึดด้วยชื่อไฟล์ดาวน์โหลด การคลิกที่จุดยึดนั้นจะขอให้เบราว์เซอร์บันทึกไบต์ ชื่อไฟล์อาจมาจากส่วนหัวของการจัดการเนื้อหาหรือเส้นทาง URL แทนที่จะมาจากชื่อหน้า เนื่องจากขณะนี้ลิงก์เป็น Blob ของหน้าเดียวกัน URL เบราว์เซอร์จึงสามารถบันทึกผลลัพธ์ได้โดยไม่ต้องโฮสต์บน ToolAcre ยังควรตรวจสอบส่วนขยายและประเภท MIME ก่อนที่จะเปิดไฟล์จากแหล่งที่ไม่คุ้นเคย
ตัวอย่างการทำงาน: บันทึกตอนของพอดคาสต์จากลิงก์ที่แนบมา - ติดตามหนึ่งรายการ MP3 จากการวาง URL ไปยังไฟล์บนดิสก์
ลองนึกภาพผู้เผยแพร่พอดแคสต์เปิดเผยกล่องที่ได้รับอนุญาต URL ที่ลงท้ายด้วย Episode.mp3 วางที่อยู่ที่แน่นอน ตรวจสอบโฮสต์ที่ประกาศ และใช้ลิงก์ตรวจสอบ หากอนุญาต HEAD ก็อาจแสดง audio/mpeg และจำนวนไบต์ที่คาดหวัง จากนั้น Fetch จะขอไบต์ MP3 จากผู้จัดพิมพ์ จากนั้นสตรีมลงใน Blob และบันทึก Episode.mp3 หากโฮสต์ละเว้นส่วนหัว CORS เบราว์เซอร์สามารถเล่นลิงก์ในแท็บของตัวเองได้ ในขณะที่หน้านี้ไม่สามารถดึงข้อมูลด้วยสคริปต์ได้ “บันทึกลิงก์เป็น” อาจเป็นเส้นทางที่ถูกต้อง สิทธิ์ของผู้ใช้ในการบันทึกไฟล์นั้นแยกจากว่าในทางเทคนิคแล้วเซิร์ฟเวอร์อนุญาตให้ดึงไฟล์ได้หรือไม่
การล้างข้อมูล: การเพิกถอนอ็อบเจ็กต์ URL และการเพิ่มหน่วยความจำ - เหตุใดตัวดาวน์โหลดที่สร้างขึ้นอย่างดีจึงปล่อย Blob หลังจากการบันทึกเสร็จสิ้น
URL ของออบเจ็กต์ชั่วคราวเก็บการอ้างอิงถึง Blobs ที่สนับสนุน โปรแกรมดาวน์โหลดที่ปล่อยให้ URL ทุกไฟล์ยังมีชีวิตอยู่สามารถเก็บไฟล์ขนาดใหญ่ไว้ในแท็บที่มีอายุการใช้งานยาวนานได้ ยูทิลิตี้การดาวน์โหลดที่แชร์ของ ToolAcre จะสร้าง URL ในเครื่องสำหรับการดำเนินการบันทึกและเพิกถอนเมื่อเสร็จสิ้น การยกเลิกจะปล่อยตัวอ่านการตอบกลับและละทิ้งบางส่วน สำหรับไฟล์ที่มีขนาดใหญ่มาก การดาวน์โหลดเบราว์เซอร์ธรรมดาจากโฮสต์จะเหมาะสมกว่าการรวบรวมการตอบสนองทั้งหมดในหน่วยความจำเพจ
สิ่งนี้ไม่ครอบคลุมถึง - URL ของเพจ, รายการสตรีมมิ่ง, DRM และลิงก์ที่จำเป็นต้องเข้าสู่ระบบ
เครื่องมือนี้จะไม่พบสื่อที่ซ่อนอยู่หลังหน้าวิดีโอ แยกวิเคราะห์ HLS/DASH .m3u8 หรือ .mpd manifests ข้าม DRM หลอกลวงส่วนหัว หรือเข้าถึงสตรีมที่มีการป้องกันเซสชัน มันไม่ได้ดาวน์โหลดเนื้อหาส่วนตัวสำหรับคุณและไม่ได้ตัดสินว่าใบอนุญาตให้สิทธิ์ในการคัดลอกไฟล์หรือไม่ 403 การเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบหรือข้อผิดพลาด CORS ถือเป็นขอบเขตที่ต้องทำความเข้าใจ ไม่ใช่สัญญาณในการค้นหาพร็อกซีที่ไม่มีเอกสาร
ประเด็นสำคัญ: API ของเบราว์เซอร์ 3 ตัว ไม่มีเซิร์ฟเวอร์ — วิธีที่ Direct Media Downloader ใช้ไปป์ไลน์นี้กับลิงก์ที่คุณวาง
ไปป์ไลน์ถูกดึงมาจากโฮสต์ที่ให้มา → รับชิ้นส่วน → สร้าง Blob → ทริกเกอร์การดาวน์โหลดในเครื่อง ไม่มีการถ่ายทอด ToolAcre เกี่ยวข้อง แต่คำขอที่แท้จริงไปยังโฮสต์บุคคลที่สามนั้นเกี่ยวข้องอย่างยิ่ง บันทึกสามารถดูการเชื่อมต่อได้ Direct Media Downloader จะประกาศรายชื่อติดต่อนั้นก่อนที่จะสร้าง และแจ้งให้คุณทราบเมื่อกฎความปลอดภัยของเบราว์เซอร์ปฏิเสธการอ่านแบบข้ามต้นทาง