[HOWTO] Ściąganie i konwersja (na avi) filmów z YouTube
: 06 paź 2009, 14:58
Chciałbym się z wami podzielić prostym sposobem ściągania, a potem konwersji filmików z youtube. Mój sposób przedstawię w formie skryptu (napoisanego z resztą przeze mnie).
Do poprawnego działania skryptów potrzebne będą nam pakiety: mplayer, mencoder, zenity, youtube-dl
Skrypt przygotowałem w dwóch wersjach:
1.
Ta wersja nie wymaga pakietu youtube-dl. Już piszę dlaczego... Otóż kiedy oglądamy jakiś filmik na youtube jest on ściągany na dysk i zapisywany do folderu /tmp - wystarczy go przekonwertować.
2.
A teraz o co w tym wszystkim chodzi (na podstawie drugiego skryptu):
1.
Wyświetlenie okienka z zapytaniem o link do filmu (przykładowy link: http://www.youtube.com/watch?v=UwpYDnwOSdA). Po czym link zapisywany jest do zmiennej
2.
Wyświetlenie okienka z zapytaniem o nazwę filmu (nazwę pliku docelowego). Po czym zapisanie nazwy do zmiennej.
3.
Utworzenie katalogu tymczasowego w naszym katalogu domowym. Taka nazwa katalogu gwarantuje możliwość kilkukrotnego, jednoczesnego wykonywania skryptu.
4.
Ściągnięcie filmu (-b oznacza że zostanie ściągnięty film w możliwie najlepszej jakości) i zapisanie go do katalogu tymczasowego.
5.
Krok, który wydaje się zupełnie niepotrzebny - wyodrębnienie ścieżki dźwiękowej z naszego filmiku i przekonwertowanie jej do formatu WAVE. Dlaczego właśnie tak? Odpowiedź jest prosta - przy konwersji flv to avi często występują problemy z synchronizacją dźwięku z obrazem... (Proste jak drut
)
6.
Konwersja naszego filmu i dołączenie wyodrębnionej w poprzednim kroku ścieżki dźwiękowej.
7.
Skopiowanie naszego pliku do katalogu ~/Wideo/Pobrane (katalog ten należy uprzednio stworzyć)
8.
Usunięcie plików tymczasowych
9.
Wyświetlenie informacji o zakończeniu konwersji.
Skrypt należy wkleić do edytora tekstu, zapisać jako plik z rozszerzeniem .sh i nadać prawa do wykonywania.
UWAGA!!!
* pamiętaj o utworzeniu katalogu ~/Wideo/Pobrane
** Skrypt nie jest "głupotoodporny", więc nie wpisuj do pól tekstowych informacji o które nie jesteś proszony i nie zostawiaj niewypełnionych pól
*** upewnij się, że masz wszystkie potrzebne pakiety
Życzę miłej zabawy
Do poprawnego działania skryptów potrzebne będą nam pakiety: mplayer, mencoder, zenity, youtube-dl
Skrypt przygotowałem w dwóch wersjach:
1.
Kod: Zaznacz cały
#!/bin/bash
name=$(/usr/bin/zenity --entry --title="Nazwa filmu" --height=100 --width=300 --text="Podaj nazwę swojego filmu ")
mkdir ~/tmp-"$name"
cp /tmp/Fla* ~/tmp-"$name"/movie-flash.flv
mplayer ~/tmp-"$name"/movie-flash.flv -vc null -ac null -dumpaudio -dumpfile ~/tmp-"$name"/audio-mp3.mp3
lame --decode ~/tmp-"$name"/audio-mp3.mp3 -b 128 -o ~/tmp-"$name"/audio-wav.wav
mencoder ~/tmp-"$name"/movie-flash.flv -o ~/tmp-"$name"/movie-avi.avi -ofps 22 -srate 44100 -ovc xvid -xvidencopts bitrate=1000 :max_bframes=0:quant_type=h263 : me_quality=4 -audiofile ~/tmp-"$name"/audio-wav.wav -oac lavc -lavcopts acodec=mp2:abitrate=128
cp ~/tmp-"$name"/movie-avi.avi ~/Wideo/Pobrane/"$name".avi
rm ~/tmp-"$name"/movie-flash.flv
rm ~/tmp-"$name"/movie-avi.avi
rm ~/tmp-"$name"/audio-mp3.mp3
rm ~/tmp-"$name"/audio-wav.wav
rm -r ~/tmp-"$name"
/usr/bin/zenity --info --title="Konwersja filmu" --height=100 --width=300 --text="Konwersja zakończona powodzeniem"
2.
Kod: Zaznacz cały
#!/bin/bash
url=$(/usr/bin/zenity --entry --title="Link do filmu" --height=100 --width=300 --text="Wklej tu link do filmu ")
name=$(/usr/bin/zenity --entry --title="Nazwa filmu" --height=100 --width=300 --text="Podaj nazwę swojego filmu ")
mkdir ~/tmp-"$name"
youtube-dl "$url" -b -o ~/tmp-"$name"/movie-flash.flv
mplayer ~/tmp-"$name"/movie-flash.flv -vc null -ac null -dumpaudio -dumpfile ~/tmp-"$name"/audio-mp3.mp3
lame --decode ~/tmp-"$name"/audio-mp3.mp3 -b 128 -o ~/tmp-"$name"/audio-wav.wav
mencoder ~/tmp-"$name"/movie-flash.flv -o ~/tmp-"$name"/movie-avi.avi -ofps 22 -srate 44100 -ovc xvid -xvidencopts bitrate=1000 :max_bframes=0:quant_type=h263 : me_quality=4 -audiofile ~/tmp-"$name"/audio-wav.wav -oac lavc -lavcopts acodec=mp2:abitrate=128
cp ~/tmp-"$name"/movie-avi.avi ~/Wideo/Pobrane/"$name".avi
rm ~/tmp-"$name"/movie-flash.flv
rm ~/tmp-"$name"/movie-avi.avi
rm ~/tmp-"$name"/audio-mp3.mp3
rm ~/tmp-"$name"/audio-wav.wav
rm -r ~/tmp-"$name"
/usr/bin/zenity --info --title="Konwersja filmu" --height=100 --width=300 --text="Konwersja zakończona powodzeniem"
A teraz o co w tym wszystkim chodzi (na podstawie drugiego skryptu):
1.
Kod: Zaznacz cały
url=$(/usr/bin/zenity --entry --title="Link do filmu" --height=100 --width=300 --text="Wklej tu link do filmu ")
2.
Kod: Zaznacz cały
name=$(/usr/bin/zenity --entry --title="Nazwa filmu" --height=100 --width=300 --text="Podaj nazwę swojego filmu ")
3.
Kod: Zaznacz cały
mkdir ~/tmp-"$name"
4.
Kod: Zaznacz cały
youtube-dl "$url" -b -o ~/tmp-"$name"/movie-flash.flv
5.
Kod: Zaznacz cały
mplayer ~/tmp-"$name"/movie-flash.flv -vc null -ac null -dumpaudio -dumpfile ~/tmp-"$name"/audio-mp3.mp3
lame --decode ~/tmp-"$name"/audio-mp3.mp3 -b 128 -o ~/tmp-"$name"/audio-wav.wav

6.
Kod: Zaznacz cały
mencoder ~/tmp-"$name"/movie-flash.flv -o ~/tmp-"$name"/movie-avi.avi -ofps 22 -srate 44100 -ovc xvid -xvidencopts bitrate=1000 :max_bframes=0:quant_type=h263 : me_quality=4 -audiofile ~/tmp-"$name"/audio-wav.wav -oac lavc -lavcopts acodec=mp2:abitrate=128
7.
Kod: Zaznacz cały
cp ~/tmp-"$name"/movie-avi.avi ~/Wideo/Pobrane/"$name".avi
8.
Kod: Zaznacz cały
rm ~/tmp-"$name"/movie-flash.flv
rm ~/tmp-"$name"/movie-avi.avi
rm ~/tmp-"$name"/audio-mp3.mp3
rm ~/tmp-"$name"/audio-wav.wav
rm -r ~/tmp-"$name"
9.
Kod: Zaznacz cały
/usr/bin/zenity --info --title="Konwersja filmu" --height=100 --width=300 --text="Konwersja zakończona powodzeniem"
Skrypt należy wkleić do edytora tekstu, zapisać jako plik z rozszerzeniem .sh i nadać prawa do wykonywania.
UWAGA!!!
* pamiętaj o utworzeniu katalogu ~/Wideo/Pobrane
** Skrypt nie jest "głupotoodporny", więc nie wpisuj do pól tekstowych informacji o które nie jesteś proszony i nie zostawiaj niewypełnionych pól
*** upewnij się, że masz wszystkie potrzebne pakiety
Życzę miłej zabawy
