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 grafikus 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 ]
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 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 grafikus 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)
## http://linuxegyszeruen.homelinux.org
## 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
A szkript letölthető
innen.