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 (youtube dl, 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 grakus felületen a gedit, kedit, vagy karakteres felületen az mcedit, nano... stb. Én a nano t 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étezik e, ha ez igaz, akkor létrehozzuk a könyvtárat. if [! -e $download ] mkdir $download echo "A "$download" könyvtár létrehozva" # The directory is created
Az előzőekben ismertetett módon leellenőrizzük az flv könyvtár létezését. if [! -e $download/flv ] mkdir $download/flv echo "A "$download"/flv könyvtár létrehozva" # The directory is created 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 youtube dl 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 $2 vel!). 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 szerzo cim A zene változó a következőt fogja tartalmazni: szerzo cim.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: szerzo cim.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 grakus felületet készíteni hozzá, illetve flv ből avi t készíteni. A szkript egyben: #!/bin/bash ####################################################### ## Youtube downoalder and converter ## Create by blaselinux: (blaselinux@gmail.com) ## 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 ] mkdir $download echo "A "$download" könyvtár létrehozva" # The directory is created if [! -e $download/flv ] mkdir $download/flv echo "A "$download"/flv könyvtár létrehozva" # The directory is created # 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 le 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 le mv *.flv $video
# Move the flv le 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