Bir web sayfasından dosyayı alabilmen için önce ne olması gerekiyor
Videoyu görüyorsun. Tam orada, web tarayıcısında oynuyor. Peki neden saklamanın bir yolu yok? Cevap şu: bir web sayfası nadiren dosya verir — talimat verir ve tarayıcının o talimatlardan kurduğu şey tek parça halinde hiç var olmuyor olabilir.
FoxDL Sayfanın videoyu sunduğu dört yol; yalnızca biri dosya
En eskisi ve en basiti doğrudan dosya: sayfa .mp4 ile biten bir adresi işaret ediyor, tarayıcı da onu çekiyor. O adresi bulabiliyorsan dosya senin. Küçük siteler, forumlar, haber siteleri ve dosya servisleri hâlâ böyle çalışıyor.
İkincisi uyarlanabilir yayın — HLS ya da DASH. Sayfa, birkaç kalite seviyesinde yüzlerce kısa parçayı listeleyen bir liste yüklüyor; oynatıcı bunları ilerledikçe birleştiriyor ve bağlantın değiştikçe kalite değiştiriyor. Bulunacak tek bir dosya yok. Kaydetmek, bütün parçaları çekip onlardan bir dosya kurmak demek.
Üçüncüsü blob adresi. Sayfa veriyi JavaScript ile zaten çekmiş ve oynatıcıya tarayıcının kendi belleğinde duran bir şeyin referansını vermiş. Gördüğün adres (blob:https://…) o sayfanın ve o oturumun dışında hiçbir şey ifade etmiyor — açılamıyor, paylaşılamıyor, indirilemiyor; naif “video bulucu”ların çoğu tam burada tökezliyor.
Dördüncüsü korumalı içerik: bir DRM sistemi üzerinden oynatılan şifreli parçalar; çözme anahtarı tarayıcıya, kopya saklamayı açıkça yasaklayan koşullarla veriliyor. Bu, etrafından dolaşılacak bir engel değil; bir lisans sözleşmesinin dayandığı mekanizma ve meşru hiçbir araç bunu aşmaz.
Web tarayıcısı kaydedilecek bir şey olduğunu nasıl fark ediyor
Bulduğunu kaydetmeyi öneren bir uygulama içi web tarayıcısı aynı anda birkaç iş yapıyor. Her biri diğerlerinin kaçırdığı bir durumu yakalıyor.
- Sayfanın medya öğelerini okumak
- Belgede
<video>,<audio>ve<source>etiketlerini gezip adreslerini okumak. Doğrudan dosya durumunu anında yakalıyor, sayfa yüklendikten sonra JavaScript’in kurduğu her şeyi kaçırıyor. - Shadow DOM’un içine bakmak
- Modern oynatıcılar, iç yapısı sayfadan bilinçli olarak yalıtılmış özel öğeler. Sıradan belgede duran bir arama, videonun olduğu yerde boş bir kutu görüyor.
- Sayfanın gerçekte ne istediğini izlemek
- Tarayıcı, sayfanın çektiği her kaynağı biliyor. Yüklenmiş bir medya dosyası — hangi betiğin ne zaman istediğinden bağımsız olarak — görünür sayfada hiçbir şey onu işaret etmese bile burada ortaya çıkıyor.
- Yanıt türünü koklamak
.phpile biten bir adres video döndürebilir,.mp4ile biten bir adres hata sayfası. Hangisi olduğunu sunucunun gerçekten gönderdiğiContent-Typesöylüyor — uzantı bir tahminden fazlası değil.
Sayfadan kaydetmek işlediğinde nasıl görünüyor
Sıra önemli. Başarısızlıkların çoğu ikinci adımı atlayıp bir giriş sayfasının dört gigabaytlık aktarımını başlatmaktan geliyor.
-
Önce bir saniye oynat
Birçok sayfa oynatma başlayana kadar hiçbir şey yüklemiyor. İki saniyelik oynatma, çoğu zaman boş bir aday listesiyle dolu bir liste arasındaki fark.
-
Adayın gerçekte ne olduğunu kontrol et
Başlamadan önce bildirilen boyuta ve türe bak. 14 KB’lık bir “film” HTML sayfası.
video/mp4beklerkentext/htmlgörüyorsan yanlış bağlantıdasın. -
İstediğin kaliteyi seç
Bir yayın genelde birkaç seviye sunuyor. Telefonda en yüksek olan her zaman doğru cevap değil; fark görünmüyor, harcanan alan görünüyor.
-
Oturumun taşınmasına izin ver
Korumalı bağlantılar kimin sorduğuna bakıyor: oturum çerezlerin, seni yönlendiren sayfa, bazen tarayıcı kimliği. Bunlar olmadan başlatılan indirme, sayfa sorunsuz oynasa bile 403 alıyor.
-
İneni doğrula
Aç bak. İki saniye oynayıp duran dosya kırpılmış — genellikle süresi dolmuş bir bağlantı yüzünden — ve saklamak yerine baştan başlamaya değer.
Uygulama içi web tarayıcısının doğru yapması gerekenler
Medyayı bulmanın ötesinde, indirmenin gerçekten tamamlanıp tamamlanmayacağını belirleyen şeyler.
- Oturumu indirmeye taşımak
Çerezler, referer ve tarayıcı kimliği istekle birlikte gitmeli. Bunlar olmadan korumalı bağlantı sayfada açılıyor, indirmede düşüyor.
- Bu bilgileri diske yazmamak
Oturum çerezi, oturum boyunca parola kadar değerli. Aktarım süresince bellekte durmalı ve başka hiçbir yerde olmamalı — veritabanında değil, günlükte değil.
- Bağlantıyı başka uygulamaya vermeyi reddetmek
iOS, o alan adını sahiplenen başka bir uygulama varsa dokunduğun bağlantıyı memnuniyetle ona açıyor. Medya kaydetmek için yapılmış bir tarayıcının gezinmeyi iptal edip kendisi yeniden başlatması gerekiyor; yoksa istediğin sayfa bir başkasının uygulamasında kayboluyor.
- Sayfayı çizilmeden önce budamak
İçerik engelleyici burada yalnızca reklamla ilgili değil — daha az izleyici ve katman, medya listesinde daha az yanlış aday demek.
- Videonun yanında belgeleri de kotarmak
PDF, ZIP ve Office dosyaları insanların webden kaydettiği şeyin diğer yarısı ve aynı kütüphaneye inmeleri gerekiyor.
Sorulanlar
Safari bunu neden kendi başına yapamıyor?
Safari dosya indiriyor — iOS 13’ten beri. Yapmadığı şey, bağlantı verilmek yerine yayınlanan medya için sayfayı incelemek ve parçalı bir yayını dosyaya geri kurmak. O bir web tarayıcısı; bu iş indirme yöneticisinin işi.
Blob adresi nedir, neden indiremiyorum?
Sayfanın zaten bellekte tuttuğu veriye açılan bir tutamak. O sekmenin dışında var olmuyor, dolayısıyla bir yere yapıştırdığında hiçbir şey çıkmıyor. Asıl medya gerçek bir yerden çekilmiş ve bulmaya değen şey blob değil, o adres.
Sayfa sorunsuz oynuyor ama indirme 403 alıyor. Neden?
İndirme isteği, sayfanın sahip olduğu şeyler olmadan gitmiş: oturum çerezin, yönlendiren sayfa, bazen eşleşen bir tarayıcı kimliği. Sunucular izleyiciyi kazıyıcıdan tam olarak bu bileşimle ayırıyor.
Her şey kaydedilebilir mi?
Hayır ve bu tasarım gereği. DRM ile korunan içerik, saklamayı yasaklayan bir lisansla verilen anahtarlarla şifreleniyor. Bazı siteler ayrıca her parçayı kısa ömürlü belirteçlerle imzalıyor. İkisi de amaçlandığı gibi çalışıyor.
FoxDL’in içindeki web tarayıcısı
Günlük tarayıcın olmak yerine işi bir şeyleri kütüphanene getirmek olan, sıradan sekmeli bir web tarayıcısı.
- Altı algılama kanalı — shadow DOM ve sayfanın gerçekten istediği kaynakların kaydı dahil — böylece tamamen JavaScript’le kurulmuş bir oynatıcı da görünüyor.
- Gerçek tür uzantıdan tahmin edilmiyor, yanıttan okunuyor; çekilemeyecek
blob:adayları önerilip düşmek yerine eleniyor. - Çerez, referer ve tarayıcı kimliği indirmeye taşınıyor, korumalı bağlantı böylece açılıyor — ve hiçbiri diske yazılmıyor.
- İçerik engelleyici sayfayı çizilmeden önce buduyor.
- PDF, ZIP ve belgeler tek dokunuşla medyayla aynı kütüphaneye kaydediliyor.
- Sekmeler, yer imleri ve kendi kısayollarından oluşan bir başlangıç sayfası.
FoxDL kendi içeriğini sunmuyor. Kaydettiğin şey senin getirdiğin şey ve saklama hakkına sahip olmak senin sorumluluğunda.
Bu konuda sorulanlar
- Bir web sayfasından nasıl dosya indiririm?
- FoxDL bir HLS (m3u8) yayınını indirebilir mi?
- Uygulamadan çıkınca indirmeler devam ediyor mu?
- FoxDL kanal, film ya da yayın sağlıyor mu?
Okumaya devam
İndirme yöneticisi ne yapıyor da web tarayıcısı yapmıyor
Uygulama değiştirince aktarımlar neden kesiliyor, devam etmek için ne gerekiyor ve yayın nasıl dosyaya dönüyor.
Telefonundaki bir medya uygulaması neyi görür, neyi asla göndermemeli
Bir medya uygulaması neyi görebilir, gizlilik etiketi nasıl okunur ve kilit neden şifreleme değil.
iPhone’da dosyaların gerçekte nerede duruyor ve kim görebiliyor
Kum havuzu, indirmelerin gerçekte nereye gittiği ve yeniden adlandırmanın neden bu kadar çok uygulamayı bozduğu.
Kütüphanen sonunda tek yerde.
İndirmesi ücretsiz. Hesap yok, kayıt yok; tüm özellik seti ücretsiz sürümde.