อะไรต้องเกิดขึ้นก่อนที่หน้าเว็บจะยอมมอบไฟล์ให้คุณ
คุณเห็นวิดีโอ มันกำลังเล่นอยู่ตรงนั้นในเว็บเบราว์เซอร์ แล้วทำไมถึงไม่มีวิธีเก็บมัน คำตอบคือหน้าเว็บแทบไม่เคยส่งมอบไฟล์เลย — มันส่งมอบคำสั่ง และไฟล์ที่เบราว์เซอร์ประกอบขึ้นจากคำสั่งเหล่านั้นอาจไม่มีอยู่จริงในรูปของสิ่งเดียวเลยด้วยซ้ำ
FoxDL สี่วิธีที่หน้าเว็บส่งมอบวิดีโอ มีแค่วิธีเดียวที่เป็นไฟล์
วิธีที่เก่าแก่และง่ายที่สุดคือ ไฟล์ตรง: หน้าเว็บชี้ไปยังที่อยู่ที่ลงท้ายด้วย .mp4 และเบราว์เซอร์ดึงมันมา ถ้าคุณหาที่อยู่นั้นเจอ คุณก็มีไฟล์แล้ว นี่ยังเป็นวิธีที่เว็บไซต์เล็ก ๆ ฟอรัม สำนักข่าว และโฮสต์ไฟล์ส่วนใหญ่ทำงาน
วิธีที่สองคือ การสตรีมแบบปรับตัว — HLS หรือ DASH หน้าเว็บโหลดเพลย์ลิสต์ที่รายชื่อส่วนย่อยสั้น ๆ หลายร้อยชิ้นในหลายระดับคุณภาพ และเครื่องเล่นเย็บมันเข้าด้วยกันไปเรื่อย ๆ สลับคุณภาพเมื่อการเชื่อมต่อของคุณเปลี่ยน ไม่มีไฟล์เดียวให้หา การบันทึกมันหมายถึงการดึงทุกส่วนย่อยและสร้างไฟล์ขึ้นใหม่จากมัน
วิธีที่สามคือ blob URL หน้าเว็บได้ดึงข้อมูลด้วย JavaScript แล้วและมอบให้เครื่องเล่นเป็นการอ้างอิงถึงบางอย่างที่อยู่ในหน่วยความจำของเบราว์เซอร์เอง ที่อยู่ที่คุณเห็นได้ (blob:https://…) ไม่มีความหมายนอกหน้านั้นและเซสชันนั้น — มันเปิด แชร์ หรือดาวน์โหลดไม่ได้ และนี่คือสิ่งที่ทำให้ "ตัวค้นหาวิดีโอ" ที่ไม่ฉลาดพอส่วนใหญ่สะดุด
วิธีที่สี่คือ เนื้อหาที่ป้องกันไว้: ส่วนย่อยที่เข้ารหัสเล่นผ่านระบบ DRM ที่คีย์ถอดรหัสถูกออกให้เบราว์เซอร์ภายใต้เงื่อนไขที่ห้ามเก็บสำเนาไว้อย่างชัดเจน นี่ไม่ใช่อุปสรรคที่ควรหาทางเลี่ยง มันคือกลไกที่ข้อตกลงใบอนุญาตถูกสร้างขึ้นบนนั้น และไม่มีเครื่องมือที่ถูกกฎหมายไหนเอาชนะมันได้
เว็บเบราว์เซอร์สังเกตเห็นว่ามีอะไรให้บันทึกได้อย่างไร
เว็บเบราว์เซอร์ในแอปที่เสนอบันทึกสิ่งที่มันพบกำลังทำหลายงานพร้อมกัน แต่ละงานจับกรณีที่งานอื่นพลาดไป
- อ่านองค์ประกอบมีเดียของหน้า
- เดินผ่านเอกสารเพื่อหาแท็ก
<video>,<audio>และ<source>แล้วอ่านที่อยู่ของมัน จับกรณีไฟล์ตรงได้ทันที แต่พลาดทุกอย่างที่ JavaScript สร้างขึ้นหลังหน้าเว็บโหลดเสร็จ - มองเข้าไปใน shadow DOM
- เครื่องเล่นสมัยใหม่คือ custom element ที่ภายในถูกปิดกั้นจากหน้าเว็บโดยตั้งใจ การค้นหาที่หยุดแค่ที่เอกสารปกติจะเห็นกล่องว่างเปล่าตรงที่ควรเป็นวิดีโอ
- สังเกตสิ่งที่หน้าเว็บร้องขอจริง ๆ
- เบราว์เซอร์รู้ทุกทรัพยากรที่หน้าเว็บดึงมา ไฟล์มีเดียที่ถูกโหลด — ไม่ว่าสคริปต์ไหนขอมันหรือเมื่อไร — จะปรากฏที่นี่แม้ไม่มีอะไรในหน้าที่มองเห็นชี้ไปที่มันเลย
- ตรวจสอบประเภทการตอบกลับ
- URL ที่ลงท้ายด้วย
.phpส่งคืนวิดีโอได้ และ URL ที่ลงท้ายด้วย.mp4ส่งคืนหน้าข้อผิดพลาดได้Content-Typeที่เซิร์ฟเวอร์ส่งมาจริง ๆ คือสิ่งที่บอกคุณว่าอันไหนคืออันไหน — นามสกุลไฟล์คือการเดา
การบันทึกจากหน้าเว็บที่สำเร็จเป็นแบบไหน
ลำดับสำคัญ ความล้มเหลวส่วนใหญ่มาจากการข้ามขั้นตอนที่สองและเริ่มโอนสี่กิกะไบต์ของหน้าล็อกอิน
-
เล่นมีเดียสักวินาทีก่อน
หลายหน้าเว็บไม่โหลดอะไรเลยจนกว่าจะเริ่มเล่น สองวินาทีของการเล่นมักเป็นความต่างระหว่างรายชื่อผู้สมัครที่ว่างเปล่ากับรายชื่อที่เต็ม
-
ตรวจสอบว่าผู้สมัครนั้นคืออะไรจริง ๆ
ก่อนตัดสินใจ ดูขนาดและประเภทที่รายงาน "ภาพยนตร์" ที่ 14 KB คือหน้า HTML ประเภท
text/htmlในที่ที่คุณคาดหวังvideo/mp4หมายถึงคุณได้ลิงก์ผิด -
เลือกคุณภาพที่คุณต้องการ
สตรีมมักเสนอหลายระดับ ระดับสูงสุดไม่ใช่คำตอบที่ถูกต้องเสมอไปบนมือถือ ที่ที่ความต่างมองไม่เห็นแต่พื้นที่จัดเก็บเห็นได้ชัด
-
ให้เซสชันติดตามไปด้วย
ลิงก์ที่ป้องกันไว้ตรวจสอบว่าใครกำลังขอ: คุกกี้จากเซสชันที่ล็อกอินของคุณ หน้าที่อ้างอิงคุณมา บางครั้งตัวตนของเบราว์เซอร์ การดาวน์โหลดที่เริ่มโดยไม่มีสิ่งเหล่านี้จะได้รับ 403 แม้หน้าเว็บจะเล่นได้ปกติดี
-
ตรวจสอบสิ่งที่ได้มา
เปิดมันดู ไฟล์ที่เล่นได้สองวินาทีแล้วหยุดถูกตัดตอน — มักเป็นเพราะลิงก์หมดอายุ — และคุ้มค่าที่จะเริ่มใหม่แทนที่จะเก็บไว้
สิ่งที่เว็บเบราว์เซอร์ในแอปต้องทำให้ถูกต้อง
นอกจากหาเจอมีเดียแล้ว นี่คือสิ่งที่ตัดสินว่าการดาวน์โหลดจะสำเร็จจริงหรือไม่
- พาเซสชันไปถึงการดาวน์โหลดด้วย
คุกกี้ referer และ user agent ต้องเดินทางไปกับคำขอ ถ้าไม่มีสิ่งเหล่านี้ ลิงก์ที่ป้องกันไว้จะเปิดได้ในหน้าเว็บแต่ล้มเหลวในตัวดาวน์โหลด
- เก็บข้อมูลรับรองเหล่านั้นออกจากที่จัดเก็บ
คุกกี้เซสชันดีพอ ๆ กับรหัสผ่านตราบเท่าที่เซสชันยังอยู่ มันควรอยู่ในหน่วยความจำเท่าที่การโอนใช้เวลาและไม่มีที่ไหนอื่น — ไม่ใช่ในฐานข้อมูล ไม่ใช่ในบันทึก
- ปฏิเสธที่จะส่งลิงก์ให้แอปอื่น
iOS ยินดีเปิดลิงก์ที่ถูกแตะในแอปอื่นถ้ามันอ้างสิทธิ์โดเมนนั้น เว็บเบราว์เซอร์ที่มีไว้เพื่อบันทึกมีเดียต้องยกเลิกและออกคำสั่งนำทางใหม่ด้วยตัวเอง ไม่งั้นหน้าที่คุณต้องการจะหายไปในแอปของคนอื่น
- ตัดหน้าเว็บก่อนที่มันจะแสดงผล
ตัวบล็อกเนื้อหาที่นี่ไม่ใช่แค่เรื่องโฆษณา — ตัวติดตามและโอเวอร์เลย์ที่น้อยลงหมายถึงผู้สมัครปลอมที่น้อยลงในรายชื่อมีเดีย
- จัดการเอกสารเช่นเดียวกับวิดีโอ
PDF, ZIP และไฟล์ Office คืออีกครึ่งหนึ่งของสิ่งที่คนบันทึกจากเว็บ และควรลงไปในคลังเดียวกับทุกอย่าง
คำถามที่คนถาม
ทำไม Safari ทำสิ่งนี้เองไม่ได้
Safari ดาวน์โหลดไฟล์ได้จริง — ทำได้ตั้งแต่ iOS 13 สิ่งที่มันไม่ทำคือตรวจสอบหน้าเว็บหามีเดียที่กำลังสตรีมแทนที่จะเป็นลิงก์ตรง หรือสร้างสตรีมที่แบ่งเป็นส่วนขึ้นใหม่เป็นไฟล์ มันคือเว็บเบราว์เซอร์ และงานนั้นเป็นของตัวจัดการดาวน์โหลด
blob URL คืออะไรและทำไมฉันดาวน์โหลดมันไม่ได้
มันคือตัวจับข้อมูลที่หน้าเว็บถืออยู่ในหน่วยความจำแล้ว มันไม่มีอยู่จริงนอกแท็บนั้น ดังนั้นการวางมันที่ไหนก็ไม่ได้อะไรเลย มีเดียที่แท้จริงถูกดึงมาจากที่ไหนสักแห่งจริง ๆ และที่อยู่นั้น — ไม่ใช่ blob — คือสิ่งที่คุ้มค่าที่จะหา
หน้าเว็บเล่นได้ปกติดีแต่การดาวน์โหลดได้ 403 ทำไม
คำขอดาวน์โหลดมาถึงโดยไม่มีสิ่งที่หน้าเว็บมี: คุกกี้เซสชันของคุณ หน้าที่อ้างอิงมา บางครั้งตัวตนเบราว์เซอร์ที่ตรงกัน เซิร์ฟเวอร์ใช้ชุดข้อมูลนี้เป๊ะ ๆ เพื่อแยกผู้ชมออกจากตัวขูดข้อมูล
บันทึกทุกอย่างได้ไหม
ไม่ได้ และนั่นเป็นเรื่องที่ออกแบบไว้ เนื้อหาที่ป้องกันด้วย DRM ถูกเข้ารหัสด้วยคีย์ที่ออกภายใต้ใบอนุญาตที่ห้ามเก็บมันไว้ บางเว็บไซต์ยังเซ็นชื่อทุกส่วนย่อยแยกกันด้วยโทเคนอายุสั้น ทั้งสองอย่างทำงานตามที่ตั้งใจไว้
เว็บเบราว์เซอร์ใน FoxDL
มันคือเว็บเบราว์เซอร์แบบแท็บปกติที่มีหน้าที่นำสิ่งต่าง ๆ เข้าคลังของคุณ ไม่ใช่เป็นเบราว์เซอร์ประจำวันของคุณ
- หกช่องทางการตรวจจับ รวมถึง shadow DOM และบันทึกสิ่งที่หน้าเว็บร้องขอจริง ๆ ดังนั้นเครื่องเล่นที่สร้างด้วย JavaScript ทั้งหมดยังมองเห็นได้
- ประเภทจริงถูกตรวจสอบ จากการตอบกลับแทนที่จะเดาจากนามสกุล และผู้สมัคร
blob:ที่ดึงมาไม่ได้ถูกกรองออกแทนที่จะถูกเสนอแล้วล้มเหลว - คุกกี้ referer และ user agent ถูกพาไปด้วย จนถึงการดาวน์โหลด เพื่อให้ลิงก์ที่ป้องกันไว้ทำงานได้ — และไม่มีอันไหนถูกเขียนลงดิสก์เลย
- ตัวบล็อกเนื้อหา ตัดหน้าเว็บก่อนที่มันจะแสดงผล
- PDF, ZIP และเอกสาร บันทึกลงคลังเดียวกับมีเดีย ในแตะเดียว
- แท็บ บุ๊กมาร์ก และหน้าเริ่มต้น ที่เป็นทางลัดของคุณเอง
FoxDL ไม่ได้จัดหาเนื้อหาของตัวเองเลย สิ่งที่คุณบันทึกคือสิ่งที่คุณนำมาเอง และคุณเป็นผู้รับผิดชอบว่ามีสิทธิ์เก็บมันไว้หรือไม่
คำถามที่พบบ่อย
- ดาวน์โหลดไฟล์จากหน้าเว็บยังไง?
- FoxDL ดาวน์โหลดสตรีม HLS (m3u8) ได้ไหม?
- ดาวน์โหลดจะทำงานต่อไหมถ้าฉันออกจากแอป?
- FoxDL มีช่อง หนัง หรือสตรีม IPTV ให้ใช้เองไหม?
อ่านต่อ
สิ่งที่ตัวจัดการดาวน์โหลดทำได้ที่เว็บเบราว์เซอร์ทำไม่ได้
ทำไมการโอนถึงหยุดเมื่อคุณสลับแอป การทำต่อต้องการอะไรจริง ๆ และสตรีมกลายเป็นไฟล์ได้อย่างไร
แอปมีเดียบนมือถือคุณเห็นอะไรได้บ้าง และไม่ควรส่งอะไรออกไปเลย
แอปมีเดียเห็นอะไรได้บ้าง วิธีอ่านป้ายความเป็นส่วนตัว และทำไมล็อกไม่ใช่การเข้ารหัส
ไฟล์ของคุณอยู่ที่ไหนจริง ๆ บน iPhone และใครเห็นมันได้บ้าง
Sandbox ดาวน์โหลดไปอยู่ที่ไหนจริง ๆ และทำไมการเปลี่ยนชื่อไฟล์ถึงทำให้หลายแอปพัง
คลังไฟล์ของคุณ อยู่รวมกันในที่เดียวสักที
ดาวน์โหลดฟรี ไม่มีบัญชี ไม่ต้องสมัคร ฟีเจอร์ครบในเวอร์ชันฟรี