Youtube videó letöltés és konvertálás Linuxon A szkript futtatásához szükségünk van 2 program telepítésére (youtubedl, mencoder), ezeket a következő parancs kiadásával tudjuk a legegyszerűbben telepíteni: sudo apt-get install youtube-dl mencoder A szkriptünket a következő paranccsal és értékekkel tudjuk majd működésre bírni: youtube.sh http://www.youtube.com/watch?v=XXXXXXXXXXX szerzo-cim A youtube.sh a szkriptünk neve, az utána következő link a letöltendő videó címe, végül pedig egy név, amellyel szeretnénk elmenteni az állományunkat. Vágjunk is bele. Első lépésként hozzunk létre egy üres fájlt a neve legyen youtube.sh: touch youtube.sh Nyissuk meg szerkesztésre a kedvenc szövegszerkesztőnkkel. Lehet grafikus felületen a gedit, kedit, vagy karakteres felületen az mcedit, nano... stb. Én a nanot fogom használni. nano youtube.sh Mivel bash szkriptet írunk, a fájl elején meg kell adnunk ezt, mégpedig a következő sorral: #!/bin/bash Majd, hogy a későbbiekben könnyebben tudjunk dolgozni, állítsunk be egy könyvtárat, amibe szeretnénk dolgozni. Én egy saját könyvtárat hoztam létre a $HOME könyvtáramban. download=$HOME/youtube Ha nem alapértelmezett könyvtárról van szó, akkor érdemes ellenőrizni a létezését. (Igazából érdemes ellenőrizni minden esetben.) Egy feltételes utasítással ellenőrizzük a létezését, illetve nem létezését. A következő sorokban megvizsgáljuk, hogy a download változóban eltárolt könyvtár nem létezike, ha ez igaz, akkor létrehozzuk a könyvtárat. if [ ! -e $download ] then mkdir $download echo "A "$download" könyvtár létrehozva" # The directory is created fi
Az előzőekben ismertetett módon leellenőrizzük az flv könyvtár létezését. if [ ! -e $download/flv ] then mkdir $download/flv echo "A "$download"/flv könyvtár létrehozva" # The directory is created fi Belépünk a munka könyvtárunkba. cd $download Egy üzenettel jelezzük, hogy éppen mit is csinál a szkriptünk. echo "A letöltés megkezdése" # Start the download majd letöltjük a fájlt. A $1 változó a szkriptünk meghívása mögött álló szöveget tartalmazza, ami a hivatkozást kell tartalmaznia. Pl.: youtube.sh http://www.youtube.com/watch?v=XXXXXXXXXXX youtube-dl $1 Majd kiíratjuk, hogy sikeresen letöltöttük a videó fájlt: echo "A video letöltve" # Video is downloaded A következő paranccsal létrehozunk egy video változót, melyben eltároljuk a szkript meghívásánál megadott link egyenlőségjel mögötti karaktereit, ugyanis a youtubedl ezzel a névvel fogja elmenteni a videót. video=`echo $1 | awk -F= '{print $2 }'` Itt egy új változóval ismerkedünk meg ez a $2 (nem azonos az awk mögötti $2vel!). Ez a szkript meghívásakor másodikként megadott karaktersorozatot tartalmazza, amelyben az mp3 nevét kell megadnunk. Tehát a szkript helyes meghívása a következőképpen fog kinézni: youtube.sh http://www.youtube.com/watch?v=XXXXXXXXXXX szerzocim A zene változó a következőt fogja tartalmazni: szerzocim.mp3 zene=`echo $2 | awk -F. '{print $1}'`.mp3 A változók beállítása után egy üzenettel jelezzük, hogy a konvertálást fogjuk elkezdeni: echo "A konvertálás megkezdése" # Start the convert
Majd ténylegesen készítünk egy mp3 fájlt a videóból (az eredeti fájl megmarad): mencoder $video.flv -of rawaudio -oac copy -ovc copy -o $zene Ismételten jelezzük, hogy hol tart a szkriptünk: echo "Az mp3 elkészült" # The mp3 is ready A video változó értékét beállítjuk az általunk megadott névre. A következőt fogja tartalmazni: szerzocim.flv video=`echo $zene | awk -F. '{print $1}'`.flv Majd átnevezzük az flv fájlunkat: mv *.flv $video Végül áthelyezzük a videót az flv könyvtárba: mv $video $download/flv/ Lezárásképpen jelezhetjük, hogy a szkriptünk lefutott: echo "A program sikeresen lefutott!" # The script ran succesfully A szkriptet ízlésünknek megfelelően lehet módosítani. Például, ha nincs szükségünk az flv videóra, akkor törölhetjük is, illetve akár mindkét fájlt más könyvtárakba is helyezhetjük, minden csak rajtunk múlik. A szkript tovább fejlesztése várható. Igyekszem hamarosan grafikus felületet készíteni hozzá, illetve flvből avit készíteni. A szkript egyben: #!/bin/bash ####################################################### ##
Youtube downoalder and converter
##
Create by blaselinux: (
[email protected])
##
Licence GNU GPL v3 or later.
## ##
http://www.gnu.org/licenses/gpl.html http://gnu.hu/gplv3.html
####################################################### # Set the download variable to the working directory download=$HOME/youtube # Check the working directory; exist or not, if not the script make it if [ ! -e $download ] then mkdir $download echo "A "$download" könyvtár létrehozva" # The directory is created fi if [ ! -e $download/flv ] then mkdir $download/flv echo "A "$download"/flv könyvtár létrehozva" # The directory is created fi # Go to the working directory cd $download echo "A letöltés megkezdése" # Start the download # Download the video youtube-dl $1 echo "A video letöltve" # The video is downloaded # Set the video variable video=`echo $1 | awk -F= '{print $2 }'` # Set the zene variable zene=`echo $2 | awk -F. '{print $1}'`.mp3 echo "A konvertálás megkezdése" # Start the convert # Convert the flv file to mp3 mencoder $video.flv -of rawaudio -oac copy -ovc copy -o $zene echo "Az mp3 elkészült" # The mp3 is ready video=`echo $zene | awk -F. '{print $1}'`.flv # Rename the flv file mv *.flv $video
# Move the flv file to the flv directory mv $video $download/flv/ echo "A program sikeresen lefutott!" # The script ran succesfully Az elkészítés után ne felejtsünk el futtatási jogot adni az állományra: chmod +x youtube.sh