Web içinden NESNE ve o nesneye bağlı OLAY ı çekmek

Başlatan OG, 29 Mayıs 2016, 11:31:47

OG

Arkadaşlar PC programı içinden youtube videosunu indirmek istiyorum.

Malumunuz, youtube videolarının yanlızca kimlik bilgisi açık rastgele bir örnek youtube ID'si  tRzjkhvPN5c

Bunu değişik çağırma usulleri var bilirsiniz, autoplay, tam sayfa vs vs

Fakat bildiğiniz gibi youtube videoyu indirmek için direk videonun linkini vermiyor.
Herhangi bir player ile (web tabanlı veya pc, mobil cihaz vs playerları gibi) videoyu çağırdığınızda, videoyu izletmek için süresi kısıtlı yani belli bir zamana kadar gecerli olan bir link veriyor, bunu uzun bir kodlama cümlesi ile yapıyor, içine yığınla birşeyler tıkıştırıyor :) , hatta içine istemci tarafın IP'sini falan dahil ediyor, bu kod ile video izleniyor, o da belirli bir süre için gecerli link.

İzlenen videoyu indirmek için birçok yöntemler, browser eklentileri falan geliştirilmiş. Bu şekilde o videoyu indirme imkanımız var.

Ben şunun peşindeyim, kendi videolarım var youtube da, videolarım ile ilgilenenlerin çoğu bu gibi işlerle ilgilenmeyen insanlar ve benden bir beklentisi var, istediğim videoyu bir tıklama ile indireyim ve istediğim zaman tekrar tekrar izleyeyim diyor.

Bunun için küçük basit bir pc prg yapmaya niyet ettim. Tıkanılan yer indirme linkine kolayca sahip olamamak.

En basit yöntem olarak savefrom.net sitesinin verdiği hizmet aklıma geldi (aynı yöntemde başka benzerleri de var)

Bu video
https://www.youtube.com/watch?v=tRzjkhvPN5c


Bu şekilde yazılıp wed browser da çağrılınca

https://www.ssyoutube.com/watch?v=tRzjkhvPN5c
 

savefrom.net sitesinde videoyu indirme linki elde edilmiş olunuyor


resim

Ekrandaki yeşil renkli İndir butonu tıklayınca webdownloader direk açılıyor ve indirme işlemine imkan tanınıyor.

Bu butonu kullanılan web browserda öğeyi incele dediğimde event (olay) içeriğinde indirme linkinin (bazı temizlikler yapmak şartı ile) hazır olduğunu görüyorum. Temizlikleri yaptıktan sonra ilgili link çağrılırsa downloader aktif oluyor, yani youtube un direk linki elde edilmiş olunuyor (süre, ip sınırlamalı link)

Yazacağım PC tabanlı programa webbrowser dahil edip 
https://www.ssyoutube.com/watch?v=tRzjkhvPN5c
 

linkini tıkladığımda browser içinde problemsiz olarak sayfa açılıyor.

Bundan sonrası bu nesnenin event ini almaya kalıyor.

Bunu VB6 da yapamadım, çünkü vb6 web içerekli çalışmalarda çok zayıfım.

Bu konuda yol gösterebilecek varmıdır.

Bu nesneyi tespit edip onu tıklamak da bir çözüm olabilir.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

fatih6761

Hocam savefrom.net pek güvenilir bir çözüm değil bence.
Açık kaynak kodlu youtube-dl diye bir proje var. Python ile çalışıyor.
Ancak Windows Executable biçiminde olanı python'ı kendisi içeriyor sanırım.
Projenize eklemek/port etmek veya projenize exe'sini ekleyip programı çağırarak kullanabilirsiniz.
Kanaatimce daha profesyonel bir çözüm olur.
https://rg3.github.io/youtube-dl/
(Sayfada Windows Executable için link mevcut)

OG

Karşılaştığım en akılcı çözüm.
Biraz uğraştım uyarlayamadım.  Örnek varmıdır.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

JKramer

Alıntı yapılan: OG - 29 Mayıs 2016, 11:31:47
Ben şunun peşindeyim, kendi videolarım var youtube da, videolarım ile ilgilenenlerin çoğu bu gibi işlerle ilgilenmeyen insanlar ve benden bir beklentisi var, istediğim videoyu bir tıklama ile indireyim ve istediğim zaman tekrar tekrar izleyeyim diyor.
Videolar sizinmiş, yani bilgisayarınızda da dosyalar mevcut. Bunları Google Drive, Onedrive, Dropbox, vb. sitelere yükleseniz, bu adresleri de ilgili Youtube sayfasının açıklama kısmına ekleseniz nasıl olur? İsteyen youtube'dan izler, indirmek isteyen de açıklama kısmındaki adrese tıklar.

Hatta şimdi Google Drive'a bir video yükledim, paylaşım adresine tıklayınca doğrudan videoyu izleyebiliyorsunuz. Eğer paylaşım özelliklerinden "indirme"ye izin vermişseniz sayfanın en üstünde indirme butonu çıkıyor.

OG

Bu seceneğim var, bu anlamda youtube a yönelmem 2 sebeple
-Yotube gibi sağlam host yok
-Ücretsiz
-Canlı yayın imkanı da sunuyor

bu sebeplerle tüm host işini Youtube olarak kullanmak mümkün, tabi yaptığınız işin tümü video yayınlamak ise.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

fatih6761

Alıntı yapılan: OG - 30 Mayıs 2016, 06:56:07
Karşılaştığım en akılcı çözüm.
Biraz uğraştım uyarlayamadım.  Örnek varmıdır.

https://github.com/rg3/youtube-dl/blob/master/README.md#description

Hocam youtube-dl.exe "http://www.you-tube.com/watch?v=uBkPX_QhRI0" yaparsanız mevcut olan en iyi kaliteyle "Video_Adı-uBkPX_QhRI0.mp4" gibi bir isimle kaydeder.
(you-tube şeklindeki yazım videoya dönüşmesin forumda diye, yoksa normal linki kopyalayıp yapıştırın.)
Tabi şöyle bir durum da var hocam. Youtube da dosyalar DASH denen sadece ses ve sadece video olarak 2 dosya halinde bulunabiliyor.
Eğer siz formatı belirtmezseniz program bazen en iyi kalite bu olduğu için 2 dosyayı indirip ffmpeg aracıyla birleştiriyor. Yani işlemlerin kendinden hallolması için bir de ffmpeg e ihtiyacınız olacak.
Eğer youtube-dl "link" -F yaparsanız mevcut/mümkün olan dosya formatlarını gösterir. Örneğin 1280x720 mp4 var. bunu indirmek için -f parametresiyle formatı belirtiyorsunuz.
Bu format parametresinin kullanımı çok geniş olduğu için anlatmak yerine link vermem daha mantıklı olur:
https://github.com/rg3/youtube-dl/blob/master/README.md#format-selection

Bir de hocam programın çok fazla yeteneği olduğu için (mesela dosya isimlendirme seçenekleri) ilk linkte verdiğim dökümantasyonu birkaç defa okuyarak kullanmak istediğiniz özellikleri bir kenara not edip şablon bir komut satırı oluşturabilirsiniz.