Video & sari kata · Pemuat Turun Media Langsung
Cara pelayar memuat turun fail daripada pautan terus dengan fetch dan Blob
· Bagaimana ia berfungsi
muat turun pelayar-apis kor
Berjalan melalui saluran paip yang digunakan oleh alat pelayar untuk menukar pautan terus menjadi fail yang disimpan: ambil bait, tahankannya sebagai Blob dan serahkannya kepada atribut muat turun. Terangkan mengapa tiada pelayan diperlukan pada mana-mana langkah.
Pautan membuka pemain dan bukannya menyimpan fail — mengklik pautan MP4 atau MP3 terus biasanya memainkannya sebaris, yang merupakan masalah yang diselesaikan oleh pemuat turun
Mengklik pautan MP3 terus boleh membuka pemain kerana pelayar tahu cara memainkan jenis MIME itu. Menyimpan bait yang sama ialah tindakan yang berasingan. Kata kuncinya adalah langsung: pautan ke respons fail sebenar, bukan halaman web yang mengandungi pemain atau segmen media penyenaraian manifes. ToolAcre membuat perbezaan ini sebelum menawarkan muat turun dan tidak berpura-pura halaman URL ialah fail URL.
Langkah pertama: fetch() meminta hos untuk bait — rupa permintaan GET kepada hos yang diumumkan dan perkara yang kembali
Selepas anda memilih pautan Semak, pelayar mungkin mengeluarkan permintaan HEAD kepada URL yang anda berikan untuk memeriksa status, jenis dan panjang. Mengambil fail menggunakan permintaan GET kepada hos itu, bukan proksi ToolAcre. Permintaan itu sengaja menghilangkan kelayakan, jadi hos yang memerlukan log masuk anda boleh menolaknya. Pelayan jauh juga mesti membenarkan bacaan skrip silang asal; jika CORS menyekat akses, alat menerangkan penolakan dan bukannya menghalakan di sekelilingnya melalui geganti tersembunyi. Ubah hala boleh menukar destinasi, jadi semak hos yang diumumkan.
Langkah dua: badan tindak balas menjadi Blob — cara bait dikumpul dalam ingatan dan sebab Blob membawa jenis MIME
Badan tindak balas dibaca sebagai aliran ketulan bait. Kemajuan boleh menggunakan Panjang Kandungan apabila hos mendedahkannya; tanpa panjang yang diketahui alat itu boleh menunjukkan bait yang diterima tetapi bukan peratusan yang boleh dipercayai. Ia menguatkuasakan siling memori semasa mengumpul ketulan, kemudian memasang Blob dengan jenis kandungan yang dikembalikan. Ini lebih selamat daripada memanggil response.blob() pada strim tanpa had, tetapi ia bukan penstriman memori sifar ke cakera: Blob yang lengkap masih menempati ruang dalam sesi pelayar anda.
Langkah ketiga: URL.createObjectURL dan atribut muat turun — cara gumpalan sementara: URL ditambah sauh mencetuskan dialog simpan
Blob ialah data dalam ingatan, bukan alamat Internet. Pelayar boleh mencipta gumpalan sementara: objek URL dan lampirkannya pada sauh dengan nama fail muat turun; mengklik sauh itu meminta pelayar untuk menyimpan bait. Nama fail mungkin datang daripada pengepala Pelupusan Kandungan atau laluan URL dan bukannya daripada tajuk halaman. Memandangkan pautan kini ialah Blob halaman yang sama URL, pelayar boleh menyimpan hasilnya tanpa mengehosnya pada ToolAcre. Adalah lebih bijak untuk memeriksa sambungan dan jenis MIME sebelum membuka fail daripada sumber yang tidak dikenali.
Contoh yang berjaya: menyimpan episod podcast daripada pautan kepungannya — mengikuti satu MP3 daripada menampal URL pada fail pada cakera
Bayangkan penerbit podcast mendedahkan kepungan dibenarkan URL berakhir dengan episod.mp3. Tampalkan alamat tepat itu, periksa hos yang diumumkan dan gunakan pautan Semak. Jika HEAD dibenarkan, ia mungkin menunjukkan audio/mpeg dan kiraan bait yang dijangkakan; Ambil kemudian meminta penerbit untuk MP3 bait, menstrimkannya ke dalam Blob dan menyimpan episod.mp3. Jika hos meninggalkan pengepala CORS, pelayar boleh memainkan pautan dalam tabnya sendiri manakala halaman ini tidak boleh mengambilnya melalui skrip; "Simpan pautan sebagai" kemudiannya mungkin laluan yang betul. Hak pengguna untuk menyimpan fail adalah berasingan daripada sama ada pelayannya secara teknikal membenarkan mengambilnya.
Membersihkan: membatalkan objek URL dan membebaskan memori — mengapa pemuat turun yang dibina dengan baik mengeluarkan Blob selepas simpanan selesai
URL objek sementara menyimpan rujukan kepada Gumpalan sandarannya. Pemuat turun yang membiarkan setiap URL hidup boleh mengekalkan fail besar dalam tab tahan lama. Utiliti muat turun kongsi ToolAcre mencipta URL setempat untuk tindakan simpan dan membatalkannya apabila selesai; pembatalan melepaskan pembaca respons dan membuang sebahagian ketulan. Untuk fail yang sangat besar, muat turun pelayar biasa daripada hos adalah lebih sesuai daripada mengumpul keseluruhan respons dalam memori halaman.
Perkara ini tidak meliputi — URL halaman, manifes penstriman, DRM dan pautan yang memerlukan log masuk
Alat ini tidak akan menemui media yang tersembunyi di sebalik halaman video, menghuraikan HLS/DASH .m3u8 atau .mpd manifes, memintas DRM, mengepalai spoof atau mengakses strim yang dilindungi sesi. Ia tidak memuat turun kandungan peribadi untuk anda dan tidak memutuskan sama ada lesen memberikan kebenaran untuk menyalin fail. 403, ubah hala ke halaman log masuk atau ralat CORS ialah sempadan untuk difahami, bukan isyarat untuk mencari proksi tanpa dokumen.
Bawa pulang: tiga API pelayar, tiada pelayan — bagaimana Direct Media Downloader menggunakan saluran paip ini pada pautan yang anda tampal
Saluran paip diambil daripada hos yang dibekalkan → terima ketulan → buat Blob → mencetuskan muat turun setempat. Tiada geganti ToolAcre terlibat, tetapi permintaan sebenar kepada hos pihak ketiga terlibat secara mutlak; lognya boleh melihat sambungannya. Direct Media Downloader mengumumkan kenalan itu sebelum membuatnya dan memberitahu anda apabila peraturan keselamatan pelayar menolak bacaan silang asal.