เว็บเบราว์เซอร์

อะไรต้องเกิดขึ้นก่อนที่หน้าเว็บจะยอมมอบไฟล์ให้คุณ

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

อ่าน 3 นาที อัปเดต 29 กรกฎาคม 2569

FoxDL

สี่วิธีที่หน้าเว็บส่งมอบวิดีโอ มีแค่วิธีเดียวที่เป็นไฟล์

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

วิธีที่สองคือ การสตรีมแบบปรับตัว — HLS หรือ DASH หน้าเว็บโหลดเพลย์ลิสต์ที่รายชื่อส่วนย่อยสั้น ๆ หลายร้อยชิ้นในหลายระดับคุณภาพ และเครื่องเล่นเย็บมันเข้าด้วยกันไปเรื่อย ๆ สลับคุณภาพเมื่อการเชื่อมต่อของคุณเปลี่ยน ไม่มีไฟล์เดียวให้หา การบันทึกมันหมายถึงการดึงทุกส่วนย่อยและสร้างไฟล์ขึ้นใหม่จากมัน

วิธีที่สามคือ blob URL หน้าเว็บได้ดึงข้อมูลด้วย JavaScript แล้วและมอบให้เครื่องเล่นเป็นการอ้างอิงถึงบางอย่างที่อยู่ในหน่วยความจำของเบราว์เซอร์เอง ที่อยู่ที่คุณเห็นได้ (blob:https://…) ไม่มีความหมายนอกหน้านั้นและเซสชันนั้น — มันเปิด แชร์ หรือดาวน์โหลดไม่ได้ และนี่คือสิ่งที่ทำให้ "ตัวค้นหาวิดีโอ" ที่ไม่ฉลาดพอส่วนใหญ่สะดุด

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

เว็บเบราว์เซอร์สังเกตเห็นว่ามีอะไรให้บันทึกได้อย่างไร

เว็บเบราว์เซอร์ในแอปที่เสนอบันทึกสิ่งที่มันพบกำลังทำหลายงานพร้อมกัน แต่ละงานจับกรณีที่งานอื่นพลาดไป

อ่านองค์ประกอบมีเดียของหน้า
เดินผ่านเอกสารเพื่อหาแท็ก <video>, <audio> และ <source> แล้วอ่านที่อยู่ของมัน จับกรณีไฟล์ตรงได้ทันที แต่พลาดทุกอย่างที่ JavaScript สร้างขึ้นหลังหน้าเว็บโหลดเสร็จ
มองเข้าไปใน shadow DOM
เครื่องเล่นสมัยใหม่คือ custom element ที่ภายในถูกปิดกั้นจากหน้าเว็บโดยตั้งใจ การค้นหาที่หยุดแค่ที่เอกสารปกติจะเห็นกล่องว่างเปล่าตรงที่ควรเป็นวิดีโอ
สังเกตสิ่งที่หน้าเว็บร้องขอจริง ๆ
เบราว์เซอร์รู้ทุกทรัพยากรที่หน้าเว็บดึงมา ไฟล์มีเดียที่ถูกโหลด — ไม่ว่าสคริปต์ไหนขอมันหรือเมื่อไร — จะปรากฏที่นี่แม้ไม่มีอะไรในหน้าที่มองเห็นชี้ไปที่มันเลย
ตรวจสอบประเภทการตอบกลับ
URL ที่ลงท้ายด้วย .php ส่งคืนวิดีโอได้ และ URL ที่ลงท้ายด้วย .mp4 ส่งคืนหน้าข้อผิดพลาดได้ Content-Type ที่เซิร์ฟเวอร์ส่งมาจริง ๆ คือสิ่งที่บอกคุณว่าอันไหนคืออันไหน — นามสกุลไฟล์คือการเดา

การบันทึกจากหน้าเว็บที่สำเร็จเป็นแบบไหน

ลำดับสำคัญ ความล้มเหลวส่วนใหญ่มาจากการข้ามขั้นตอนที่สองและเริ่มโอนสี่กิกะไบต์ของหน้าล็อกอิน

  1. เล่นมีเดียสักวินาทีก่อน

    หลายหน้าเว็บไม่โหลดอะไรเลยจนกว่าจะเริ่มเล่น สองวินาทีของการเล่นมักเป็นความต่างระหว่างรายชื่อผู้สมัครที่ว่างเปล่ากับรายชื่อที่เต็ม

  2. ตรวจสอบว่าผู้สมัครนั้นคืออะไรจริง ๆ

    ก่อนตัดสินใจ ดูขนาดและประเภทที่รายงาน "ภาพยนตร์" ที่ 14 KB คือหน้า HTML ประเภท text/html ในที่ที่คุณคาดหวัง video/mp4 หมายถึงคุณได้ลิงก์ผิด

  3. เลือกคุณภาพที่คุณต้องการ

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

  4. ให้เซสชันติดตามไปด้วย

    ลิงก์ที่ป้องกันไว้ตรวจสอบว่าใครกำลังขอ: คุกกี้จากเซสชันที่ล็อกอินของคุณ หน้าที่อ้างอิงคุณมา บางครั้งตัวตนของเบราว์เซอร์ การดาวน์โหลดที่เริ่มโดยไม่มีสิ่งเหล่านี้จะได้รับ 403 แม้หน้าเว็บจะเล่นได้ปกติดี

  5. ตรวจสอบสิ่งที่ได้มา

    เปิดมันดู ไฟล์ที่เล่นได้สองวินาทีแล้วหยุดถูกตัดตอน — มักเป็นเพราะลิงก์หมดอายุ — และคุ้มค่าที่จะเริ่มใหม่แทนที่จะเก็บไว้

สิ่งที่เว็บเบราว์เซอร์ในแอปต้องทำให้ถูกต้อง

นอกจากหาเจอมีเดียแล้ว นี่คือสิ่งที่ตัดสินว่าการดาวน์โหลดจะสำเร็จจริงหรือไม่

  • พาเซสชันไปถึงการดาวน์โหลดด้วย

    คุกกี้ referer และ user agent ต้องเดินทางไปกับคำขอ ถ้าไม่มีสิ่งเหล่านี้ ลิงก์ที่ป้องกันไว้จะเปิดได้ในหน้าเว็บแต่ล้มเหลวในตัวดาวน์โหลด

  • เก็บข้อมูลรับรองเหล่านั้นออกจากที่จัดเก็บ

    คุกกี้เซสชันดีพอ ๆ กับรหัสผ่านตราบเท่าที่เซสชันยังอยู่ มันควรอยู่ในหน่วยความจำเท่าที่การโอนใช้เวลาและไม่มีที่ไหนอื่น — ไม่ใช่ในฐานข้อมูล ไม่ใช่ในบันทึก

  • ปฏิเสธที่จะส่งลิงก์ให้แอปอื่น

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

  • ตัดหน้าเว็บก่อนที่มันจะแสดงผล

    ตัวบล็อกเนื้อหาที่นี่ไม่ใช่แค่เรื่องโฆษณา — ตัวติดตามและโอเวอร์เลย์ที่น้อยลงหมายถึงผู้สมัครปลอมที่น้อยลงในรายชื่อมีเดีย

  • จัดการเอกสารเช่นเดียวกับวิดีโอ

    PDF, ZIP และไฟล์ Office คืออีกครึ่งหนึ่งของสิ่งที่คนบันทึกจากเว็บ และควรลงไปในคลังเดียวกับทุกอย่าง

คำถามที่คนถาม

ทำไม Safari ทำสิ่งนี้เองไม่ได้

Safari ดาวน์โหลดไฟล์ได้จริง — ทำได้ตั้งแต่ iOS 13 สิ่งที่มันไม่ทำคือตรวจสอบหน้าเว็บหามีเดียที่กำลังสตรีมแทนที่จะเป็นลิงก์ตรง หรือสร้างสตรีมที่แบ่งเป็นส่วนขึ้นใหม่เป็นไฟล์ มันคือเว็บเบราว์เซอร์ และงานนั้นเป็นของตัวจัดการดาวน์โหลด

blob URL คืออะไรและทำไมฉันดาวน์โหลดมันไม่ได้

มันคือตัวจับข้อมูลที่หน้าเว็บถืออยู่ในหน่วยความจำแล้ว มันไม่มีอยู่จริงนอกแท็บนั้น ดังนั้นการวางมันที่ไหนก็ไม่ได้อะไรเลย มีเดียที่แท้จริงถูกดึงมาจากที่ไหนสักแห่งจริง ๆ และที่อยู่นั้น — ไม่ใช่ blob — คือสิ่งที่คุ้มค่าที่จะหา

หน้าเว็บเล่นได้ปกติดีแต่การดาวน์โหลดได้ 403 ทำไม

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

บันทึกทุกอย่างได้ไหม

ไม่ได้ และนั่นเป็นเรื่องที่ออกแบบไว้ เนื้อหาที่ป้องกันด้วย DRM ถูกเข้ารหัสด้วยคีย์ที่ออกภายใต้ใบอนุญาตที่ห้ามเก็บมันไว้ บางเว็บไซต์ยังเซ็นชื่อทุกส่วนย่อยแยกกันด้วยโทเคนอายุสั้น ทั้งสองอย่างทำงานตามที่ตั้งใจไว้

FoxDL

เว็บเบราว์เซอร์ใน FoxDL

มันคือเว็บเบราว์เซอร์แบบแท็บปกติที่มีหน้าที่นำสิ่งต่าง ๆ เข้าคลังของคุณ ไม่ใช่เป็นเบราว์เซอร์ประจำวันของคุณ

  • หกช่องทางการตรวจจับ รวมถึง shadow DOM และบันทึกสิ่งที่หน้าเว็บร้องขอจริง ๆ ดังนั้นเครื่องเล่นที่สร้างด้วย JavaScript ทั้งหมดยังมองเห็นได้
  • ประเภทจริงถูกตรวจสอบ จากการตอบกลับแทนที่จะเดาจากนามสกุล และผู้สมัคร blob: ที่ดึงมาไม่ได้ถูกกรองออกแทนที่จะถูกเสนอแล้วล้มเหลว
  • คุกกี้ referer และ user agent ถูกพาไปด้วย จนถึงการดาวน์โหลด เพื่อให้ลิงก์ที่ป้องกันไว้ทำงานได้ — และไม่มีอันไหนถูกเขียนลงดิสก์เลย
  • ตัวบล็อกเนื้อหา ตัดหน้าเว็บก่อนที่มันจะแสดงผล
  • PDF, ZIP และเอกสาร บันทึกลงคลังเดียวกับมีเดีย ในแตะเดียว
  • แท็บ บุ๊กมาร์ก และหน้าเริ่มต้น ที่เป็นทางลัดของคุณเอง

FoxDL ไม่ได้จัดหาเนื้อหาของตัวเองเลย สิ่งที่คุณบันทึกคือสิ่งที่คุณนำมาเอง และคุณเป็นผู้รับผิดชอบว่ามีสิทธิ์เก็บมันไว้หรือไม่

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

คำถามทั้งหมด

อ่านต่อ

คลังไฟล์ของคุณ อยู่รวมกันในที่เดียวสักที

ดาวน์โหลดฟรี ไม่มีบัญชี ไม่ต้องสมัคร ฟีเจอร์ครบในเวอร์ชันฟรี

ดาวน์โหลดบน App Store