En måte å laste ned YouTube-videoer for å lære

Som tittelen på innlegget sier, er denne måten å laste ned YouTube-videoer ikke av de beste, men det er en måte å lære hvordan programmene for dette formålet fungerer som de vi har sett her (youtube-dl, som for True , de har mange muligheter, og det er utmerket, jeg anbefaler det).

Metoden er å bruke vanlige kommandoer fra GNU / Linux for dette formålet, som de er curl og mange verktøy av bash y python som kan brukes til å lage manus. Det skal bemerkes at metoden ikke er automatisk, men heller krever at brukeren griper inn.

Først fant vi en video for å gjøre "testen".

video_mål

Så får vi innholdet på siden gjennom et skript som vi lagrer og utfører på følgende måte:

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

Skriptbeskrivelse:

En variabel etableres for ip som snart skal brukes, etterfulgt av en løkke for å prøve forskjellige tall i variabelen "$ i", så er neste linje å skaffe innholds- og ordfiltrene for å "lette" plasseringen av lenken som interesserer oss.

Når vi kjører det forrige skriptet, returnerer det en utdata som dette:

kode_oppnådd

Vel, de tror kanskje dette ikke gir mening, men det er faktisk enklere enn det høres ut. Fra utdataene de oppnådde, søker vi, velger og kopierer en antatt lenke som er skjult i innholdet, den har vanligvis dette skjemaet:

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

Det er faktisk mange slike lenker, men ikke alle fungerer. Det kan være litt vanskelig å lete etter det, så for denne jobben må vi finne ordene http, ipbits, upn, signatur og det ender med flere tegn og tall i skjemaet BF5B9EFF421155747A2267148C8F35B018D4A689; allerede med disse objektene i den antatte lenken, kopierer vi den.

Det bør bemerkes at mange ganger kan lenken være feil, i det minste i mitt tilfelle måtte jeg gjøre det med 3 forskjellige lenker, men det fungerer.

Den koden som vi kopierte er faktisk en adresse til en ressurs (som i dette tilfellet er videoen), men den er skrevet i form av tegn som kan brukes av HTML-språket, for eksempel tallene som begynner med prosenttegnet ( %).

Som det vi ønsker er en adresse som er "lesbar" type "http: //", må vi konvertere disse kodene til tegn, så vi vil gjøre det med et skript laget i python:

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

Som med det andre skriptet, lagrer de det og kjører det. Noe som dette vil dukke opp, akkurat der limer de inn forrige adresse og gir den inn; En adresse som "http: //" vises:

lesbar_adresse

Med dette vil vi bruke wget for å laste ned videoen, som følger:

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

Vi håper det ender, og vi vil laste ned videoen vår fra youtube med et ganske rart navn:

video_rare

Vi omdøper det og ser at det er den samme videoen som den i lenken, derfor har vi allerede bekreftet at det er en vanskelig, men nyttig måte hvis du vil vite hvordan denne typen programmer fungerer.

video_test

Håper det hjelper deg.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   himekisan sa

    Bra innlegg, jeg foretrekker en enklere metode, jeg søker etter videoen i nettleseren og gjengir den deretter i terminalen:
    #lsof | grep Flash
    så kopierer jeg prosessen, og den gir meg flv
    cp / proc / xxxxx / fd / xx / path / to / save.flv

    1.    @verden sa

      Det fungerte ikke for meg, jeg får plugin-co 25074 for meg mem, at mem skulle være en filbeskrivelse.
      uansett bruker du -hL / proc / 25074 / fd / * none har størrelsen til å være en Youtube-video, er det noen som vet hvorfor FD ikke kommer ut?

    2.    Anonym sa

      Jeg har brukt jdownloader i et halvt tiår for å laste ned tusenvis av videoer og filmer mens jeg studerer. Selvfølgelig, for de som foretrekker å bruke terminalen, er det ikke et gyldig verktøy, i tillegg til at den ikke er den letteste (det krever omtrent 100 MB ram med alt og system).

  2.   Blacknet sa

    Det er ikke det beste, men det er en utvidelse for Firefox som heter Easy Youtube Video Downloader Express ...

    Jeg forlater ligaen: https://addons.mozilla.org/es/firefox/addon/easy-youtube-video-download/

    Han har allerede fått meg raskt ... Hilsen fra Mexico

  3.   rammeverk sa

    Jeg har alltid likt å "parsere" nettsider, det er ubestridelig at denne kunnskapsparseringen (webs) + linux lar deg forestille deg små skript som gjør kraftige ting 😀 (bot med ikke-ondsinnede formål)

    på nettstedet mitt lastet jeg opp dette lille skriptet i php som "bare viser" det gratis vpn-passordet til "vpnbook" som endres så ofte, det jeg håper å gjøre etterpå er å sende det til mobiltelefonen min hver dag klokka 7, eller med sms gjennom movistar-siden (gjennom en annen bot): D.

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

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

    du kan også kjøre skriptet fra datamaskinen din med kommandoen

    php SCRIPT.php

    hvor SCRIPT.php representerer navnet på filen med php-koden

    -----
    et annet skript (veldig grønt) som jeg laget for å laste ned "magasinsider" fra ISSUU og lagre dem i PDF (fordi jeg ikke liker flash-versjonen de viser på nettstedet deres)

    Se videoen av det kjørende php-skriptet
    https://www.youtube.com/watch?v=h82r41UOWLQ

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

  4.   Kostnad Granda sa

    youtube-dl [video]
    for hva annet? enkelt og effektivt 🙂
    Men jeg gratulerer deg for innsatsen

  5.   Hallo sa

    jeg bruker jdownloader

  6.   c4eksplosiv sa

    Her forlater jeg python-skriptet igjen, fordi jeg la merke til at den jeg la ikke har noen faner.

    http://paste.desdelinux.net/4942

  7.   John sa

    En enklere måte og uten programmer.

    1) Høyreklikk på videoen.
    2) Gå til "Inspiser element"
    3) Finn deg selv i videokoden
    4) Gå til SRC-egenskapen og kopier den lenken (hvis du vil hoppe over trinn 5 og 6, er det bare å gå til konsollen og skrive inn wget og den kopierte lenken)
    5) Åpne den lenken i en annen fane
    6) Høyreklikk -> Lagre video som ...> ferdig, nyt.

  8.   dernalis sa

    Et flott innlegg, selv om jeg tror det kan være ganske forvirrende for publikum som kan dra nytte av det.
    Allerede i innlegget er det klart at det finnes bedre måter å laste ned YouTube-videoer på. Det de har tenkt er å vise mulighetene til linux for å skaffe data fra et web.

    Et lite eksempel som bidrag:
    krøller http://rss.thepiratebay.se/101 | grep magnet | grep lenke | sed -r "s /^.* (. +) $ / \ 1 / g" | mens du leser linje; gjør ekkooverføring-fjernkontroll -a $ linje; ferdig

    Det fjernes fra thepiratebay rss-feed alle musikkmagnetkoblingene, de siste 60, og viser kommandoen for å legge dem til overføring. hvis vi fjerner "ekko", legger de dem til direkte, forsiktig.
    Jeg vet at det kan gjøres med Flexget eller lignende, men det handler ikke om det, det handler om å bestemme informasjonen du vil få fra nettet og finne en måte å isolere den med verktøyene vi har i Linux.

    Jeg håper jeg ikke har forlenget eller trengt inn for mye.

  9.   nsz sa

    Og ville det ikke vært enklere å bruke Youtube-DL?

    Slik laster du ned video:
    Youtube-dl [video URL]

    Slik laster du bare ned lyden:
    youtube-dl -x – lydformat mp3 [video URL]

  10.   @verden sa

    Bra innlegg, som hjelper oss med å forstå bedre.

  11.   laug sa

    Jeg bruker CLIPGRAB, og hvis det er en konsoll, bruker jeg kommandoen clive eller cclive. Jeg trenger ikke noe manus 🙂

  12.   kid_goth sa

    De fleste av dem er kjedelige uu, ja, det er allerede mange skript og programvare som oppfyller funksjonen, men i det minste har du lurt på hvordan de gjør det? uu ...

    Vel, jeg visste ikke denne måten, jeg skal teste det, og likevel i mitt besøk på YouTube av utviklerverktøyet har jeg sett at de har en API (REST tror jeg) gir deg mye informasjon om videoen og deretter lenken til cdn av den.

    Jeg skal prøve dette og fortsette med mitt eget nedlastingsskript med noe gjort og forstått av meg hehe. Hilsen og god artikkel