Öğrenmek için YouTube videolarını indirmenin bir yolu

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.

video_target

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:

code_obtained

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:

okunabilir_adres

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"

download_wget

Umarız biter ve videomuzu youtube'dan oldukça garip bir adla indiririz:

video_rare

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.

video_test

Umarım size yardımcı olur.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   himekisan dijo

    İ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

    1.    @dünya dijo

      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ı?

    2.    Anonim dijo

      Ç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).

  2.   karanetto dijo

    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

  3.   marcos dijo

    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

  4.   Maliyet Granda dijo

    youtube-dl [video]
    başka ne için? basit ve etkili 🙂
    Ama çaban için seni tebrik ediyorum

  5.   merhaba dijo

    jdownloader kullanıyorum

  6.   c4 patlayıcı dijo

    Burada python betiğini tekrar bırakıyorum, çünkü koyduğumda sekme olmadığını fark ettim.

    http://paste.desdelinux.net/4942

  7.   John dijo

    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.

  8.   Dermanalis dijo

    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.

  9.   nsz dijo

    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]

  10.   @dünya dijo

    Daha iyi anlamamıza yardımcı olan iyi gönderi.

  11.   loncalar dijo

    CLIPGRAB kullanıyorum ve bir konsol ise clive veya cclive komutunu kullanıyorum. Herhangi bir senaryoya ihtiyacım yok 🙂

  12.   çocuk_goth dijo

    Ç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