KarstenW.
Anmeldungsdatum: 27. Juni 2011
Beiträge: 208
|
Hallo, habe mal ein einfaches Script geschrieben mit dem es möglich ist ein Video von Youtube durch Eingabe der URL und Angabe eines Namens als MP3 auf die Platte zu bringen. Zwingend vorausgesetzt damit das Programm läuft, wird die aktuelle Version von Youtube-dl sowie ffmpeg und lame. Bevor man das Script ausführt muss man noch den Ordner "tubemp3" im HOME anlegen. Das Script ausführbar machen und mit doppelklick "Anwendung im Terminal starten" ausführen. Schritt 1:
Youtube Video URL eingeben. Man kann auch einfach den Link aus den Suchergebnissen nehmen, ohne die eigentliche Videoseite zu öffnen. Schritt 2:
Einen Namen für die MP3 Datei angeben. Man braucht nicht .mp3 dahintersetzen dies mach das Script automatisch. Jetzt wird das Video temporär heruntergeladen, anschließend die Tonspur extrahiert und dann mit lame in mp3 gewandelt. Die temporären Dateien werden anschließend entfernt, so das nur noch die gewünschte MP3 im Ordner $HOME/tubemp3 übrig bleibt. Bitte einfach mal testen und vielleicht ein Feedback dazu schreiben. Hier das Script: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | #!/bin/bash
echo ============================
echo bash-Tube2mp3
echo Auto: Karsten Weidenfeld
echo www.Bitdome.de
echo ============================
echo
echo "Bitte geben Sie die Youtube Video URL ein:"
read url
echo
echo "Wie soll die fertige mp3 Datei heissen:"
read name
youtube-dl -o ~/tubemp3/neu.flv "$url"
ffmpeg -i ~/tubemp3/neu.flv -vn ~/tubemp3/temp.wav
lame --preset 128 ~/tubemp3/temp.wav ~/tubemp3/"$name.mp3"
rm -rf ~/tubemp3/neu.flv
rm -rf ~/tubemp3/temp.wav
echo "Fertig"
sleep 3
exit 1
|
Viel Spaß
Gruß Karsten
|
Jeanbarth
Anmeldungsdatum: 19. April 2011
Beiträge: 205
|
Hi Karsten, nettes Skript! Zwar gibts schon viele Internetseiten die einen die Videos in *.mp3 convertieren, aber so ein Skript hat schon immer was schönes eigenes. Was hälst du von folgender Änderung? 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 | #!/bin/bash
while [ answer != "0" ]
do
clear
echo ============================
echo bash-Tube2mp3
echo Auto: Karsten Weidenfeld
echo www.Bitdome.de
echo ============================
echo
echo "1. Youtube Video downloaden"
echo "2. beenden"
read -p "Bitte wählen: " auswahl
case $auswahl in
"1") clear
echo "Bitte geben Sie die Youtube Video URL ein:"
read url
echo
echo "Wie soll die fertige mp3 Datei heissen:"
read name
youtube-dl -o ~/tubemp3/neu.flv "$url"
ffmpeg -i ~/tubemp3/neu.flv -vn ~/tubemp3/temp.wav
lame --preset 128 ~/tubemp3/temp.wav ~/tubemp3/"$name.mp3"
rm -rf ~/tubemp3/neu.flv
rm -rf ~/tubemp3/temp.wav
echo "Fertig"
sleep 3
;;
"2") clear
break
;;
"*") break ;;
esac
echo "Enter drücken um in das Hauptmenü zurückzukehren"
read key
done
exit 0
|
Der User kann mehrmals ein Video convertieren und hat ein kleines "Menü" Gruß -Jeanbarth
|
KarstenW.
(Themenstarter)
Anmeldungsdatum: 27. Juni 2011
Beiträge: 208
|
Hi Jeanbarth, ich danke Dir für Dein Feedback und dafür das Du Dir die Mühe gemacht hast das Script zu erweitern, was mir sehr gut gefällt. Natürlich gibt es zahlreiche Webdienste die das anbieten, aber der Reiz war groß etwas eigenes zu machen. Das Script habe ich jetzt unter /usr/bin ohne .sh abgelegt und kann es jetzt systemweit über das Terminal mit y2mp3 aufrufen. Was mir bei Webdiensten auch schonmal aufgefallen ist, dort sieht man meistens nicht den Vorgang und wenn es Fehler gibt dann bekommt man oft keine Rückmeldung. Bei dem Script kann ich im Terminal verfolgen ob es richtig durchläuft und wenn es nicht mehr funktioniert weiss ich das ich warscheinlich eine neue Version von youtube-dl brauche weil Youtube wiedermal was geändert hat. Gruß
Karsten
|
Jeanbarth
Anmeldungsdatum: 19. April 2011
Beiträge: 205
|
Hi, konnte die Finger nicht davon lassen und wollte eigentlich die "Installation" der Pakete mit integrieren.
Optisch ganz ansprechend und meines Wissens auch soweit okay, aber irgendwie funktioniert es nicht so ganz...
Vielleicht kannst du ja nochmal drüberschauen... Sind das wirklich nur die 3 Pakete??? 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 | #!/bin/bash
while [ answer != "0" ]
do
clear
echo ============================
echo bash-Tube2mp3
echo Auto: Karsten Weidenfeld
echo www.Bitdome.de
echo ============================
echo
echo "1. Installieren"
echo "2. Youtube Video downloaden"
echo "3. beenden"
read -p "Bitte wählen: " auswahl
case $auswahl in
"1") clear
echo "Um das Skript nutzen zu können, muss folgendes installiert sein:"
echo "1. Youtube-dl"
echo "2. ffmpeg"
echo "3. lame"
echo "Um entsprechendes zu installieren, bitte auswählen; 0 für alles"
read -p "Bitte wählen: " instwahl
if [ $instwahl = 0 ]; then
sudo apt-get install Youtube-dl
sudo apt-get install ffmpeg
sudo apt-get install lame
echo "Es wurde alles installiert"
else
if [ $instwahl = 1 ]; then
sudo apt-get install Youtube-dl
echo "Youtube-dl wurde installiert"
else
if [ $instwahl = 2 ]; then
sudo apt-get install ffmpeg
echo "ffmpeg wurde installiert"
else
if [ $instwahl = 3 ]; then
sudo apt-get install lame
echo "lame wurde installiert"
else
clear
fi
fi
fi
fi
mkdir $HOME/tubemp3/
;;
"2") clear
echo "Bitte geben Sie die Youtube Video URL ein:"
read url
echo
echo "Wie soll die fertige mp3 Datei heissen:"
read name
youtube-dl -o ~/tubemp3/neu.flv "$url"
ffmpeg -i ~/tubemp3/neu.flv -vn ~/tubemp3/temp.wav
lame --preset 128 ~/tubemp3/temp.wav ~/tubemp3/"$name.mp3"
rm -rf ~/tubemp3/neu.flv
rm -rf ~/tubemp3/temp.wav
echo "Fertig"
sleep 3
;;
"3") clear
break
;;
"*") break ;;
esac
echo "Enter drücken um in das Hauptmenü zurückzukehren"
read key
done
exit 0
|
|
KarstenW.
(Themenstarter)
Anmeldungsdatum: 27. Juni 2011
Beiträge: 208
|
Die Sache ist folgendermaßen: Die youtube-dl aus den Ubuntuquellen ist veraltet und lässt sich auch nicht updaten. Man muss die youtube-dl von der youtube-dl Homepage nehmen: http://rg3.github.com/youtube-dl/download.html und diese dann manuell in /usr/bin kopieren. Vorher am besten die alte Version mit sudo apt-get autoremove youtube-dl wieder deinstallieren. Mit der neuen youtube-dl sollte nun alles funktionieren. Gruß
Karsten
|
busfahrer
Anmeldungsdatum: 9. April 2007
Beiträge: 3052
|
Hallo hier ein paar Anmerkungen von mir. 1. Ich glaube mich zu erinnern das youtube-dl in der aktuellen Version von Hause aus in *.mp3 konvertieren kann. 2. Man könnte sich lame sparen und gleich mit ffmpeg in *.mp3 konvertieren. 3. Es gibt zum einen elif und ich glaube da sind ein paar fi zu viel im Skript(Zeile 45-47)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | if [ $instwahl = 0 ]; then
sudo apt-get install Youtube-dl
sudo apt-get install ffmpeg
sudo apt-get install lame
echo "Es wurde alles installiert"
else
elif [ $instwahl = 1 ]; then
sudo apt-get install Youtube-dl
echo "Youtube-dl wurde installiert"
else
elif [ $instwahl = 2 ]; then
sudo apt-get install ffmpeg
echo "ffmpeg wurde installiert"
else
elif [ $instwahl = 3 ]; then
sudo apt-get install lame
echo "lame wurde installiert"
else
clear
fi
|
Gruß...busfahrer
|
Jeanbarth
Anmeldungsdatum: 19. April 2011
Beiträge: 205
|
Hi Busfahrer, ja mir ist elif bekannt. Aber bei mir wird dann in der Ausgaben folgendes angezeigt: | youtube.sh: 31: Syntax error: "elif" unexpected
|
darum habe ich nur if benutzt und muss demnach auch die fi benutzen... Weiß nicht warum die Ausgabe bei mir erscheint, habe darum den "kurzen und einfachen" Weg genommen und die if benutzt. Prinzipiell ist es doch egal oder? Naja zu deinen anderen Anmerkungen kann ich leider nichts sagen... Da bin ich nicht im Thema ☺
|
busfahrer
Anmeldungsdatum: 9. April 2007
Beiträge: 3052
|
Hallo ich habe deinen Codeausschnitt per copy&paste genommen. Sehe jetzt gerade das du da in jedem if Zweig ein else drin hast. Nimm die mal raus, dann nehme ich an das es funktioniert. if [ $instwahl = 0 ]; then
sudo apt-get install Youtube-dl
sudo apt-get install ffmpeg
sudo apt-get install lame
echo "Es wurde alles installiert"
else So sollte es gehen if [ $instwahl = 0 ]; then
sudo apt-get install Youtube-dl
sudo apt-get install ffmpeg
sudo apt-get install lame
echo "Es wurde alles installiert"
elif [ $instwahl = 1 ]; then
sudo apt-get install Youtube-dl
echo "Youtube-dl wurde installiert"
elif [ $instwahl = 2 ]; then
sudo apt-get install ffmpeg
echo "ffmpeg wurde installiert"
elif [ $instwahl = 3 ]; then
sudo apt-get install lame
echo "lame wurde installiert"
clear
fi Gruß...busfahrer
|
Jeanbarth
Anmeldungsdatum: 19. April 2011
Beiträge: 205
|
👍 Kompliziertes kann soooo einfach sein ☺ Danke!
|
KarstenW.
(Themenstarter)
Anmeldungsdatum: 27. Juni 2011
Beiträge: 208
|
Wie bereits erwähnt funktioniert youtube-dl aus den Quellen nicht da diese veraltet ist, liegt daran das Youtube schon ein paar mal was an der Seite geändert hat. Die youtube-dl soll mp3 erzeugen können, habe ich gehört aber hab es noch nicht hinbekommen deswegen bin ich den Weg über Lame gegangen ☺ Gruß
Karsten
|
Jeanbarth
Anmeldungsdatum: 19. April 2011
Beiträge: 205
|
Hi, so, nun müsste alles gehen ☺ 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 | #!/bin/bash
while [ answer != "0" ]
do
clear
echo ============================
echo bash-Tube2mp3
echo Auto: Karsten Weidenfeld
echo www.Bitdome.de
echo ============================
echo
echo "1. Installieren"
echo "2. Youtube Video downloaden"
echo "3. beenden"
read -p "Bitte wählen: " auswahl
case $auswahl in
"1") clear
echo "Um das Skript nutzen zu können, muss folgendes installiert sein:"
echo "1. Youtube-dl"
echo "2. ffmpeg"
echo "3. lame"
echo "Um entsprechendes zu installieren, bitte auswählen; 0 für alles"
read -p "Bitte wählen: " instwahl
if [ $instwahl = 0 ]; then
sudo apt-get remove youtube-dl
sudo wget https://github.com/rg3/youtube-dl/raw/2011.09.30/youtube-dl -O /usr/bin/youtube-dl
sudo chmod +x /usr/bin/youtube-dl
sudo cp /usr/bin/youtube-dl /usr/local/bin
sudo apt-get install ffmpeg
sudo apt-get install lame
clear
echo "Es wurde alles installiert"
elif [ $instwahl = 1 ]; then
sudo apt-get remove youtube-dl
sudo wget https://github.com/rg3/youtube-dl/raw/2011.09.30/youtube-dl -O /usr/bin/youtube-dl
sudo chmod +x /usr/bin/youtube-dl
sudo cp /usr/bin/youtube-dl /usr/local/bin
clear
echo "Youtube-dl wurde installiert"
elif [ $instwahl = 2 ]; then
sudo apt-get install ffmpeg
clear
echo "ffmpeg wurde installiert"
elif [ $instwahl = 3 ]; then
sudo apt-get install lame
clear
echo "lame wurde installiert"
fi
mkdir $HOME/tubemp3
;;
"2") clear
if [ -d $HOME/tubemp3 ]; then
clear
else
mkdir $HOME/tubemp3
fi
echo "Bitte geben Sie die Youtube Video URL ein:"
read url
echo
echo "Wie soll die fertige mp3 Datei heissen:"
read name
youtube-dl -o ~/tubemp3/neu.flv "$url"
ffmpeg -i ~/tubemp3/neu.flv -vn ~/tubemp3/temp.wav
lame --preset 128 ~/tubemp3/temp.wav ~/tubemp3/"$name.mp3"
rm -rf ~/tubemp3/neu.flv
rm -rf ~/tubemp3/temp.wav
echo ""
sleep 3
;;
"3") clear
break
;;
"*") break ;;
esac
echo "Enter drücken um in das Hauptmenü zurückzukehren"
read key
done
exit 0
|
Gruß -Jeanbarth
- youtube.sh (1.9 KiB)
- Download youtube.sh
|
KarstenW.
(Themenstarter)
Anmeldungsdatum: 27. Juni 2011
Beiträge: 208
|
Denkste, es gibt noch einen Fehler. Wenn ich im Installationsmenü bin und einfach nur die Entertaste drücke oder was anderes eingebe bricht das Script mit ner Fehlermeldung ab. Im Prinzip wären 2 voneinander getrennte Scripte sinnvoller, 1x Installations- Script und dann das Haupt- Script. Aber ich arbeite noch daran, war nur schonmal vorab um das ganze anzustoßen. Gruß
Karsten
|
Jeanbarth
Anmeldungsdatum: 19. April 2011
Beiträge: 205
|
N'Abend, hab ich jetzt auch bemerkt. Ersetze 1) mit folgendem 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 | "1") clear
echo "Um das Skript nutzen zu können, muss folgendes installiert sein:"
echo "1. Youtube-dl"
echo "2. ffmpeg"
echo "3. lame"
echo "4. Zurück ins Hauptmenü"
echo "Um entsprechendes zu installieren, bitte auswählen; 0 für alles"
read -p "Bitte wählen: " instwahl
if [ $instwahl = 0 ]; then
sudo apt-get remove youtube-dl
sudo wget https://github.com/rg3/youtube-dl/raw/2011.09.30/youtube-dl -O /usr/bin/youtube-dl
sudo chmod +x /usr/bin/youtube-dl
sudo cp /usr/bin/youtube-dl /usr/local/bin
sudo apt-get install ffmpeg
sudo apt-get install lame
clear
echo "Es wurde alles installiert"
elif [ $instwahl = 1 ]; then
sudo apt-get remove youtube-dl
sudo wget https://github.com/rg3/youtube-dl/raw/2011.09.30/youtube-dl -O /usr/bin/youtube-dl
sudo chmod +x /usr/bin/youtube-dl
sudo cp /usr/bin/youtube-dl /usr/local/bin
clear
echo "Youtube-dl wurde installiert"
elif [ $instwahl = 2 ]; then
sudo apt-get install ffmpeg
clear
echo "ffmpeg wurde installiert"
elif [ $instwahl = 3 ]; then
sudo apt-get install lame
clear
echo "lame wurde installiert"
elif [ $instwahl = 4 ]; then
clear
elif [ $instwahl = " " ]; then
clear
fi
if [ -d $HOME/tubemp3 ]; then
clear
else
mkdir $HOME/tubemp3
fi
;;
|
s. Anhang ☺ Gruß Tobi
- youtube.sh (2.1 KiB)
- Download youtube.sh
|
KarstenW.
(Themenstarter)
Anmeldungsdatum: 27. Juni 2011
Beiträge: 208
|
Gratulation so läuft es einwandfrei: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91 | #!/bin/bash
while [ answer != "0" ]
do
clear
echo ============================
echo bash-Tube2mp3
echo Autor: Karsten Weidenfeld
echo www.Bitdome.de
echo ============================
echo
echo "1. Installieren"
echo "2. Youtube Video downloaden"
echo "3. beenden"
read -p "Bitte wählen: " auswahl
case $auswahl in
"1") clear
echo "Um das Skript nutzen zu können, muss folgendes installiert sein:"
echo "1. Youtube-dl"
echo "2. ffmpeg"
echo "3. lame"
echo "4. Zurück ins Hauptmenü"
echo "Um entsprechendes zu installieren, bitte auswählen; 0 für alles"
read -p "Bitte wählen: " instwahl
if [ $instwahl = 0 ]; then
sudo apt-get remove youtube-dl
sudo wget https://github.com/rg3/youtube-dl/raw/2011.09.30/youtube-dl -O /usr/bin/youtube-dl
sudo chmod +x /usr/bin/youtube-dl
sudo cp /usr/bin/youtube-dl /usr/local/bin
sudo apt-get install ffmpeg
sudo apt-get install lame
clear
echo "Es wurde alles installiert"
elif [ $instwahl = 1 ]; then
sudo apt-get remove youtube-dl
sudo wget https://github.com/rg3/youtube-dl/raw/2011.09.30/youtube-dl -O /usr/bin/youtube-dl
sudo chmod +x /usr/bin/youtube-dl
sudo cp /usr/bin/youtube-dl /usr/local/bin
clear
echo "Youtube-dl wurde installiert"
elif [ $instwahl = 2 ]; then
sudo apt-get install ffmpeg
clear
echo "ffmpeg wurde installiert"
elif [ $instwahl = 3 ]; then
sudo apt-get install lame
clear
echo "lame wurde installiert"
elif [ $instwahl = 4 ]; then
clear
elif [ $instwahl = " " ]; then
clear
fi
if [ -d $HOME/tubemp3 ]; then
clear
else
mkdir $HOME/tubemp3
fi
;;
"2") clear
if [ -d $HOME/tubemp3 ]; then
clear
else
mkdir $HOME/tubemp3
fi
echo "Bitte geben Sie die Youtube Video URL ein:"
read url
echo
echo "Wie soll die fertige mp3 Datei heissen:"
read name
youtube-dl -o ~/tubemp3/neu.flv "$url"
ffmpeg -i ~/tubemp3/neu.flv -vn ~/tubemp3/temp.wav
lame --preset 128 ~/tubemp3/temp.wav ~/tubemp3/"$name.mp3"
rm -rf ~/tubemp3/neu.flv
rm -rf ~/tubemp3/temp.wav
echo ""
sleep 3
;;
"3") clear
break
;;
"*") break ;;
esac
echo "Enter drücken um in das Hauptmenü zurückzukehren"
read key
done
exit 0
|
Gruß
Karsten
|
busfahrer
Anmeldungsdatum: 9. April 2007
Beiträge: 3052
|
Hallo einen hab ich noch für euch. Was für einen Sinn hat es denn mit sudo wget https://github.com/rg3/youtube-dl/raw/2011.09.30/youtube-dl -O /usr/bin/youtube-dl youtube-dl nach /usr/bin/youtube-dl runter zu laden umd es anschließend mit sudo cp /usr/bin/youtube-dl /usr/local/bin nach /usr/local/bin zu kopieren und es 2 mal auf dem Rechner zu haben. Da wäre es doch sicher klüger es direkt nach /usr/local/bin runter zu laden. Gruß....busfahrer
|