스토리
วิธีดาวน์โหลดวิดีโอจาก URL วิดีโอโดยตรง
URL วิดีโอโดยตรงคืออะไร วิธีบันทึกไฟล์ MP4 หรือ WebM ในเบราว์เซอร์ และเหตุใด CORS, HLS หรือ DASH จึงบล็อกการดาวน์โหลดได้
การมี URL วิดีโอไม่เท่ากับการมีไฟล์วิดีโอ ที่อยู่บางแห่งชี้ไปที่ทรัพยากร MP4 หรือ WebM บางแห่งเปิดหน้า HTML ที่เพียง มี เครื่องเล่น บางแห่งโหลดเพลย์ลิสต์สตรีมมิงที่ประกอบด้วยชิ้นส่วนเล็ก ๆ จำนวนมาก
นั่นคือเหตุผลที่ลิงก์หนึ่งบันทึกได้เร็ว ขณะที่อีกลิงก์ปฏิเสธการดาวน์โหลดแม้วิดีโอจะเล่นได้ ส่วนที่เหลือของบทความนี้อธิบายวิธีแยกกรณีเหล่านั้น และบันทึกไฟล์เฉพาะเมื่อ URL เป็นทรัพยากรวิดีโอจริง ๆ
URL วิดีโอโดยตรงคืออะไร?
URL วิดีโอโดยตรง คือที่อยู่ที่การตอบ HTTP เป็นทรัพยากรสื่อเอง ไม่ใช่หน้าเว็บที่ห่ออยู่รอบนอก ตัวอย่างที่ง่ายที่สุดมีลักษณะเช่นนี้:
https://example.com/video.mp4
เมื่อเบราว์เซอร์ขอ URL นั้น เซิร์ฟเวอร์สามารถส่งไบต์ของไฟล์วิดีโอกลับมา มักพร้อม Content-Type เช่น video/mp4 หรือ video/webm ไม่มีเอกสาร HTML คั่นกลาง URL คือ ไฟล์
นามสกุลไฟล์เป็นเบาะแส ไม่ใช่กฎ ลิงก์ยังเป็นทรัพยากรวิดีโอได้แม้ไม่มี .mp4 ในพาธ:
https://example.com/media?id=123
หากเซิร์ฟเวอร์ตอบด้วย Content-Type: video/mp4 (หรือชนิดวิดีโออื่น) และเนื้อความที่เป็นข้อมูลสื่อจริง นั่นยังเป็น URL วิดีโอโดยตรง พาธที่ลงท้ายด้วย .mp4 ยังอาจเป็นการเปลี่ยนเส้นทางหรือหน้าข้อผิดพลาด HTML ได้ ถือการตอบ HTTP เป็นแหล่งความจริง ไม่ใช่ตัวอักษรท้ายที่อยู่
URL วิดีโอโดยตรงเทียบกับหน้าเว็บวิดีโอ
เปรียบเทียบสองอย่างนี้:
- ไฟล์โดยตรง:
https://example.com/files/movie.mp4 - หน้าเว็บ:
https://example.com/watch/movie
อันแรกอาจเป็นวัตถุวิดีโอชิ้นเดียว อันหลังมักเป็นเอกสาร HTML หน้านั้นอาจฝังองค์ประกอบ <video> โหลดสคริปต์เครื่องเล่น แล้วดึงสื่อจาก URL อื่น ที่ไม่ปรากฏในแถบที่อยู่เลย
การวางที่อยู่หน้าเว็บลงในเครื่องมือดาวน์โหลดไม่ได้ดึงไฟล์ออกจากหน้า เบราว์เซอร์จะขอ HTML เครื่องมือที่ทำงานกับ URL วิดีโอโดยตรงที่เข้าถึงได้แบบสาธารณะ ต้องการที่อยู่สื่อเอง
ตัวดาวน์โหลดวิดีโอเว็บ ของ NEXNARA สร้างมาสำหรับ URL ไฟล์สาธารณะนั้น ไม่ใช่หน้าดู ไม่ดึงวิดีโอจากเว็บไซต์ ไม่เข้าสู่ระบบบัญชี และไม่ประกอบสตรีมจากเครื่องเล่น
วิธีดาวน์โหลดวิดีโอจาก URL โดยตรง
เมื่อมีลิงก์ที่เป็นตัวเลือกอยู่แล้ว:
- หา URL โดยตรง ใช้ URL ของไฟล์ วัตถุ หรือสื่อ—ไม่ใช่หน้าดู
- ตรวจว่าเป็นทรัพยากรวิดีโอ แท็บใหม่ควรแสดงการเล่นในตัวของเบราว์เซอร์ (หรือพรอมต์ดาวน์โหลด) ไม่ใช่หน้าที่มีเครื่องเล่นในเลย์เอาต์
- ลองเบราว์เซอร์ก่อน เบราว์เซอร์หลายตัวให้บันทึกจากเมนูบริบทของวิดีโอ หรือเริ่มดาวน์โหลดหากเซิร์ฟเวอร์ส่ง disposition ของไฟล์
- ใช้เครื่องมือในเบราว์เซอร์เมื่อต้องการดูตัวอย่างก่อน วาง URL เดียวกันในหน้าที่แสดงรูปแบบ ความยาว หรือขนาดก่อนบันทึก
ตัวดาวน์โหลดวิดีโอเว็บ คือขั้นตอนสุดท้ายนั้น คุณวาง URL วิดีโอโดยตรง เบราว์เซอร์ขอไปยังโฮสต์นั้น หากทรัพยากรเป็นไฟล์ที่เล่นได้ จะปรากฏตัวอย่าง เมื่อเซิร์ฟเวอร์วิดีโออนุญาตให้อ่านข้ามต้นทาง คุณดาวน์โหลดได้ เมื่อไม่อนุญาต ยังเปิด URL ได้หากตัวอย่างใช้ได้ NEXNARA ไม่อัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ของตน
ดาวน์โหลดรูปแบบวิดีโอใดได้บ้าง?
ในเบราว์เซอร์ คำถาม «ดาวน์โหลดสิ่งนี้ได้ไหม?» ใกล้กับ «เบราว์เซอร์นี้ถอดรหัสไฟล์นี้ได้ไหม?» คอนเทนเนอร์ที่พบบ่อยสำหรับ URL ไฟล์เดียว:
- MP4 — มักเป็น H.264 หรือ HEVC ในคอนเทนเนอร์ ISO BMFF
- WebM — โดยทั่วไป VP8, VP9 หรือ AV1
- Ogg Video — พบน้อยกว่า การรองรับตัวแปลงสัญญาณต่างกันตามเบราว์เซอร์
คอนเทนเนอร์กับตัวแปลงสัญญาณไม่ใช่สิ่งเดียวกัน ไฟล์ .mp4 ไม่ได้รับประกันว่าจะเล่นได้ในทุกเบราว์เซอร์บนทุกอุปกรณ์ การรองรับ HEVC และ AV1 ขึ้นกับระบบปฏิบัติการ ฮาร์ดแวร์ และรุ่นเบราว์เซอร์ เครื่องมือที่ใช้องค์ประกอบวิดีโอ HTML5 แสดงตัวอย่างสิ่งที่ เบราว์เซอร์นั้น ถอดรหัสได้ ไม่แปลงหรือบรรจุไฟล์ใหม่
หากเบราว์เซอร์รายงานว่ารูปแบบไม่รองรับ ไฟล์อาจยังเล่นที่อื่นได้—หรือเป็นวัตถุติดป้ายผิด หรือเพลย์ลิสต์แทนไฟล์เดียว
ทำไมวิดีโอเล่นได้แต่ดาวน์โหลดไม่ได้?
การเล่นและการบันทึกใช้ API ของเบราว์เซอร์ต่างกัน
องค์ประกอบ <video> สามารถขอทรัพยากร (มักด้วยคำขอ HTTP range) และวาดเฟรม ได้แม้ JavaScript บนต้นทางอื่นจะไม่อนุญาตให้ อ่าน ไบต์แล้วแปลงเป็นไฟล์ที่ผู้ใช้เก็บไว้
สาเหตุทั่วไปที่ตัวอย่างใช้ได้แต่ ดาวน์โหลด ล้มเหลว:
- CORS โฮสต์วิดีโอไม่ได้ให้เว็บไซต์นี้สิทธิ์อ่านการตอบจากสคริปต์ ดูส่วนถัดไป
- ข้อมูลรับรองข้ามต้นทาง คุกกี้ที่ใช้ได้บนไซต์เดิมจะไม่ถูกส่งใน
fetchข้ามไซต์แบบง่าย เว้นแต่ทั้งสองฝ่ายยินยอม Content-Dispositionattachmentหรือชื่อไฟล์มีผลต่อวิธีที่การนำทาง ระดับบนสุด บันทึก ไม่ใช่ว่าสคริปต์ของต้นทางอื่นอ่านเนื้อความได้หรือไม่- การตั้งค่าเซิร์ฟเวอร์ ส่วนหัว CORS ที่ขาด หรือการบล็อกชุด
HEAD/GETอาจหยุดเครื่องมือที่ตรวจทรัพยากรก่อน - การยืนยันตัวตน URL ที่ใช้ได้ขณะล็อกอินบนโฮสต์อาจคืน 401/403 จากอีกไซต์
- URL ที่หมดอายุหรือลงลายเซ็น ที่เก็บวัตถุมักออกสตริงคิวรีจำกัดเวลา หลังหมดอายุลิงก์เดิมล้มเหลว
สิ่งเหล่านี้ไม่ได้แปลว่าไฟล์ «ไม่ใช่วิดีโอ» แต่แปลว่าบริบทเบราว์เซอร์นี้ไม่ได้รับอนุญาตให้คัดลอก
CORS คืออะไร?
CORS (Cross-Origin Resource Sharing) เป็นกฎของเบราว์เซอร์ว่า JavaScript บนต้นทางหนึ่งจะอ่านการตอบจากอีกต้นทางได้เมื่อใด ไม่ใช่ผลิตภัณฑ์พิเศษ «กันดาวน์โหลด» มีอยู่เพื่อไม่ให้ https://a.example อ่านเมลหรือไฟล์ของคุณจาก https://b.example โดยเงียบ ๆ เว้นแต่ b.example อนุญาต
แท็กวิดีโอยัง แสดง ไฟล์ข้ามต้นทางได้ สิ่งที่ CORS มักบล็อกคือ fetch() จากอีกเว็บไซต์ที่ต้องการไบต์ดิบเป็น Blob สำหรับกล่องโต้ตอบบันทึก หากเซิร์ฟเวอร์วิดีโอไม่ส่งค่า Access-Control-Allow-Origin ที่รวมต้นทางของเครื่องมือ (หรือ * สำหรับไฟล์สาธารณะธรรมดา) การอ่านนั้นจะถูกปฏิเสธ
การเล่นไม่ใช่สิทธิ์ให้สคริปต์ของอีกไซต์เก็บสำเนา NEXNARA ไม่พร็อกซีไฟล์เพื่อข้ามการตรวจนั้น หากดาวน์โหลดถูกบล็อก การเปิด URL บนโฮสต์วิดีโอคือทางเลือก—และเฉพาะเมื่อคุณมีสิทธิ์บันทึก
แล้ว HLS กับ DASH ล่ะ?
เครื่องเล่นหลายตัวไม่โหลด MP4 ไฟล์เดียว พวกเขาโหลด แมนิเฟสต์ แล้วตามด้วย เซ็กเมนต์ จำนวนมาก
- HLS มักใช้ URL ที่ลงท้ายด้วย
.m3u8ไฟล์นั้นเป็นเพลย์ลิสต์ (ข้อความ) ไม่ใช่ภาพยนตร์ครบในวัตถุเดียว - DASH มักใช้
.mpdซึ่งเป็นแมนิเฟสต์ XML ที่ชี้ไปที่ตัวแทนและเซ็กเมนต์
URL MP4/WebM โดยตรงกับเพลย์ลิสต์ HLS/DASH เป็นทรัพยากรต่างกัน การบันทึก «ไฟล์ .m3u8» ได้ไฟล์ข้อความเล็ก ไม่ใช่ภาพยนตร์ การสร้างไฟล์เดียวจากเซ็กเมนต์ต้องแยกเพลย์ลิสต์ ดาวน์โหลดเซ็กเมนต์ และมักบรรจุใหม่ ตัวดาวน์โหลดวิดีโอเว็บ ไม่ ประกอบสตรีม HLS หรือ DASH หากเครื่องมือรายงานว่าเป็นเพลย์ลิสต์สตรีมมิง นั่นเป็นพฤติกรรมที่คาดไว้
วิดีโอที่ปกป้องด้วย DRM
เครื่องเล่นเชิงพาณิชย์อาจห่อสื่อด้วย DRM เช่น Widevine, FairPlay หรือ PlayReady ระบบเหล่านั้นเข้ารหัสตัวอย่างและต้องมีใบอนุญาต นั่นไม่ใช่วัตถุ video/mp4 สาธารณะที่ดึงมาเก็บได้ NEXNARA ไม่ถอดรหัสหรือเลี่ยง DRM
วิธีรู้ว่าเป็น URL วิดีโอโดยตรง
การตรวจที่ใช้ได้จริง เรียงตามว่าพิสูจน์ได้มากน้อยเพียงใด:
- พาธลงท้ายด้วย
.mp4,.webm,.ogvหรือนามสกุลสื่อคล้ายกัน มีประโยชน์ แต่ไม่ชี้ขาด - เปิด URL ในแท็บใหม่แล้วเห็นวิดีโอเดี่ยว (หรือดาวน์โหลด) ไม่ใช่หน้าเว็บทั้งไซต์
- ผู้เผยแพร่ระบุว่าเป็นลิงก์ไฟล์หรือวัตถุ (CDN, ที่เก็บบัคเก็ต, «ดาวน์โหลดโดยตรง»)
- ส่วนหัวการตอบมี
Content-Type: video/*(เช่นvideo/mp4)
เครื่องมือนักพัฒนาของเบราว์เซอร์แสดงชนิดและ Content-Type ในแผงเครือข่ายสำหรับคำขอที่คุณทำแล้วในฐานะผู้ใช้หน้าปกติ ช่วยให้ เข้าใจ ว่าดึงอะไรมา ไม่ใช่คู่มือขูดสตรีมที่ซ่อนหรือเลี่ยงการเข้าสู่ระบบ หากไซต์ไม่ให้ URL ไฟล์สาธารณะ ขั้นตอนนี้ใช้ไม่ได้
ทั้งนามสกุลและชนิดเนื้อหาโกหกได้ URL .mp4 อาจเปลี่ยนเส้นทางไป HTML ชนิด video/mp4 ยังอาจเป็นเนื้อความข้อผิดพลาดเล็ก ๆ การเล่นในแท็บคือการยืนยันที่ใช้ได้จริง
ปัญหาที่พบบ่อย
URL เปิดหน้าเว็บ
ไม่ใช่ URL วิดีโอโดยตรง คุณต้องการที่อยู่ทรัพยากรสื่อ ไม่ใช่หน้าดู
วิดีโอเล่นได้แต่ดาวน์โหลดไม่ได้ผลที่เป็นประโยชน์
โฮสต์มักไม่อนุญาตให้อ่านข้ามต้นทาง (CORS) หรือไฟล์ใหญ่เกินกว่าจะบันทึกในเบราว์เซอร์ ใช้ เปิด หากตัวอย่างใช้ได้ หรือบันทึกจากโฮสต์วิดีโอในแท็บระดับบนสุดเมื่อมีสิทธิ์
ลิงก์เคยใช้ได้แล้วตอนนี้ล้มเหลว
URL ที่ลงลายเซ็นหรือหมดอายุตายตามตัวจับเวลา ขอลิงก์ใหม่จากที่เดิมที่คุณได้ลิงก์แรก
URL ลงท้ายด้วย .m3u8 หรือ .mpd
นั่นคือเพลย์ลิสต์สตรีมมิง ไม่ใช่ไฟล์ MP4/WebM เดียว ตัวดาวน์โหลดนี้ไม่เย็บเซ็กเมนต์เหล่านั้นเข้าด้วยกัน
เบราว์เซอร์บอกว่ารูปแบบไม่รองรับ
คอนเทนเนอร์หรือตัวแปลงสัญญาณอาจไม่มีในเบราว์เซอร์/ระบบปฏิบัติการนั้น ลองเบราว์เซอร์อื่น หรือยืนยันว่าไฟล์เป็นวัตถุวิดีโอจริง
เบราว์เซอร์เข้าถึง URL ไม่ได้
ตรวจ https:// การเชื่อมต่อ และว่าโฮสต์อนุญาตการเข้าถึงสาธารณะ ไฟล์ HTTP บนหน้าเครื่องมือ HTTPS ก็อาจล้มเหลวในฐานะเนื้อหาผสม
ความเป็นส่วนตัว
NEXNARA ไม่อัปโหลดไฟล์วิดีโอไปยังเซิร์ฟเวอร์ของ NEXNARA สำหรับเครื่องมือนี้ นั่นไม่เท่ากับการอ้างว่า «URL ไม่เคยออกจากเบราว์เซอร์ของคุณ»
เมื่อคุณวางที่อยู่ เบราว์เซอร์ของคุณขอโฮสต์วิดีโอภายนอกนั้นโดยตรง โฮสต์เห็นคำขอสื่อปกติจากคุณ NEXNARA ไม่เก็บไฟล์ตรงกลาง ผู้ให้บริการวิดีโอยังได้รับทราฟฟิกเพราะไบต์มาจาก URL ของเขา
การใช้งานอย่างรับผิดชอบ
ดาวน์โหลดเฉพาะวิดีโอที่คุณเป็นเจ้าของหรือมีสิทธิ์ดาวน์โหลด URL สาธารณะไม่ใช่ใบอนุญาตให้คัดลอก
คำถามที่พบบ่อย
URL วิดีโอโดยตรงคืออะไร?
ลิงก์ที่การตอบเป็นทรัพยากรวิดีโอเอง (เช่น วัตถุ MP4 หรือ WebM) ไม่ใช่หน้าดู HTML ที่ฝังเครื่องเล่น
ดาวน์โหลด MP4 จาก URL ได้หรือไม่?
ได้ เมื่อ URL เป็นไฟล์ MP4 (หรือคล้ายกัน) สาธารณะและเบราว์เซอร์ถอดรหัสได้ หากที่อยู่เป็นหน้าเว็บหรือเพลย์ลิสต์ การบันทึกที่อยู่นั้นจะไม่ให้ไฟล์ภาพยนตร์
ทำไมวิดีโอเล่นได้แต่ดาวน์โหลดไม่ได้?
เครื่องเล่นแสดงสื่อได้โดยไม่ให้ JavaScript ของอีกเว็บไซต์อ่านไบต์ CORS การยืนยันตัวตน และนโยบายเซิร์ฟเวอร์เป็นสาเหตุปกติ
ดาวน์โหลด URL แบบ m3u8 ได้หรือไม่?
ไม่ได้ในฐานะวิดีโอสำเร็จรูปไฟล์เดียวด้วยเครื่องมือนี้ ไฟล์ .m3u8 เป็นเพลย์ลิสต์ HLS NEXNARA ไม่ประกอบสตรีม HLS หรือ DASH
NEXNARA อัปโหลดวิดีโอของฉันหรือไม่?
ไม่ ไฟล์ไม่อัปโหลดไปยัง NEXNARA เบราว์เซอร์ของคุณติดต่อกับ URL วิดีโอที่คุณป้อน ดังนั้นโฮสต์ภายนอกเห็นคำขอนั้น
ทำไมลิงก์วิดีโอถึงหมดอายุ?
โฮสต์หลายแห่งติดลายเซ็นและเวลาหมดอายุกับ URL ของวัตถุ หลังเวลานั้นสตริงเดิมไม่ได้รับอนุญาตอีก ขอลิงก์ใหม่ การแก้ของเก่าจะไม่ต่ออายุ