6 puan yazan GN⁺ 2023-08-15 | 1 yorum | WhatsApp'ta paylaş
  • YouTube'un video indirme hız kısıtlamasını aşma yöntemine dair bir yazı
  • YouTube, reklam izlenmelerinden gelir elde ediyor ve resmi olmayan istemcilerde video izlenmesini veya indirilmesini engellemek için kısıtlayıcı önlemler uyguluyor
  • Hız kısıtlamasını aşmanın ilk adımı, YouTube API'siyle iletişim kurarak video dosyasını içeren gerçek URL'yi bulmak
  • YouTube, çoğu dosya URL'sinde n adlı belirli bir parametre kullanıyor; bu parametre, base.js dosyasında bulunan bir JavaScript algoritmasıyla dönüştürülmeli. Bu parametre, indirmenin "resmi" bir istemciden başlatılıp başlatılmadığını doğrulayan bir meydan okuma görevi görüyor
  • JavaScript algoritması obfuscate edilmiş ve sık sık değiştirildiği için bunu anlamak amacıyla tersine mühendislik yapmaya çalışmak pratik değil. Çözüm, JavaScript dosyasını indirip algoritma kodunu çıkarmak ve n parametresini vererek çalıştırmak
  • YouTube, yine de videonun boyutuna ve süresine dayalı değişken indirme hızı kısıtlama kuralları uyguluyor. Bu kısıtlamayı aşmak için indirme işlemi, HTTP Range başlığı kullanılarak birden fazla küçük parçaya bölünebilir
  • YouTube, video ve ses kanallarını iki ayrı dosya olarak dağıtıyor. Son adım, bu iki kanalı tek bir dosyada birleştirmek ve bu işlem ffmpeg ile yapılabiliyor
  • Şu anda birçok proje, YouTube video indirmesini engellemek için konulan kısıtlamaları aşmak amacıyla bu teknikleri kullanıyor. En popüler olanı, Python ile yazılmış yt-dlp (youtube-dl çatalı), ancak bu araç n parametresini dönüştürmek için kendi özel JavaScript yorumlayıcısını da içeriyor
  • Yazı, süreci açıklıyor ve kod parçacıkları sunarak konuyu başlangıç seviyesindeki yazılım mühendisleri için erişilebilir hale getiriyor

1 yorum

 
GN⁺ 2023-08-15
Hacker News görüşü
  • YouTube'un video indirme kısıtlamalarını aşma yöntemine dair makale: HTTP Range başlığı kullanılarak indirme küçük parçalara bölünüyor
  • HTTP Range başlığı: her istekte indirmek istediğiniz dosyanın hangi bölümünün alınacağını belirtmenizi sağlar
  • Bazı kullanıcılar: aralığa ilişkin sorgu parametreleri ekleyerek kısıtlamayı aşabildiklerini ve aktarım hızını geri kazanabildiklerini söylüyor
  • YouTube'taki kısıtlamanın kalktığına dair bildirimler: bazı kullanıcılar hâlâ kısıtlama sorunları yaşıyor
  • YouTube'un küçük değişiklikleri: platformdan MP4 dosyası indirmesi gereken araçlarda sorunlara yol açıyor
  • Bazı kullanıcılar video kalitesinde farklılıklar fark etti: bunun, YouTube'un sıkıştırma artefaktlarını yumuşatan ince bir filtre uyguluyor olabileceğine işaret ettiği düşünülüyor
  • YouTube'un video dağıtımı: internet bağlantısının zayıf olduğu bölgelerde bile akıcılığıyla övgü alıyor
  • YouTube kısıtlamalarını aşmanın etik sonuçlarına dair tartışma: bazıları normal tarayıcı hızlarını optimize etmenin makul olduğunu savunurken, diğerleri YouTube kaynaklarını daha fazla kullanmanın adil olmadığını düşünüyor
  • Makalede anılan yt-dlp: youtube-dl'nin Python tabanlı bir fork'u olup, parametreleri dönüştürmek için özelleştirilmiş bir JavaScript yorumlayıcısı içeriyor