Pratik Araçlar

2KB'lık Sahte Dosyalara Elveda: MP4 Video Doğrudan Bağlantıları Nasıl Doğru Bir Şekilde Yakalanır ve İndirilir (Eksiksiz Komut Satırı Çözümleriyle)

`.mp4` ile biten bir bağlantı görüyorsunuz, heyecanla indirme yazılımınıza atıyorsunuz ve sonunda sadece 2KB'lık bir web sayfası dosyası veya `403 ...

21 Nis 2026·5 dk okuma

.mp4 ile biten bir bağlantı görüyorsunuz, heyecanla indirme yazılımınıza atıyorsunuz ve sonunda sadece 2KB’lık bir web sayfası dosyası veya 403 Forbidden hatalarıyla dolu bir ekranla karşılaşıyorsunuz. Tanıdık geldi mi?

Bir zamanlar ben de bu “sahte doğrudan bağlantılar” yüzünden ağ hızı sorunu olduğunu düşünerek çıldırma noktasına gelene kadar işkence gördüm. Aslında, hepsi sunucu tarafındaki numaraları anlamadığımdan kaynaklanıyordu: web sayfasındaki video indirme düğmesi çapraz kaynak (cross-origin) hataları bildiriyor ve kopyalanan bağlantının bir son kullanma Token’ı var… Bugün, “oynatılabilir ama indirilemez” lanetini tamamen kıracağız. Bu doğru tanımlama, paket yakalama ile sorun giderme ve zorla indirme konusunda aptalca basit süreci güçlü komut satırı araçlarıyla birlikte öğrendiğiniz sürece, video indirme sorunlarının %99’unu çözebileceksiniz.

1. Uzantıya Aldanmayın, Gerçek Bir “Doğrudan Bağlantı” Nedir?

Temel bir ilkeyi unutmayın: URL’deki .mp4 sadece bir kılık değiştirmedir; gerçek doğrudan bağlantı sunucunun yanıt Başlıklarına (Headers) bağlıdır.

İndirmeniz başarısız olursa, büyük ihtimalle sunucu sizi gizlice 302 durumuyla başka bir sayfaya yönlendirmiştir veya bir 401 (giriş yapılmamış) veya 403 (hotlink koruması engellemesi) döndürmüştür. Doğrudan indirilebilecek nitelikli bir doğrudan bağlantı yanıtı şöyle görünmelidir:

HTTP/1.1 200 OK
Content-Type: video/mp4
Content-Length: 104857600
Content-Disposition: attachment; filename="sample.mp4"
Accept-Ranges: bytes

Bu yanıt nasıl yorumlanır?

  • video/mp4, kılık değiştirmiş HTML değil, gerçek bir video olduğunu kanıtlar.
  • Content-Length, dosyanın gerçek boyutunu ortaya çıkarır.
  • Content-Disposition: attachment, sunucunun “lütfen bunu bir dosya olarak indirin” diye açıkça belirtmesidir.
  • Accept-Ranges: bytes, devam ettirilebilir (resumable) indirmeleri desteklediği anlamına gelir (bu çok önemlidir!).

2. Sorun Giderme İçin Altın Yöntem: Önce İncele, Sonra İndir

Kaynağı bilinmeyen bir bağlantıyla karşılaşıldığında, en güvenli yaklaşım onu adım adım incelemektir. Bu, “deneme yanılma için doğrudan bir indirici aramaktan” çok daha hızlıdır.

Adım 1: Doğrudan tarayıcının adres çubuğuna yapıştırın URL’yi doğrudan tarayıcınıza yapıştırın. Tarayıcı bağımsız bir saf video oynatma arayüzü açarsa veya doğrudan bir indirme kutusu açarsa, tebrikler, sadece sağ tıklayıp “Farklı Kaydet” demeniz yeterli.

Adım 2: “Dibi incelemek” için curl komut satırını kullanın Tarayıcı normal bir web sayfası açarsa, bu gerçek bir dosya doğrudan bağlantısı olmadığı anlamına gelir. Terminali açın ve hafif bir başlık incelemesi için curl kullanın:

# Sadece yanıt başlıklarını görün ve yönlendirmeleri izleyin (fiziksel dosyayı indirmeyin)
curl -I -L "https://example.com/path/video.mp4"

Eğer Content-Type: text/html veya uzun bir .ts segmentleri listesi döndürürse, onu bir MP4 olarak indirme hayalinden hemen vazgeçin.

Birçok video web sitesi, istek başlıklarındaki Referer (kaynak sayfa) ve Origin’i doğrulayacak ve hatta bir Cookie (giriş durumu) gerektirecektir. Bu noktada en hızlı yöntem doğrudan tarayıcının ödevini kopyalamaktır:

  1. Videonun bulunduğu web sayfasını açın, Network (Ağ) paneline girmek için F12’ye basın.
  2. Preserve log (Günlüğü koru) seçeneğini işaretleyin ve önbellek ağırsa Disable cache (Önbelleği devre dışı bırak) seçeneğini de işaretleyin.
  3. Sayfayı yenileyin veya videoyu oynatmak için tıklayın.
  4. Filtrede, önce mp4’ü arayın (yoksa, sonra m3u8 veya ts’yi arayın).
  5. Boyutu sürekli genişleyen veya durum kodu 206/200 olan medya isteğini bulun. Headers’ını incelemek için tıklayın ve Referer veya Cookie gibi hotlink koruma bilgilerini içerip içermediğini onaylayın.
  6. İsteğe sağ tıklayın ve Copy -> Copy as cURL seçeneğini seçin.

Bu kodu aldıktan sonra, doğrudan terminale yapıştırın ve çalıştırın. Bu, tam bir geçiş setine sahip “yenilmez indirme emridir”!

4. Komut Satırı Katil Araçları: curl ve wget’in Gelişmiş Kullanımı

Doğrudan bağlantıyı onayladıktan ve istek başlıklarını anladıktan sonra, sırada zorlu indirme oturumu var. Aşağıda curl ve wget için en yaygın kullanılan ve güvenilir komutlar bulunmaktadır:

Temel curl Hamleleri

# Temel indirme: Doğrudan indirin, dosya adı URL tarafından belirlenir
curl -L -O "https://example.com/path/video.mp4"
 
# Devam ettirilebilir indirme: Ağ bağlantısı kesilirse indirmeye devam edin
curl -L -C - -o "video.mp4" "https://example.com/path/video.mp4"
 
# Hotlink korumasını kırma: Referer, User-Agent, Origin ve Cookie'yi tamamlayın
curl -L \
  -e "https://example.com/watch/123" \
  -A "Mozilla/5.0" \
  -H "Origin: https://example.com" \
  -b "sessionid=abc123" \
  -o "video.mp4" \
  "https://cdn.example.com/media/abc.mp4?token=..."

Temel wget Hamleleri (Devam ettirilebilir indirmeler için daha uygundur)

# Temel indirme: Yanıt başlıklarını yazdırın ve belirtilen dosya adıyla kaydedin
wget --server-response -O "video.mp4" "https://example.com/path/video.mp4"
 
# Hotlink korumasını kırma: Eksiksiz geçişleri ve Cookie dosyasını bağlayın
wget \
  --referer="https://example.com/watch/123" \
  --user-agent="Mozilla/5.0" \
  --header="Origin: https://example.com" \
  --load-cookies cookies.txt \
  -O "video.mp4" \
  "https://cdn.example.com/media/abc.mp4?token=..."

5. Ya Bir .m3u8 Yakaladıysanız?

Kendinizi kandırmak için asla bir .m3u8 uzantısını .mp4 olarak değiştirmeyin! Bir .m3u8, yalnızca yüzlerce veya binlerce video segmenti (.ts veya fMP4) içeren bir oynatma listesidir (bir menüye benzer).

Bu durumla karşılaştığınızda, hemen HLS düşüncesine geçin, curl’ü bırakın ve ffmpeg veya özel bir indirici çıkarın:

Çözüm A: Tek Tıklamayla Birleştirmek için ffmpeg Kullanın

# M3U8 listesindeki tüm segmentleri indirin ve bunları kayıpsız bir şekilde MP4'te birleştirin
ffmpeg -i "https://example.com/master.m3u8" -c copy "output.mp4"
 
# Sunucu seçiciyse, kılık değiştirme parametrelerinizi ekleyin
ffmpeg \
  -user_agent "Mozilla/5.0" \
  -referer "https://example.com/watch/123" \
  -cookies "sessionid=abc123; path=/; domain=example.com;" \
  -i "https://cdn.example.com/master.m3u8?token=..." \
  -c copy "output.mp4"

Çözüm B: N_m3u8DL-RE Kullanın (Yarı Otomatik Araç)

Karmaşık HLS / DASH akışları için bu araç daha iyi bir deneyim sunar:

# En iyi parçayı otomatik olarak seçin, istek başlıklarını ekleyin ve tamamlandığında MP4'e çoğullayın
N_m3u8DL-RE "https://example.com/master.m3u8" \
  -H "Referer: https://example.com/watch/123" \
  -H "Cookie: sessionid=abc123" \
  --auto-select \
  -M format=mp4 \
  --save-name "video"

6. Yerinizi Alın: Yaygın 4 Hata ve Çözümleri

Bir hatayla karşılaştığınızda, sorunu dakikalar içinde bulmak için doğrudan bu tabloya bakın:

  • Hata 403 veya “Tarayıcı görebilir, ancak komut satırı göremez”: Kesinlikle bir hotlink koruması engellemesidir. Paket yakalamak için DevTools’a gidin ve Referer, Origin ve Cookie’yi tamamlayın.
  • İndirilen dosya sadece birkaç KB: Yanlış katmanı indirdiniz! Yakaladığınız şey bir yönlendirme (302 atlama) veya bir HTML hata sayfasıdır. Atlamaları izlemeye zorlamak için curl -L kullanın.
  • Konsol CORS çapraz kaynak hatası bildiriyor: Çapraz kaynak kısıtlamaları web sayfasındaki betiklere uygulanır. Bunlar, indirmek için bağlantıyı doğrudan adres çubuğuna kopyalamanızı engellemez! Çapraz kaynağı dosya bozulmasıyla karıştırmayın.
  • Bağlantı bir süre sonra 403 ile geçersiz oluyor: Bu, Token içeren imzalı bir bağlantıdır ve süresi dolmuştur. En son URL’yi yakalamak için sayfayı yenileyin.
  • Devam ettirilebilir indirme 416 (Range Not Satisfiable) hatası veriyor: Bu, yerel olarak kalan bozuk dosyanın uzunluğunun zaten sunucu tarafındaki ilerlemeyi aştığı anlamına gelir. Devam etmeye zorlamayın; bozuk dosyayı silin ve tekrar indirin.

7. Son Güvenlik ve Uyumluluk Hatırlatıcısı

İndirme işlemi tamamlandıktan sonra, büyük bir dosyaysa, dosyanın bozulmadığından emin olmak için bir karma (hash) doğrulaması yapılması önerilir:

# macOS / Linux
shasum -a 256 ./video.mp4
 
# Windows PowerShell
Get-FileHash .\video.mp4 -Algorithm SHA256

(Feragatname: Teknik olarak yapabiliyor olmanız, yasal olarak haklı olduğunuz anlamına gelmez. Lütfen erişim hakkınız olan içeriği indirdiğinizden emin olun ve bu teknolojiyi DRM korumalı akışları kırmak veya korsan içerik dağıtmak için kullanmayın.)


The Bottom Line
Video indirmenin özü şansa güvenmek değil, sunucuyla gizli kodlar alışverişinde bulunmaktır. İndirilemeyen bir videoyla bir dahaki sefere karşılaştığınızda, önce paketleri yakalamak ve yanıt başlıklarını görmek için F12’ye basın, ardından doğru bir saldırı için doğru istek başlıklarına sahip cURL veya wget kullanın. Şimdi, rastgele bir web sayfası videosu açın ve ilk doğrudan bağlantınızı yakalamak için Copy as cURL kullanmayı deneyin!

Yazar: Baiwei

İlgili Makaleler

M3U8 yayını hakkında sizin için seçilen diğer makaleler