Gönderinin başlığından da anlaşılacağı gibi, YouTube videolarını indirmenin bu yolu en iyilerden biri değil, bu amaca yönelik programların burada gördüklerimiz gibi nasıl çalıştığını öğrenmenin bir yoludur (youtube-dl, True için, birçok olasılıkları var ve mükemmel, tavsiye ederim).
Yöntem, ortak komutları kullanmaktır. GNU / Linux bu amaç için oldukları gibi kıvırmak ve birçok yardımcı program darbe y piton bu komut dosyaları oluşturmak için kullanılabilir. Yöntemin otomatik olmadığı, kullanıcının müdahale etmesini gerektirdiği unutulmamalıdır.
İlk olarak, "testi" yapmak için bir video bulduk.
Daha sonra kaydettiğimiz ve çalıştırdığımız bir script üzerinden sayfanın içeriğini aşağıdaki gibi elde ederiz:
"nombre del script" "url de youtube"
Örnek:
./script_url https://www.youtube.com/watch?v=1r-bWx3WZfQ
#!/bin/bash
ip=$(curl ifconfig.me)
for ((i=0;i<=10;i++))
do
curl -s $1 | grep "r$i---" | grep "expire" | grep "$ip" | grep "http" | grep "ratebypass" | grep "itag"
done
Komut dosyası açıklaması:
Yakında kullanılacak olan ip için bir değişken oluşturulur, ardından "$ i" değişkenindeki farklı sayıları denemek için bir döngü izlenir, ardından bir sonraki satır, içeriği ve kelime filtrelerini elde etmek ve konumunu "kolaylaştırmak" içindir. bizi ilgilendiren bağlantı.
Önceki betiği çalıştırdığımızda, şöyle bir çıktı döndürür:
Bunun mantıklı olmadığını düşünebilirler ama aslında göründüğünden daha kolay. Elde ettikleri çıktıdan, içerikte gizli olan varsayılan bir bağlantıyı arar, seçer ve kopyalarız, genellikle şu forma sahiptir:
http%3A%2F%2Fr2---sn-j5caxvoq5-2ute.googlevideo.com%2Fvideoplayback%3Fitag%3D5%26sver%3D3%26source%3Dyoutube%26mv%3Dm%26id%3Dd6bf9b5b1dd665f4%26ip%3D190.XXX.XX.XX%26key%3Dyt5%26upn%3DOPyez7xDXx0%26expire%3D1394709761%26sparams%3Did%252Cip%252Cipbits%252Citag%252Csource%252Cupn%252Cexpire%26ms%3Dau%26fexp%3D935640%252C927904%252C932250%252C910207%252C927860%252C916611%252C937417%252C913434%252C936910%252C936913%252C902907%252C934022%26mt%3D1394685288%26signature%3D0A96F682936F3E20015E95DC15AC3D291372CDD5.BF5B9EFF421155747A2267148C8F35B018D4A689%26ipbits%3D0
Aslında bunun gibi pek çok bağlantı var ama hepsi çalışmıyor. Onu aramak biraz zor olabilir, bu yüzden bu iş için kelimeleri bulmalıyız http, ipbitler, upn, imza ve bu, formun birkaç karakteri ve numarasıyla biter BF5B9EFF421155747A2267148C8F35B018D4A689; Zaten sözde bağlantıdaki bu nesnelerle, onu kopyalıyoruz.
Unutulmamalıdır ki bağlantı çoğu zaman yanlış olabilir, en azından benim durumumda bunu 3 farklı bağlantı ile yapmak zorunda kaldım, ancak işe yarıyor.
Kopyaladığımız kod aslında bir kaynağın adresidir (bu durumda videodur), ancak yüzde işaretiyle başlayan sayılar gibi HTML dili tarafından kullanılacak karakterler biçiminde yazılmıştır ( %).
İstediğimiz, "http: //" türünde "okunabilir" bir adres olduğu için, bu kodları karakterlere dönüştürmeliyiz, böylece bunu python ile yapılmış bir komut dosyasıyla yapacağız:
#!/usr/bin/python
def parse_conv(dvar):
df=""
count=0
global chain
chain=""
for dc in dvar:
if dc=="%" and count==0:
count=1
elif count==1 or count==2:
df=df+dc
if count==1:
count=2
else:
count=0
chf=chr(int(df,16))
chain+=chf
df=""
else:
chain+=dc
dvar=input("Código a convertir: ")
parse_conv(dvar)
parse_conv(chain)
print(chain)
Diğer betikte olduğu gibi, onu kaydedip çalıştırırlar. Bunun gibi bir şey görünecek, tam orada önceki adresi yapıştırıp giriyorlar; "Http: //" gibi bir adres görünecektir:
Bununla kullanacağız wget aşağıdaki gibi videoyu indirmek için:
wget -c "http://r2---sn-j5caxvoq5-2ute.googlevideo.com/videoplayback?itag=5&sver=3&source=youtube&mv=m&id=d6bf9b5b1dd665f4&ip=190.XXX.XX.XX&key=yt5&upn=OPyez7xDXx0&expire=1394709761&sparams=id,ip,ipbits,itag,source,upn,expire&ms=au&fexp=935640,927904,932250,910207,927860,916611,937417,913434,936910,936913,902907,934022&mt=1394685288&signature=0A96F682936F3E20015E95DC15AC3D291372CDD5.BF5B9EFF421155747A2267148C8F35B018D4A689&ipbits=0"
Umarız biter ve videomuzu youtube'dan oldukça garip bir adla indiririz:
Yeniden adlandırıyoruz ve bağlantıdaki videoyla aynı olduğunu görüyoruz, bu nedenle, bu tür bir programın nasıl çalıştığını bilmek istiyorsanız bunun zor ama yararlı bir yol olduğunu zaten doğruladık.
Umarım size yardımcı olur.
İyi gönderi, daha basit bir yöntemi tercih ederim, videoyu tarayıcıda ararım ve ardından terminalde yeniden üretirim:
#lsof | grep Flaş
sonra süreci kopyalıyorum ve bana flv veriyor
cp / proc / xxxxx / fd / xx / yol / / save.flv
benim için işe yaramadı, benim için eklenti-co 25074'ü aldım mem, bu mem bir dosya tanımlayıcı olmalıdır.
her neyse, du -hL / proc / 25074 / fd / * kullanarak hiçbiri Youtube videosu olacak boyutta değil, FD'nin neden çıkmadığını bilen var mı?
Çalışırken binlerce video ve film indirmek için yarım yıldır jdownloader kullanıyorum. Tabii ki terminali kullanmayı tercih edenler için en hafif olmamasının yanı sıra geçerli bir araç değil (her şey ve sistemle birlikte yaklaşık 100 mb ram gerektirir).
En iyisi değil, ancak Firefox için Easy Youtube Video Downloader Express adlı bir uzantı var ...
Ligden ayrılıyorum: https://addons.mozilla.org/es/firefox/addon/easy-youtube-video-download/
Beni acelemden kurtardı zaten ... Meksika'dan selamlar
Web sayfalarını "ayrıştırmayı" her zaman sevmişimdir, bu bilgi ayrıştırma (webs) + linux'un güçlü şeyler yapan küçük komut dosyalarını hayal etmeye izin verdiği tartışılmazdır 😀 (kötü niyetli olmayan amaçlarla bot)
Web siteme php biçiminde yükledim ki, "vpnbook" un çok sık değişen ücretsiz vpn şifresini "yalnızca" gösteriyor, daha sonra yapmayı umduğum şey onu her gün sabah 7'de cep telefonuma göndermek veya sms ile movistar sayfasından (başka bir bot aracılığıyla): D.
sayfa
http://rojosbar.com/AL/1.php
kod
http://paste.desdelinux.net/4940
komut dosyasını bilgisayarınızdan şu komutla da çalıştırabilirsiniz:
php SCRIPT.php
burada SCRIPT.php php kodu ile dosyanın adını temsil eder
-----
ISSUU'dan "dergi sayfalarını" indirmek ve bunları PDF olarak kaydetmek için yaptığım başka bir komut dosyası (çok yeşil) (çünkü web sitelerinde gösterdikleri flash sürümünü beğenmedim)
Çalışan php betiğinin videosuna bakın
https://www.youtube.com/watch?v=h82r41UOWLQ
kod
http://paste.desdelinux.net/4941
youtube-dl [video]
başka ne için? basit ve etkili 🙂
Ama çaban için seni tebrik ediyorum
jdownloader kullanıyorum
Burada python betiğini tekrar bırakıyorum, çünkü koyduğumda sekme olmadığını fark ettim.
http://paste.desdelinux.net/4942
Programsız ve daha kolay bir yol.
1) Videoya sağ tıklayın.
2) "İnceleme öğesi" ne gidin
3) Kendinizi Video Etiketinde bulun
4) SRC özelliğine gidin ve bu bağlantıyı kopyalayın (5. ve 6. adımları atlamak istiyorsanız, konsola gidin ve wget ve kopyalanan bağlantıyı yazın)
5) Bu bağlantıyı başka bir sekmede açın
6) Sağ tıklayın -> Videoyu farklı kaydet ...> bitti, keyfini çıkarın.
Harika bir gönderi, bundan yararlanabilecek izleyiciler için oldukça kafa karıştırıcı olabileceğini düşünmeme rağmen.
Zaten gönderide, YouTube videolarını indirmenin daha iyi yolları olduğu açık. Amaçları, linux'un bir web'den veri elde etme olanaklarını göstermektir.
Katkı olarak küçük bir örnek:
kıvırmak -s http://rss.thepiratebay.se/101 | grep mıknatıs | grep bağlantısı | sed -r "s / ^.* (. +) $ / \ 1 / g" | satır okurken; yankı iletimi-uzak -bir $ satırı; bitti
Son 60 olan tüm müzik mıknatısı bağlantılarını piratebay rss beslemesinden kaldırır ve bunları iletime ekleme komutunu gösterir. "echo" yu kaldırırsak, onları doğrudan ekler, dikkatli olun.
Flexget veya benzeri ile yapılabileceğini biliyorum, ancak bununla ilgili değil, web'den almak istediğiniz bilgileri belirlemek ve Linux'ta sahip olduğumuz araçlarla onu izole etmenin bir yolunu bulmakla ilgili.
Umarım fazla uzatmadım veya çok fazla izinsiz girmedim.
Youtube-DL kullanmak daha kolay olmaz mıydı?
Video indirmek için:
Youtube-dl [video URL'si]
Yalnızca sesi indirmek için:
youtube-dl -x –ses-format mp3 [video URL'si]
Daha iyi anlamamıza yardımcı olan iyi gönderi.
CLIPGRAB kullanıyorum ve bir konsol ise clive veya cclive komutunu kullanıyorum. Herhangi bir senaryoya ihtiyacım yok 🙂
Çoğu sıkıcı uu, evet, zaten bu işlevi yerine getiren birçok komut dosyası ve yazılım var ama en azından bunu nasıl yaptıklarını merak ettiniz mi? uu ...
Pekala, bu şekilde bilmiyordum, test edeceğim ve yine de Geliştirici aracıyla YouTube'a yaptığım ziyaretimde bir api (sanırım REST) olduğunu gördüm ve bu nedenle size video hakkında birçok bilgi veriyor. cdn bağlantısı.
Bunu deneyeceğim ve kendi indirme betiğimle devam edeceğim ve benim tarafımdan yapılan ve anlaşılan bir şeyle hehe. Selamlar ve güzel makale