Sposób pobierania filmów z YouTube, aby się uczyć

Jak mówi tytuł wpisu, ten sposób pobierania filmów z YouTube nie należy do najlepszych, ale jest to sposób na nauczenie się, jak działają programy do tego celu, takie jak te, które widzieliśmy tutaj (youtube-dl, których mają wiele możliwości i jest znakomity, polecam).

Metoda polega na użyciu typowych poleceń z programu GNU / Linux w tym celu, jakimi są curl i wiele narzędzi z bash y pyton które można wykorzystać do tworzenia skryptów. Należy zauważyć, że metoda nie jest automatyczna, ale raczej wymaga interwencji użytkownika.

Najpierw znaleźliśmy film, aby wykonać „test”.

cel_wideo

Następnie zawartość strony uzyskujemy poprzez skrypt, który ją zapisujemy i wykonujemy w następujący sposób:

"nombre del script" "url de youtube"
przykład:
./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

Opis skryptu:

Ustalana jest zmienna dla adresu ip, która będzie wkrótce używana, po której następuje pętla do wypróbowania różnych liczb w zmiennej „$ i”, a następnie następna linia to pobranie zawartości i filtrów słów w celu „ułatwienia” lokalizacji link, który nas interesuje.

Kiedy wykonujemy poprzedni skrypt, zwraca on następujący wynik:

code_obtained

Cóż, mogą pomyśleć, że to nie ma sensu, ale w rzeczywistości jest to łatwiejsze niż się wydaje. Na podstawie uzyskanych wyników wyszukujemy, wybieramy i kopiujemy rzekomy link, który jest ukryty w treści, zwykle ma on następującą postać:

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

Tak naprawdę jest dużo takich linków, ale nie wszystkie z nich działają. Znalezienie go może być trochę trudne, więc do tej pracy musimy znaleźć odpowiednie słowa http, ipbity, upn, podpis a kończy się kilkoma znakami i numerami formularza BF5B9EFF421155747A2267148C8F35B018D4A689; już z tymi obiektami w rzekomym linku, kopiujemy go.

Należy zaznaczyć, że wielokrotnie link może być błędny, przynajmniej w moim przypadku musiałem to zrobić z 3 różnymi linkami, jednak działa.

Ten kod, który kopiujemy, jest w rzeczywistości adresem do zasobu (w tym przypadku jest to wideo), jednak jest zapisany w postaci znaków używanych w języku HTML, takich jak liczby zaczynające się od znaku procentu (%).

Ponieważ chcemy, aby adres był „czytelny” wpisz „http: //”, musimy przekonwertować te kody na znaki, więc zrobimy to za pomocą skryptu napisanego w pythonie:

#!/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)

Podobnie jak w przypadku drugiego skryptu, zapisują go i uruchamiają. Pojawi się coś takiego, właśnie tam wklejają poprzedni adres i wpisują; Pojawi się adres taki jak „http: //”:

readable_address

Z tego użyjemy wget aby pobrać film w następujący sposób:

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

Mamy nadzieję, że to się skończy i pobierzemy nasz film z youtube pod dość dziwną nazwą:

video_rare

Zmieniamy jego nazwę i widzimy, że jest to ten sam film, co ten w linku, dlatego już sprawdziliśmy, że jest to trudny, ale przydatny sposób, jeśli chcesz wiedzieć, jak działa tego typu program.

video_test

Mam nadzieję, że ci to pomoże.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   himekisan powiedział

    Dobry post, wolę prostszą metodę, wyszukuję wideo w przeglądarce, a następnie odtwarzam w terminalu:
    #lsof | grep Flash
    następnie kopiuję proces i daje mi plik flv
    cp / proc / xxxxx / fd / xx / path / to / save.flv

    1.    @świat powiedział

      to nie zadziałało dla mnie, dostaję plugin-co 25074 dla mnie mem, że mem powinien być deskryptorem pliku.
      w każdym razie przy użyciu du -hL / proc / 25074 / fd / * żaden nie ma rozmiaru odpowiadającego filmowi z YouTube, czy ktoś wie, dlaczego FD się nie pojawia?

    2.    Anonimowy powiedział

      Od pół dekady używam jdownloadera do pobierania tysięcy filmów i filmów podczas nauki. Oczywiście dla tych, którzy wolą korzystać z terminala, nie jest to ważne narzędzie, poza tym, że nie jest najlżejsze (wymaga około 100 MB pamięci RAM ze wszystkim i systemem).

  2.   Blacknet powiedział

    Nie jest najlepszy, ale istnieje rozszerzenie dla przeglądarki Firefox o nazwie Easy Youtube Video Downloader Express ...

    Opuszczam ligę: https://addons.mozilla.org/es/firefox/addon/easy-youtube-video-download/

    Już mnie wyciągnął z pośpiechu ... Pozdrowienia z Meksyku

  3.   Marcos powiedział

    Zawsze lubiłem "parsowanie" stron internetowych, jest bezsporne, że ta analiza wiedzy (sieci) + linux pozwala wyobrazić sobie małe skrypty, które robią potężne rzeczy 😀 (bot do niezłośliwych celów)

    na mojej stronie umieściłem ten mały skrypt w php, który "pokazuje tylko" darmowe hasło VPN do "vpnbook", które zmienia się co jakiś czas. Mam nadzieję, że później będę wysyłać je na mój telefon komórkowy codziennie o 7 rano lub przez sms przez stronę movistar (przez innego bota): D.

    strona
    http://rojosbar.com/AL/1.php

    Kod
    http://paste.desdelinux.net/4940

    możesz również uruchomić skrypt z komputera za pomocą polecenia

    SKRYPT php.php

    gdzie SCRIPT.php reprezentuje nazwę pliku z kodem php

    -----
    inny skrypt (bardzo zielony), który zrobiłem, aby pobrać "strony magazynu" z ISSUU i zapisać je w formacie PDF (ponieważ nie podoba mi się wersja flash, którą pokazują na swojej stronie internetowej)

    Zobacz wideo z uruchomionym skryptem php
    https://www.youtube.com/watch?v=h82r41UOWLQ

    kod
    http://paste.desdelinux.net/4941

  4.   Koszt Granda powiedział

    youtube-dl [wideo]
    po co jeszcze? proste i skuteczne 🙂
    Ale gratuluję wysiłku

  5.   cześć powiedział

    używam jdownloader

  6.   c4wybuchowy powiedział

    Tu znowu zostawiam skrypt Pythona, bo zauważyłem, że ten, który wstawiłem, nie ma zakładek.

    http://paste.desdelinux.net/4942

  7.   John powiedział

    Łatwiejszy sposób i bez programów.

    1) Kliknij prawym przyciskiem myszy wideo.
    2) Przejdź do „Sprawdź element”
    3) Znajdź się w tagu wideo
    4) Przejdź do właściwości SRC i skopiuj ten link (jeśli chcesz pominąć kroki 5 i 6, po prostu przejdź do konsoli i wpisz wget oraz skopiowany link)
    5) Otwórz ten link w innej karcie
    6) Kliknij prawym przyciskiem myszy -> Zapisz wideo jako ...> gotowe, ciesz się.

  8.   dernalis powiedział

    Świetny post, choć wydaje mi się, że może być dość dezorientujący dla widzów, którzy mogą to wykorzystać.
    Już w poście widać, że istnieją lepsze sposoby pobierania filmów z YouTube. Zamierzają pokazać możliwości systemu Linux w zakresie pozyskiwania danych z sieci.

    Mały przykład jako wkład:
    zwijanie -s http://rss.thepiratebay.se/101 | grep magnet | link grep | sed -r "s /^.* (. +) $ / \ 1 / g" | podczas czytania linii; wykonaj echo Transmission-Remote -a $ line; Gotowe

    Usuwa z portu rss piratebay wszystkie linki magnesów muzycznych, ostatnie 60, i pokazuje polecenie dodania ich do transmisji. jeśli usuniemy „echo”, doda je bezpośrednio, ostrożnie.
    Wiem, że można to zrobić za pomocą Flexget lub podobnego, ale nie o to chodzi, chodzi o określenie informacji, które chcesz uzyskać z sieci i znalezienie sposobu na izolowanie ich za pomocą narzędzi, które mamy w Linuksie.

    Mam nadzieję, że zbytnio się nie przedłużyłem ani nie wtrącałem.

  9.   nsz powiedział

    Czy nie byłoby łatwiej korzystać z YouTube-DL?

    Aby pobrać wideo:
    Youtube-dl [adres URL filmu]

    Aby pobrać tylko dźwięk:
    youtube-dl -x –audio-format mp3 [adres URL filmu]

  10.   @świat powiedział

    Dobry post, który pomaga nam lepiej zrozumieć.

  11.   gildie powiedział

    Używam CLIPGRAB, a jeśli jest to konsola, używam polecenia clive lub cclive. Nie potrzebuję żadnego scenariusza 🙂

  12.   dziecko_goth powiedział

    Większość z nich jest nudna uu, tak, istnieje już wiele skryptów i programów, które spełniają tę funkcję, ale przynajmniej zastanawiałeś się, jak to robią? uu ...

    Cóż, nie wiedziałem w ten sposób, mam zamiar to przetestować, a mimo to podczas mojej wizyty na YouTube przez narzędzie programistyczne widziałem, że mają interfejs API (chyba REST) ​​daje wiele informacji o filmie i dlatego link do cdn tego.

    Spróbuję tego i kontynuuję z moim własnym skryptem pobierania z czymś, co zrobiłem i zrozumiałem hehe. Pozdrowienia i dobry artykuł