Hvordan finne og laste ned videoer fra YouTube automatisk (eller hvor som helst ellers)

Nettvideo er bra, men å finne og enda mer å spare den for når du faktisk har tid til å se den kan være et enormt tidskast. Ville det ikke være kult om datamaskinen din kunne overvåke YouTube eller lignende portaler for deg, for å laste ned klipp om det emnet du erklærte som interessant, helt av seg selv?

Selvfølgelig er det, og her er en eneste kommandolinje-metode for å gjøre det, som vil fungere på all Linux-distribusjon, inkludert mediaservere uten nettlesere eller grafiske grensesnitt! Jeg vil først forklare hvordan du installerer de to gratis SW-verktøyene det er basert på, og deretter viser et eksempel på shell-skript som bruker dem til å finne og ta tak i bare videoene du ønsker.

Grake, en videosøker

Før du laster ned videoklipp, må du kjenne URL-ene deres. For denne oppgaven bruker jeg Grake, et Perl-skript som er avhengig av perl-CGI-modulen, tilgjengelig i depot for de fleste distribusjoner. Grake selv kommer i stedet som et komprimert tjærearkiv. For å installere det, kjør disse kommandoene med ledeteksten (den siste som root):

 tjære xf grake-0.1.0.tar.gz 
 cd grake-0.1.0 / 
 perl Makefile.PL 
 gjøre 
 gjøre installere 

Movgrab, en video nedlasting

Movgrab er ifølge hjemmesiden sin en rett C-nedlasting for mer enn 40 videoportaler som ikke krever Perl, Ruby, Python eller andre store bibliotek- eller programvarekomponenter. Dette er ikke strengt sant: siden movgrab bare er tilgjengelig som kildekode, må du ha gcc-kompilatoren allerede installert, noe som ikke er standard lenger på flere Linux-stasjonære PC-er. Ikke bekymre deg. Å sammenstille og installere movgrab er ikke vanskelig! Først av alt kan du be Linux-boksen din installere gcc med noen få klikk. Etter at du har lastet ned tjærearkivet, pakker du det ut, går inn i movgrab-katalogen og skriver inn disse kommandoene:

 ./configure 
 gjøre 
 gjøre installere 

(som for Grake, i det minste skal den siste utføres som rot)

... og hvordan bruke dem sammen!

Nok forberedelse! Her er et grunnleggende skript, som du kan kjøre med jevne mellomrom som en cron-jobb, som bruker grake og movgrab for å laste ned alle de nyeste videoene om et gitt emne fra YouTube.

 1 #! / Bin / bash 
 2 
 3 SEARCH = " " 
 4 SEARCH = `ekko $ SEARCH | tr "" "+" ` 
 5 grake --json "https://www.youtube.com/results?search_query=$SEARCH">/tmp/videolist 
 6 
 7 for URL i `grep '" url "' / tmp / videolist | kutt -d: -f2- | tr -d '"' ' 
 8 gjør 
 9 FORMAT = `movgrab -T $ URL 2> & 1 | grep ^ Formater | perl -e 'while () {chomp; @U = splitt /, * /; }; $ U -1 = ~ s /. * //; skriv ut $ U -1 '' 
 10 movgrab -f $ FORMAT $ URL 
 11 ferdig 
 12 avkjørsel 

La oss si at du vil samle og se på alle videoer om Arch Linux-distribusjonen. Du kan søke og laste ned dem manuelt på YouTube, selvfølgelig, eller (forutsatt at du kalte skriptet videograbber) type:

 videograbber arch linux 
Og la datamaskinen gjøre det for deg. Vår videograbber legger alle vilkårene som er mottatt som argumenter i $ SEARCH-variabelen og ber grake om å lagre (i Json-format, lettere å analysere) på innsiden / tmp / videolist alle videolinkene den finner på første side med YouTube-resultater (linjer 3- 5). Slik ser ett element av listen ut (sammenlign den med YouTube-skjermdumpen i figur A ):
  postbeskyttet  $ head / tmp / videolist 
 { 
 "video":  
 { 
 "title": "Arch Linux Review | Linux Action Show | s14e03", 
 "url": "http://youtube.com/watch?v=Vm-C_grBuV0" 
 } 
 { 
 "title": "Arch Linux 3.0 CLI", 
 "url": "http://youtube.com/watch?v=UdgzM_LfwWw" 
 } 

Figur A

For syklus som starter på linje 7 trekker ut alle linjene som inneholder url-strengen, og fjerner alt annet enn den faktiske $ URL. Her begynner den virkelige moroa. YouTube tilbyr hver video i flere formater. For å vite hvilke som er tilgjengelige, bruk movgrab med alternativet -T, som produserer denne typen utdata:

 movgrab -T http://youtube.com/watch?v=Vm-C_grBuV0 
 Formater tilgjengelig for denne filmen: webm: 1280x720 (1.2G), mp4: 1280x720 (734.8M), webm: 854x480 (354.7M), flv-h264: 854x480 (395.7M), webm: 640x360 (152.4M), flv- h264: 640x360 (268, 7M), smp4: 480x360 (268, 3M), flv: 400x240 (154, 5M), 
 Valgt formatelement: webm: 1280x720 
Som du ser, velger movgrab som standard det høyeste definisjonsformatet som er tilgjengelig. Dette kan være eller ikke være det du ønsker. Skriptet over går i stedet alltid for de minste videoene, for å spare tid og diskplass. Linje 9 bruker grep for å trekke ut linjen med movgrab-utgang som begynner med formater, og en Perl-foring for å plassere alle formatene (atskilt med ", " strenger) i en midlertidig matrise (@U), hvorav bare det siste elementet, det er formatet som er raskest å laste ned, skrives ut, uten filstørrelse. Line 10 lanserer movgrab igjen for å lagre ønsket versjon av videoen på stasjonen, hvor du kan se den når som helst ( figur B ). Ferdig!

Figur B

Avsluttende notater

Som det er, er skriptet grovt: det fungerer, men det bør se etter feil og laste ned videoene, med meningsfylte filnavn avledet av titlene deres, i en konfigurerbar mappe. Det er enkelt å legge til, når du først vet hvordan du installerer og bruker grake og movgrab. Derfor foretrakk jeg å forklare installasjonene i stedet for et fullskrevet skript. Til slutt, vær oppmerksom på at denne metoden er mye mer fleksibel enn den kan se ut. Movgrab støtter mange flere nettsteder enn grake, men det er ikke så mye å skaffe URL-ene den trenger med litt skraping på nettet. Prøv det!

© Copyright 2020 | mobilegn.com