Sunday, June 15, 2014

AdobeHDS(Adobe HTTP Dynamic Streaming) ve Video İndirme

Uzunca bir süredir Mete Çubukçu'nun NTV'de yayınlanan Pasaport adlı programını izliyorum. Çubukçu, “Pasaport”ta Ortadoğu’dan Avrupa’ya, Kafkasya’dan Amerika’ya uzanan geniş bir coğrafyada siyasi, sosyal, toplumsal gelişmeleri ve hayatları ekrana getiriyor. Çubukçu aynı zamanda dünya liderleriyle röportajlar yaparak programı renklendiriyor. Programın her bölümü ayrı bir keyif olmaKla beraber internet üzerinden izlenebiliyor. Buradaki linkten programın tüm bölümlerine ulaşabilirsiniz.

Benim bu yazıda değinmek istediğim nokta ise, internet ortamında bulunan bu videoları nasıl bilgisayarımıza indirebileceğimiz ile alakalı. Başlangıçta normal bir flash oynatıcı üzerinden stream yapıldığını düşünüyordum. Biraz uğraşsam dosyanın server üzerindeki yolunu bulup, videoyu bilgisayarıma indirebilecektim. Ancak daha sonra videoların "AdobeHDS" denen bir yöntemle stream edildiğini anladım. Peki nedir bu AdobeHDS?

AdobeHDS(Adobe HTTP Dynamic Streaming) normal HTTP bağlantıları üzerinden MP4 standartlarına uygun naklen video yayını yapılabilen bir yöntem. Ayrıca varolan önbellek altyapısını kullanarak iş akışı içerisine içerik hazırlamanızı sağlayan bir arayüz de sunmaktadır. Bu yazıda avantaj ve dezantajlarından bahsetmeyeceğim. Daha fazla bilgi almak isterseniz bu linkte fazlasıyla mevcut.

Peki AdobeHDS yöntemi ile stream edilen bir videoyu nasıl indirebiliriz? Öncelikle videonun olduğu sayfayı tarayıcımız ile açıyoruz. Ben indirme işlemini Chrome kullandığım için, onun üzerinden anlatacağım. Her stream edilen dosya mutlaka ve mutlaka "manifest.f4m" adından bir yapı tarafından sisteme tanıtılmıştır. Bizim yapacağımız iş bu yapının dosya yolunu bulmak. Bunun için Chrome'da F12 tuşuna basıp açılan pencereden "Network" sekmesini seçip beklememiz yeterli. Bundan sonra yapacağımız iş "manifest.f4m" dosyasının Chrome tarafından yakalanmasını beklemek.



Yukarıdaki resimlerde gördüğünüz gibi dosya Chrome tarafından yakalandı. Dosyanın server üzerindeki kaynak yolunu almak için dosyanın üzerine sağ tıklayıp "Copy Link Adress" dememiz yeterli. Alınan kaynak yolunu bir yere kaydelim.

Örnek bir "manifest.f4m" dosyası: İndir

Şimdi AdobeHDS için yazılmış bir scripti indirmemiz gerekiyor. Bunun için bu linkteki geliştiricilerin en güncel versiyonunu indirebileceğiniz gibi benim şu an kullandığım versiyonu da bu linkten indirebilirsiniz. Şimdi sıra geldi bu scripti çalıştırmaya, öncelikle scripti arşivden çıkarın daha sonra herhangi bir Linux dağıtımı üzerinde dosyaları çıkardığınız yere terminal ile "cd" komutunu kullanarak gelin. Ve daha sonra terminale

php AdobeHDS.php --manifest "[MANIFEST_URL]" --delete

yukarıdaki komutu yazınız. Bu arada [MANIFEST_URL] yerine daha önce almış olduğumuz "manifest.f4m" dosyasının server üzerindeki kaynak yolunu yazıyoruz. Ardından script videoyu indirmeye başlıyor. Sistemde php veya curl yüklü değilse ve yahut "curl" eklentisi açık değilse uygulama hata verecektir. Sisteme uygun yülemeleri ve ayarlamaları yaptığınız vakit tekrar denemeniz gerekecektir.


Yukarıdaki resimde "You don't have 'curl' extension installed. please install it before continuing." hatası aldık. Bu hatayı giderdikten sonra tekrar indirme işlemini yapıyoruz. Aşağıdaki resimde başarılı bir indirme işlemi yapılıyor. Yazı çok fazla uzamadan burada kesmek istiyorum. Bugünlük bu kadar yeter. Başka bir yazıda tekrar görüşmek dileğiyle.

4 comments:

  1. merhabalar hocam,
    internetdownloadmanager yükleyince ilgili interne explorer pluginin sayesinde direkt indirebiliyorsunuz. taklaya gerek yok :) yine de teşekkürler..

    ReplyDelete
    Replies
    1. Yazının tek amacı videoyu internetten indirmek değil, aynı zamanda işin arka planını gösterebilmek. Belki de bir gün hevesli bir kaç arkadaş bu indirme işlemini yapacak başka eklentileri ve uygulamaları yazarlar.

      Delete
  2. Hocam çok sağol benim gibi Ubuntu kullanan kullanıcılar için çok güzel bir yazı ama curl eklentisini de indirmeyi yazsaydınız çok iyi olurdu. :D

    curl indirmek için terminalden bunu girin
    sudo apt-get install php5-curl
    yada
    Synaptic paket yöneticisinden
    php5-curl i tıkla ve kur deyin :D
    Hepsi bu kadar artık videoları indirebilirizzzz.

    ReplyDelete
    Replies
    1. Evet haklısınız, yaptığınız ekleme için teşekkür ederim.

      Delete